From fc16ef622131f2f5c67fea2e5e392160c7568362 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 10:42:14 +0900 Subject: [PATCH 01/32] feat(nonlinear-static-newton-raphson): step 0 - cli-output-lease-and-derived-names --- .harness/build-ninja/.ninja_deps | Bin 0 -> 10368 bytes .harness/build-ninja/.ninja_log | 132 ++ .../googletest/generated/GTestConfig.cmake | 37 + .../generated/GTestConfigVersion.cmake | 43 + .../googletest/generated/gmock.pc | 10 + .../googletest/generated/gmock_main.pc | 10 + .../googletest/generated/gtest.pc | 9 + .../googletest/generated/gtest_main.pc | 10 + .harness/build-ninja/build.ninja | 2058 +++++++++++++++++ .../cantilever-beam-b33/cantilever beam.inp | 106 + .../cantilever-beam-b33/comparison.json | 1 + .../mitc4-shell-s4-comparison/comparison.json | 1 + .../mitc4-shell-s4-comparison/shell.inp | 164 ++ .../mitc4-shell-s4-metadata/comparison.json | 1 + .../mitc4-shell-s4-metadata/shell.inp | 164 ++ .../cmake_test_discovery_e3b0c44298.json | 83 + ...integration_tests_d537bc73_discovery.cmake | 19 + ...a_integration_tests_d537bc73_include.cmake | 5 + ...esa_integration_tests_d537bc73_tests.cmake | 118 + ...a_reference_tests_ac7cf2f0_discovery.cmake | 19 + ...esa_reference_tests_ac7cf2f0_include.cmake | 5 + .../fesa_reference_tests_ac7cf2f0_tests.cmake | 190 ++ .../fesa_unit_tests_576e7e9d_discovery.cmake | 19 + .../fesa_unit_tests_576e7e9d_include.cmake | 5 + .../fesa_unit_tests_576e7e9d_tests.cmake | 1702 ++++++++++++++ .../coordination.md | 136 +- .../corrections.md | 131 ++ .../formulation.md | 1843 +++++++++++++++ .../implementation-plan.md | 252 ++ docs/nonlinear-static-newton-raphson/io.md | 808 +++++++ .../numerical-review.md | 188 ++ .../reference-model.md | 237 ++ include/fesa/analysis/analysis.h | 3 +- include/fesa/app/fesa_application.h | 4 +- include/fesa/app/output_paths.h | 58 + phases/index.json | 6 +- .../nonlinear-static-newton-raphson/step0.md | 136 ++ .../nonlinear-static-newton-raphson/step1.md | 135 ++ .../nonlinear-static-newton-raphson/step10.md | 177 ++ .../nonlinear-static-newton-raphson/step11.md | 191 ++ .../nonlinear-static-newton-raphson/step12.md | 96 + .../nonlinear-static-newton-raphson/step2.md | 101 + .../nonlinear-static-newton-raphson/step3.md | 124 + .../nonlinear-static-newton-raphson/step4.md | 99 + .../nonlinear-static-newton-raphson/step5.md | 179 ++ .../nonlinear-static-newton-raphson/step6.md | 105 + .../nonlinear-static-newton-raphson/step7.md | 132 ++ .../nonlinear-static-newton-raphson/step8.md | 169 ++ .../nonlinear-static-newton-raphson/step9.md | 118 + scripts/execute.py | 55 +- src/fesa/CMakeLists.txt | 1 + src/fesa/app/fesa_application.cpp | 40 +- src/fesa/app/output_paths.cpp | 127 + tests/CMakeLists.txt | 1 + .../integration/app/fesa_application_test.cpp | 122 +- .../b33_reference_comparison_test.cpp | 15 +- .../reference/mitc4_reference_cases_test.cpp | 15 +- tests/reference/reference_comparison.cpp | 15 +- tests/reference/reference_comparison.h | 9 + tests/test_execute.py | 125 + tests/unit/app/output_paths_test.cpp | 141 ++ 61 files changed, 10890 insertions(+), 115 deletions(-) create mode 100644 .harness/build-ninja/.ninja_deps create mode 100644 .harness/build-ninja/.ninja_log create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfig.cmake create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfigVersion.cmake create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/gmock.pc create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/gmock_main.pc create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/gtest.pc create mode 100644 .harness/build-ninja/_deps/googletest-build/googletest/generated/gtest_main.pc create mode 100644 .harness/build-ninja/build.ninja create mode 100644 .harness/build-ninja/reference/cantilever-beam-b33/cantilever beam.inp create mode 100644 .harness/build-ninja/reference/cantilever-beam-b33/comparison.json create mode 100644 .harness/build-ninja/reference/mitc4-shell-s4-comparison/comparison.json create mode 100644 .harness/build-ninja/reference/mitc4-shell-s4-comparison/shell.inp create mode 100644 .harness/build-ninja/reference/mitc4-shell-s4-metadata/comparison.json create mode 100644 .harness/build-ninja/reference/mitc4-shell-s4-metadata/shell.inp create mode 100644 .harness/build-ninja/tests/cmake_test_discovery_e3b0c44298.json create mode 100644 .harness/build-ninja/tests/fesa_integration_tests_d537bc73_discovery.cmake create mode 100644 .harness/build-ninja/tests/fesa_integration_tests_d537bc73_include.cmake create mode 100644 .harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake create mode 100644 .harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_discovery.cmake create mode 100644 .harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_include.cmake create mode 100644 .harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake create mode 100644 .harness/build-ninja/tests/fesa_unit_tests_576e7e9d_discovery.cmake create mode 100644 .harness/build-ninja/tests/fesa_unit_tests_576e7e9d_include.cmake create mode 100644 .harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake create mode 100644 docs/nonlinear-static-newton-raphson/corrections.md create mode 100644 docs/nonlinear-static-newton-raphson/formulation.md create mode 100644 docs/nonlinear-static-newton-raphson/implementation-plan.md create mode 100644 docs/nonlinear-static-newton-raphson/io.md create mode 100644 docs/nonlinear-static-newton-raphson/numerical-review.md create mode 100644 docs/nonlinear-static-newton-raphson/reference-model.md create mode 100644 include/fesa/app/output_paths.h create mode 100644 phases/nonlinear-static-newton-raphson/step0.md create mode 100644 phases/nonlinear-static-newton-raphson/step1.md create mode 100644 phases/nonlinear-static-newton-raphson/step10.md create mode 100644 phases/nonlinear-static-newton-raphson/step11.md create mode 100644 phases/nonlinear-static-newton-raphson/step12.md create mode 100644 phases/nonlinear-static-newton-raphson/step2.md create mode 100644 phases/nonlinear-static-newton-raphson/step3.md create mode 100644 phases/nonlinear-static-newton-raphson/step4.md create mode 100644 phases/nonlinear-static-newton-raphson/step5.md create mode 100644 phases/nonlinear-static-newton-raphson/step6.md create mode 100644 phases/nonlinear-static-newton-raphson/step7.md create mode 100644 phases/nonlinear-static-newton-raphson/step8.md create mode 100644 phases/nonlinear-static-newton-raphson/step9.md create mode 100644 src/fesa/app/output_paths.cpp create mode 100644 tests/unit/app/output_paths_test.cpp diff --git a/.harness/build-ninja/.ninja_deps b/.harness/build-ninja/.ninja_deps new file mode 100644 index 0000000000000000000000000000000000000000..21b3c734b5413e3f971fcb0f24708e86654abb72 GIT binary patch literal 10368 zcmb`N3$ztg8OL{G@{lV6LW*X{HA90t;N_uMii+d|v=Z}$&7Cu|&$$D0W)3rRfZNMj zvdXn`l_stgJ~9Xp3PR-(ih`nsB=({ZBPlV|G=V@UM700j^Ua)@;a;0L7uV7?=iKY> zxA(XA{`TJA+{S^nX;0A%Uh#Sy%NY9{{`Fj4DRNI!E}f`N<>O6@d-AjDIo5RUHW{X? z6so3WsHR>_hz1ld*3D!Me=*X4gaOPGgs6^K zj$1>s4~YFS@S09tE!kPysyi-MJYVyxUPL@hyko$-?c^PjH#TEiCC@OmlI?iDsYlHB ziP;65>o4Dvzm1xwn`VS#hlnS}<+$a0CGQ42t75d2lH-&t?sLx{DhDI>MSS2&;y2W? zX4-Px#Ms8Z()D2I*n8yqIQVa|v$~0~6Rs?CL3eD=cVX~7g<~9T-_$I%_N`iREK_fb zI(Cp;$AN$Q4~9xt=6PakR-0#fibfA=*)g~kvHwf#u3!&&wYigQF==?j{tvOcfxT26 zDcO_ih*8Dmp6;3jZm5RoRV+>CWdtqq93W43u)B^Pov#n!IQHf zR_&RPD<<5M@x|l}9@L_y`;Hq;$i2jF0Qu1jj+{>{hQb)fIWES z49Omg=Pc_AVNjf^U#a?PMe|#u45Dd_5iRiI{0kf zaj3E7R;tc$O++lp1dRQI_@{zjd~sv_eC&Hw%lFcT*NA@__(Q6j>yM4*J7pxZB2KJf z^LG&YlVIO?M?(*hZ?difv4wgH&M`W6XBX4RP;JM+OcFl`1>n9)j??jc;DbKWQP
O$;kTj7=_j>cHi!QzYhvz>frz|lCnG1qw1)->gRk&aBeB#xRspBWvXULnUII39St zC6|Mego!IpiQ61^kzh~vxE?=_u)mU{5stnCH%Ld;{SiTFRp<6mD-o9~~AcMf<%=ACf7$X{8{Fd0m!Ct#;U#>m` z*~3$U{X!{E#raHgaUFKTDpPo4W$Z=roD0vc1p|79cLq_}@Zz-&QM6L4IIF7iNAff# zKE|q5@+Yye-bCzXuovl#k}c*_c6M|tj#sV{nit410^F9xW28f@;T(?e))q}&@&AV1 z_zm$#g4u97uZN$yX(pP_HWGgn_ydNosDq!Xm?iP-dE$=-f6cy4k}u|H_V`G?te&ON zYy+{+18>fxmnA#j_y*O(VDmGP`F#^th>6dR-Td? z_8fV}fW3n6Ju05y$e-vAdzL&Gz%xeQU+;JX71vZBo*}l_W6oZvG>EmFGgj?axKf_= zEFl4VEqN}+^Rde9o$@5Bd`Z)jI_As3SH(`1>}T$|O13}Wy6@=Zo%F0G&llj?^z{AGlW(t0RqK*? z_ABCxxG2LG)G-dSABo#vO2Jl<;|e%tuX?VISk-RI@#VA&f7{SQo$6c6i4uP@@jptQ ziSTR~aBHvpYd)wl$=5YWG<$^DSA%`Wp*fPBZ!QNnciQ9IDm)pbhlzg;_^(WUQ1bKT z6sin}0)JF-NCs#bIRtm%fqC^fsD$JxSUEu@Hx;K}lH*Ho44Am3jxh-OLF1gDFD3Su z!QOh(e#y>vj!0B*gW9UNa<)Hh*%IoQqM_@uTb0 zywvG}vHQuV!?$Sn`cB2P(A literal 0 HcmV?d00001 diff --git a/.harness/build-ninja/.ninja_log b/.harness/build-ninja/.ninja_log new file mode 100644 index 0000000..6f73273 --- /dev/null +++ b/.harness/build-ninja/.ninja_log @@ -0,0 +1,132 @@ +# ninja log v7 +107 1367 8092384218864831 src/fesa/CMakeFiles/fesa_solver.dir/build_info.cpp.obj cbb74df2cfe16446 +97 1760 8092384218802669 src/fesa/CMakeFiles/fesa_solver.dir/assembly/parallel_for.cpp.obj 6d361d78b8ddb1e6 +132 2029 8092384219120278 src/fesa/CMakeFiles/fesa_solver.dir/core/status.cpp.obj d9066190c54698e1 +127 2129 8092384218979200 src/fesa/CMakeFiles/fesa_solver.dir/core/diagnostic.cpp.obj a5cabe8b0504c8b6 +122 2167 8092384218979200 src/fesa/CMakeFiles/fesa_solver.dir/core/ascii.cpp.obj c1314f837b92110e +63 2464 8092384218329431 _deps/googletest-build/googletest/CMakeFiles/gtest_main.dir/src/gtest_main.cc.obj bd6626bb67644ce5 +112 2521 8092384218924680 src/fesa/CMakeFiles/fesa_solver.dir/constraints/essential_constraint_policy.cpp.obj 839def0f97ba4345 +67 2557 8092384218488485 src/fesa/CMakeFiles/fesa_solver.dir/analysis/analysis_model.cpp.obj 61c968a4b6f63aff +72 2575 8092384218488485 src/fesa/CMakeFiles/fesa_solver.dir/analysis/analysis_state.cpp.obj 7fe12c916f130467 +117 2585 8092384218979200 src/fesa/CMakeFiles/fesa_solver.dir/constraints/prescribed_displacement.cpp.obj cf4a7839ef2889be +92 2604 8092384218727988 src/fesa/CMakeFiles/fesa_solver.dir/assembly/load_assembler.cpp.obj a9a88a41a899d830 +102 2671 8092384218842800 src/fesa/CMakeFiles/fesa_solver.dir/assembly/sparse_assembler.cpp.obj e370471d9b7f46eb +82 2748 8092384218645949 src/fesa/CMakeFiles/fesa_solver.dir/app/fesa_application.cpp.obj b131425fcf446caf +136 2761 8092384219192725 src/fesa/CMakeFiles/fesa_solver.dir/elements/element_factory.cpp.obj c53943f91b42e499 +141 3032 8092384219211547 src/fesa/CMakeFiles/fesa_solver.dir/elements/euler_beam_3d.cpp.obj 8d8a96d17efb1fbd +87 3044 8092384218668902 src/fesa/CMakeFiles/fesa_solver.dir/app/output_paths.cpp.obj 2f4555a69a891bf2 +77 3054 8092384218488485 src/fesa/CMakeFiles/fesa_solver.dir/analysis/linear_static_analysis.cpp.obj 96370aed2a86ae09 +1369 4357 8092384231534591 src/fesa/CMakeFiles/fesa_solver.dir/elements/mitc4_shell.cpp.obj 4497417f368343ba +2029 4511 8092384238129153 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/domain_builder.cpp.obj f82b7186c8b1d417 +2167 4531 8092384239513629 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/domain_mapper.cpp.obj 78013a69808c94d7 +1761 4592 8092384235437686 src/fesa/CMakeFiles/fesa_solver.dir/fem/dof_manager.cpp.obj be7398345e5a9ad +2465 4609 8092384242481563 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/input_reader.cpp.obj 209f6a2dba784f60 +2558 4634 8092384243411066 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/step_definition_mapper.cpp.obj e2bf727de4df328f +2575 4654 8092384243589363 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/topology_mapper.cpp.obj 35a7cf559a2383f0 +2522 4978 8092384243054401 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/material_property_mapper.cpp.obj e3d7c5c1826acfd0 +58 4997 8092384218329431 _deps/googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.obj 5f59395ac6fe27d6 +2672 5237 8092384244558583 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_primitives.cpp.obj a94f3e6278bb7040 +2605 5250 8092384243885657 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_model_writer.cpp.obj 54d576166219ebe3 +2762 5307 8092384245447369 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_results_writer.cpp.obj b086f45ee057095d +2585 5660 8092384243687256 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_atomic_file.cpp.obj acf4093ec1ca0dab +3045 5693 8092384248271192 src/fesa/CMakeFiles/fesa_solver.dir/loads/concentrated_nodal_load.cpp.obj b738f2f3ef238897 +3032 5716 8092384248152286 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_self_check.cpp.obj 61e23edf9fd3defe +2749 5755 8092384245329453 src/fesa/CMakeFiles/fesa_solver.dir/io/hdf5/hdf5_result_writer.cpp.obj 76edfaf76dda1150 +5008 5765 8092384267920473 lib/gtest.lib 3ad571dfafc7ee18 +3054 5812 8092384248369539 src/fesa/CMakeFiles/fesa_solver.dir/materials/isotropic_linear_elastic_material.cpp.obj ec18800579e40b2f +2129 6343 8092384239119443 src/fesa/CMakeFiles/fesa_solver.dir/io/abaqus/domain_mapping_context.cpp.obj 541cf582d5d72f1d +4978 6880 8092384267621712 src/fesa/CMakeFiles/fesa_solver.dir/properties/general_beam_section.cpp.obj 14abd1111f7f07ba +5813 6922 8092384275957474 lib/gtest_main.lib 1fea6bfefff1654b +4532 7019 8092384263153824 src/fesa/CMakeFiles/fesa_solver.dir/math/sparse_matrix.cpp.obj 43c886855039f11b +4635 7086 8092384264181273 src/fesa/CMakeFiles/fesa_solver.dir/model/shell_geometry.cpp.obj 64372c6247c9d1fe +4654 7099 8092384264379650 src/fesa/CMakeFiles/fesa_solver.dir/model/source_target_resolver.cpp.obj f0d949f736370376 +5238 7149 8092384270209372 src/fesa/CMakeFiles/fesa_solver.dir/properties/shell_section.cpp.obj b4b7f64079a1b357 +4512 7175 8092384262955435 src/fesa/CMakeFiles/fesa_solver.dir/math/matrix.cpp.obj 90a5827630c77ffa +4358 7188 8092384261413268 src/fesa/CMakeFiles/fesa_solver.dir/math/dense_blas_internal.cpp.obj 1d155025fdc36e32 +4592 7436 8092384263746888 src/fesa/CMakeFiles/fesa_solver.dir/math/vector.cpp.obj 31eb0e6e052791f4 +5308 7496 8092384270902468 src/fesa/CMakeFiles/fesa_solver.dir/results/beam_result_recovery.cpp.obj 8dbf5a7584b82d05 +4610 7578 8092384263925156 src/fesa/CMakeFiles/fesa_solver.dir/model/domain.cpp.obj 327270abdb77ada5 +5694 7594 8092384274770343 src/fesa/CMakeFiles/fesa_solver.dir/results/recovery_candidate.cpp.obj 36f81aba1565e4cd +5251 7882 8092384270347432 src/fesa/CMakeFiles/fesa_solver.dir/results/analysis_state_commit.cpp.obj f591f5f73fa893d +5756 7931 8092384275383077 src/fesa/CMakeFiles/fesa_solver.dir/results/shell_result_recovery.cpp.obj d6de270523c88b62 +5661 7969 8092384274433391 src/fesa/CMakeFiles/fesa_solver.dir/results/global_equilibrium_recovery.cpp.obj dc54637dec7c2fe +5717 8847 8092384275008914 src/fesa/CMakeFiles/fesa_solver.dir/results/result_recovery.cpp.obj dcfbfce0a69b5131 +5765 9159 8092384275484616 src/fesa/CMakeFiles/fesa_solver.dir/solvers/linear/mkl_pardiso_solver.cpp.obj c7d3578377b60ab4 +6356 9177 8092384281377735 tests/CMakeFiles/fesa_unit_tests.dir/unit/build_info_test.cpp.obj cc2d626fb4f55428 +7087 9322 8092384288690125 tests/CMakeFiles/fesa_unit_tests.dir/unit/assembly/parallel_for_test.cpp.obj 64cd58a46d8c2ed0 +6881 9633 8092384286632996 tests/CMakeFiles/fesa_unit_tests.dir/unit/analysis/analysis_test.cpp.obj 629ae05c2a17e2a2 +7176 10116 8092384289581651 tests/CMakeFiles/fesa_unit_tests.dir/unit/app/output_paths_test.cpp.obj 190d4f41b24a7775 +9160 10155 8092384309439240 src/fesa/fesa_solver.lib 834cb49484ed4975 +7578 10308 8092384293615881 tests/CMakeFiles/fesa_unit_tests.dir/unit/core/diagnostic_test.cpp.obj 382faf72525f5dbd +7497 10354 8092384292804797 tests/CMakeFiles/fesa_unit_tests.dir/unit/core/ascii_test.cpp.obj 4c8e3757a2b86a10 +7594 10413 8092384293774107 tests/CMakeFiles/fesa_unit_tests.dir/unit/core/source_identity_test.cpp.obj 2f8c538d6bbcf9a6 +7019 10542 8092384288017054 tests/CMakeFiles/fesa_unit_tests.dir/unit/analysis/analysis_state_test.cpp.obj 4eceb64a57a9abdc +6922 10553 8092384287049746 tests/CMakeFiles/fesa_unit_tests.dir/unit/analysis/analysis_model_test.cpp.obj 40c473ba9bc9973e +7883 10959 8092384296644544 tests/CMakeFiles/fesa_unit_tests.dir/unit/core/status_test.cpp.obj ab6dc42cc2881a67 +7100 10971 8092384288828228 tests/CMakeFiles/fesa_unit_tests.dir/unit/assembly/load_assembler_test.cpp.obj fd58472fadea8d92 +7189 11213 8092384289719698 tests/CMakeFiles/fesa_unit_tests.dir/unit/constraints/boundary_condition_test.cpp.obj 6d8a23b383677aae +7437 11353 8092384292190435 tests/CMakeFiles/fesa_unit_tests.dir/unit/constraints/essential_constraints_test.cpp.obj fc4706d7a106f2b0 +7150 11433 8092384289323046 tests/CMakeFiles/fesa_unit_tests.dir/unit/assembly/sparse_assembler_test.cpp.obj 1d73050ff822ef16 +7970 11517 8092384297528284 tests/CMakeFiles/fesa_unit_tests.dir/unit/elements/euler_beam_3d_test.cpp.obj 4757a86932e814d5 +7932 12441 8092384297154255 tests/CMakeFiles/fesa_unit_tests.dir/unit/elements/element_factory_test.cpp.obj 1646374b1d49e4ea +9634 12565 8092384314168466 tests/CMakeFiles/fesa_unit_tests.dir/unit/math/matrix_test.cpp.obj 1c0388a2cb34a977 +10309 12712 8092384320925938 tests/CMakeFiles/fesa_unit_tests.dir/unit/math/vector_test.cpp.obj 537626a817bb764a +8848 12728 8092384306313035 tests/CMakeFiles/fesa_unit_tests.dir/unit/elements/mitc4_shell_test.cpp.obj 2f4e47f40acc7795 +10156 12796 8092384319383650 tests/CMakeFiles/fesa_unit_tests.dir/unit/math/vector3_test.cpp.obj 7940001bdaf8e4fe +9322 13452 8092384311062628 tests/CMakeFiles/fesa_unit_tests.dir/unit/math/dense_blas_internal_test.cpp.obj f2f846d2a426012d +9177 13464 8092384309597453 tests/CMakeFiles/fesa_unit_tests.dir/unit/fem/dof_manager_test.cpp.obj 6004da54fb433c80 +10117 13583 8092384318989204 tests/CMakeFiles/fesa_unit_tests.dir/unit/math/sparse_matrix_test.cpp.obj f75bb2f18a5bd303 +10542 13638 8092384323262138 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/abaqus/input_reader_test.cpp.obj 54d4660fb8524142 +10554 13838 8092384323380087 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/abaqus/input_syntax_test.cpp.obj 14036fa417a21f26 +10354 14002 8092384321383068 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/abaqus/domain_mapping_components_test.cpp.obj 8b6d55d5290b3dcf +10414 14961 8092384321975774 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/abaqus/domain_mapper_test.cpp.obj 4256f1932890204e +11214 14967 8092384329967026 tests/CMakeFiles/fesa_unit_tests.dir/unit/loads/load_test.cpp.obj 41fecb4ac4aefc2d +11434 15018 8092384332164407 tests/CMakeFiles/fesa_unit_tests.dir/unit/model/model_types_test.cpp.obj 167fe5a77a5994eb +11517 15025 8092384332997863 tests/CMakeFiles/fesa_unit_tests.dir/unit/model/shell_geometry_test.cpp.obj 785d2d3084addad4 +12566 15363 8092384343501584 tests/CMakeFiles/fesa_unit_tests.dir/unit/materials/material_test.cpp.obj 1b5d607a45cc656b +11354 15565 8092384331373052 tests/CMakeFiles/fesa_unit_tests.dir/unit/model/domain_test.cpp.obj 4e4ba6955bfefa4 +10972 15603 8092384327552836 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/hdf5/hdf5_writer_components_test.cpp.obj 7b26f2ede20a2e21 +12442 15702 8092384342237335 tests/CMakeFiles/fesa_unit_tests.dir/unit/model/source_target_resolver_test.cpp.obj 7dee827d528c74d3 +12713 15742 8092384344954378 tests/CMakeFiles/fesa_unit_tests.dir/unit/properties/element_property_test.cpp.obj 8473fe9452582ea0 +13465 15869 8092384352483655 tests/CMakeFiles/fesa_unit_tests.dir/unit/results/results_writer_test.cpp.obj d9deb24734dfc76 +10960 16310 8092384327434560 tests/CMakeFiles/fesa_unit_tests.dir/unit/io/hdf5/hdf5_results_writer_test.cpp.obj 562b8f04b2dcdc01 +13584 16592 8092384353669318 tests/CMakeFiles/fesa_unit_tests.dir/unit/solvers/linear/linear_solver_test.cpp.obj 60444f53e28a5449 +12728 16604 8092384345112691 tests/CMakeFiles/fesa_unit_tests.dir/unit/results/result_records_test.cpp.obj 750f53bc9d3bf3f1 +13639 16746 8092384354224529 tests/CMakeFiles/fesa_unit_tests.dir/unit/solvers/linear/mkl_pardiso_solver_test.cpp.obj b761afa1036f4978 +14003 16836 8092384357866571 tests/CMakeFiles/fesa_integration_tests.dir/integration/app/fesa_application_test.cpp.obj 83061b0b6e67b7d2 +12797 17156 8092384345803861 tests/CMakeFiles/fesa_unit_tests.dir/unit/results/result_recovery_components_test.cpp.obj 83ac2cda76cf82a +13839 17161 8092384356222006 tests/CMakeFiles/fesa_integration_tests.dir/integration/analysis/linear_static_analysis_test.cpp.obj 2637ca1438adff43 +13452 17652 8092384352365561 tests/CMakeFiles/fesa_unit_tests.dir/unit/results/result_recovery_test.cpp.obj 16815e6d5b74928a +17162 19481 8092384412470224 tests/fesa_integration_tests.exe d976ae10942a92cd +17162 19481 8092384412470224 tests/fesa_integration_tests_d537bc73_tests.cmake d976ae10942a92cd +17162 19481 8092384412470224 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake d976ae10942a92cd +17652 19869 8092384416412729 tests/fesa_unit_tests.exe c7f61799ccaff6df +17652 19869 8092384416412729 tests/fesa_unit_tests_576e7e9d_tests.cmake c7f61799ccaff6df +17652 19869 8092384416412729 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake c7f61799ccaff6df +57 907 8092384649865117 src/fesa/CMakeFiles/fesa_cli.dir/app/main.cpp.obj db4c7e4d98d0b37a +62 1025 8092384649865117 tests/CMakeFiles/fesa_reference_tests.dir/reference/reference_tolerance_policy.cpp.obj 4d4567dc725e04bf +67 1957 8092384649929171 tests/CMakeFiles/fesa_reference_tests.dir/reference/reference_tolerance_policy_test.cpp.obj df1c2a7b89dbaab5 +87 2236 8092384650156206 tests/CMakeFiles/fesa_reference_tests.dir/reference/mitc4_reference_comparison.cpp.obj d5641bbf190f8212 +98 2282 8092384650262486 tests/CMakeFiles/fesa_reference_tests.dir/reference/mitc4_reference_cases_test.cpp.obj 724d2e009b4467de +82 2448 8092384650085756 tests/CMakeFiles/fesa_reference_tests.dir/reference/b33_reference_comparison_test.cpp.obj fe2325128628efc1 +92 2498 8092384650202184 tests/CMakeFiles/fesa_reference_tests.dir/reference/mitc4_reference_comparison_test.cpp.obj 536ec854d4427ddc +72 2767 8092384649929171 tests/CMakeFiles/fesa_reference_tests.dir/reference/reference_comparison.cpp.obj c9b25f54d0e8d98f +908 2795 8092384658379739 src/fesa/fesa.exe 1f8f56fa7a9b4ffe +76 2814 8092384649929171 tests/CMakeFiles/fesa_reference_tests.dir/reference/reference_comparison_test.cpp.obj 20f54b6ae2255260 +2814 4306 8092384692235536 tests/fesa_reference_tests.exe c70eaec9df33bb90 +2814 4306 8092384692235536 tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +2814 4306 8092384692235536 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +53 1720 8092385992962344 tests/CMakeFiles/fesa_reference_tests.dir/reference/mitc4_reference_cases_test.cpp.obj 724d2e009b4467de +57 1772 8092387178958005 tests/CMakeFiles/fesa_reference_tests.dir/reference/b33_reference_comparison_test.cpp.obj fe2325128628efc1 +51 2086 8092387178799897 tests/CMakeFiles/fesa_reference_tests.dir/reference/reference_comparison.cpp.obj c9b25f54d0e8d98f +2086 2967 8092387207983024 tests/fesa_reference_tests.exe c70eaec9df33bb90 +2086 2967 8092387207983024 tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +2086 2967 8092387207983024 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +47 1627 8092387468833159 tests/CMakeFiles/fesa_reference_tests.dir/reference/mitc4_reference_cases_test.cpp.obj 724d2e009b4467de +1627 2458 8092387492815552 tests/fesa_reference_tests.exe c70eaec9df33bb90 +1627 2458 8092387492815552 tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +1627 2458 8092387492815552 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake c70eaec9df33bb90 +31 1687 8092388278143624 tests/CMakeFiles/fesa_integration_tests.dir/integration/app/fesa_application_test.cpp.obj 83061b0b6e67b7d2 +1688 2540 8092388303138660 tests/fesa_integration_tests.exe d976ae10942a92cd +1688 2540 8092388303138660 tests/fesa_integration_tests_d537bc73_tests.cmake d976ae10942a92cd +1688 2540 8092388303138660 C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake d976ae10942a92cd diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfig.cmake b/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfig.cmake new file mode 100644 index 0000000..2ac43eb --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfig.cmake @@ -0,0 +1,37 @@ + +####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### +####### Any changes to this file will be overwritten by the next CMake run #### +####### The input file was Config.cmake.in ######## + +get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) + +macro(set_and_check _var _file) + set(${_var} "${_file}") + if(NOT EXISTS "${_file}") + message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") + endif() +endmacro() + +macro(check_required_components _NAME) + foreach(comp ${${_NAME}_FIND_COMPONENTS}) + if(NOT ${_NAME}_${comp}_FOUND) + if(${_NAME}_FIND_REQUIRED_${comp}) + set(${_NAME}_FOUND FALSE) + endif() + endif() + endforeach() +endmacro() + +#################################################################################### +include(CMakeFindDependencyMacro) +if () + set(THREADS_PREFER_PTHREAD_FLAG ) + find_dependency(Threads) +endif() +if (OFF) + find_dependency(absl) + find_dependency(re2) +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake") +check_required_components("") diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfigVersion.cmake b/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfigVersion.cmake new file mode 100644 index 0000000..18adc9e --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/GTestConfigVersion.cmake @@ -0,0 +1,43 @@ +# This is a basic version file for the Config-mode of find_package(). +# It is used by write_basic_package_version_file() as input file for configure_file() +# to create a version-file which can be installed along a config.cmake file. +# +# The created file sets PACKAGE_VERSION_EXACT if the current version string and +# the requested version string are exactly the same and it sets +# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. +# The variable CVF_VERSION must be set before calling configure_file(). + +set(PACKAGE_VERSION "1.16.0") + +if (PACKAGE_FIND_VERSION_RANGE) + # Package version must be in the requested version range + if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN) + OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX) + OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX))) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + endif() +else() + if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) + else() + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() + endif() +endif() + + +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") + return() +endif() + +# check that the installed version has the same 32/64bit-ness as the one which is currently searching: +if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") + math(EXPR installedBits "8 * 8") + set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") + set(PACKAGE_VERSION_UNSUITABLE TRUE) +endif() diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock.pc b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock.pc new file mode 100644 index 0000000..dee3a40 --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock.pc @@ -0,0 +1,10 @@ +libdir=C:/Program Files (x86)/FESA/lib +includedir=C:/Program Files (x86)/FESA/include + +Name: gmock +Description: GoogleMock (without main() function) +Version: 1.16.0 +URL: https://github.com/google/googletest +Requires: gtest = 1.16.0 +Libs: -L${libdir} -lgmock +Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=0 diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock_main.pc b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock_main.pc new file mode 100644 index 0000000..317b487 --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gmock_main.pc @@ -0,0 +1,10 @@ +libdir=C:/Program Files (x86)/FESA/lib +includedir=C:/Program Files (x86)/FESA/include + +Name: gmock_main +Description: GoogleMock (with main() function) +Version: 1.16.0 +URL: https://github.com/google/googletest +Requires: gmock = 1.16.0 +Libs: -L${libdir} -lgmock_main +Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=0 diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest.pc b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest.pc new file mode 100644 index 0000000..f8cf008 --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest.pc @@ -0,0 +1,9 @@ +libdir=C:/Program Files (x86)/FESA/lib +includedir=C:/Program Files (x86)/FESA/include + +Name: gtest +Description: GoogleTest (without main() function) +Version: 1.16.0 +URL: https://github.com/google/googletest +Libs: -L${libdir} -lgtest +Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=0 diff --git a/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest_main.pc b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest_main.pc new file mode 100644 index 0000000..464e309 --- /dev/null +++ b/.harness/build-ninja/_deps/googletest-build/googletest/generated/gtest_main.pc @@ -0,0 +1,10 @@ +libdir=C:/Program Files (x86)/FESA/lib +includedir=C:/Program Files (x86)/FESA/include + +Name: gtest_main +Description: GoogleTest (with main() function) +Version: 1.16.0 +URL: https://github.com/google/googletest +Requires: gtest = 1.16.0 +Libs: -L${libdir} -lgtest_main +Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=0 diff --git a/.harness/build-ninja/build.ninja b/.harness/build-ninja/build.ninja new file mode 100644 index 0000000..46a298b --- /dev/null +++ b/.harness/build-ninja/build.ninja @@ -0,0 +1,2058 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Ninja" Generator, CMake Version 4.4 + +# This file contains all the build statements describing the +# compilation DAG. + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# +# Which is the root file. +# ============================================================================= + +# ============================================================================= +# Project: FESA +# Configurations: Debug +# ============================================================================= + +############################################# +# Minimal version of Ninja required by this file + +ninja_required_version = 1.5 + + +############################################# +# Set configuration variable for custom commands. + +CONFIGURATION = Debug +# ============================================================================= +# Include auxiliary files. + + +############################################# +# Include rules file. + +include CMakeFiles\rules.ninja + +# ============================================================================= + +############################################# +# Logical path to working directory; prefix for absolute paths. + +cmake_ninja_workdir = C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\ + +############################################# +# Utility command for test + +build CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build test: phony CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build edit_cache: phony CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build rebuild_cache: phony CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build list_install_components: phony + + +############################################# +# Utility command for install + +build CMakeFiles\install.util: CUSTOM_COMMAND all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build install: phony CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build CMakeFiles\install\local.util: CUSTOM_COMMAND all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build install\local: phony CMakeFiles\install\local.util + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/cmake/FesaDependencies.cmake +# ============================================================================= + + +############################################# +# Utility command for test + +build _deps\googletest-build\CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build _deps\googletest-build\test: phony _deps\googletest-build\CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build _deps\googletest-build\CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build _deps\googletest-build\edit_cache: phony _deps\googletest-build\CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build _deps\googletest-build\CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build _deps\googletest-build\rebuild_cache: phony _deps\googletest-build\CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build _deps\googletest-build\list_install_components: phony + + +############################################# +# Utility command for install + +build _deps\googletest-build\CMakeFiles\install.util: CUSTOM_COMMAND _deps\googletest-build\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build _deps\googletest-build\install: phony _deps\googletest-build\CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build _deps\googletest-build\CMakeFiles\install\local.util: CUSTOM_COMMAND _deps\googletest-build\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build _deps\googletest-build\install\local: phony _deps\googletest-build\CMakeFiles\install\local.util + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# C:/git/googletest/CMakeLists.txt +# ============================================================================= + +# ============================================================================= +# Object build statements for STATIC_LIBRARY target gmock + + +############################################# +# Order-only phony target for gmock + +build cmake_object_order_depends_target_gmock: phony || . + +build _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\C_\git\googletest\googletest\src\gtest-all.cc.obj: CXX_COMPILER__gmock_unscanned_Debug C$:\git\googletest\googletest\src\gtest-all.cc || cmake_object_order_depends_target_gmock + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googlemock\include -IC:\git\googletest\googlemock -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + OBJECT_FILE_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\C_\git\googletest\googletest\src + TARGET_COMPILE_PDB = lib\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + +build _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\src\gmock-all.cc.obj: CXX_COMPILER__gmock_unscanned_Debug C$:\git\googletest\googlemock\src\gmock-all.cc || cmake_object_order_depends_target_gmock + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googlemock\include -IC:\git\googletest\googlemock -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + OBJECT_FILE_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\src + TARGET_COMPILE_PDB = lib\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + + +# ============================================================================= +# Link build statements for STATIC_LIBRARY target gmock + + +############################################# +# Link the static library lib\gmock.lib + +build lib\gmock.lib: CXX_STATIC_LIBRARY_LINKER__gmock_Debug _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\C_\git\googletest\googletest\src\gtest-all.cc.obj _deps\googletest-build\googlemock\CMakeFiles\gmock.dir\src\gmock-all.cc.obj + CONFIG = Debug + LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + POST_BUILD = cd . + PRE_LINK = cd . + TARGET_COMPILE_PDB = lib\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_FILE = lib\gmock.lib + TARGET_PDB = bin\gmockpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock.dir + +# ============================================================================= +# Object build statements for STATIC_LIBRARY target gmock_main + + +############################################# +# Order-only phony target for gmock_main + +build cmake_object_order_depends_target_gmock_main: phony || . + +build _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\C_\git\googletest\googletest\src\gtest-all.cc.obj: CXX_COMPILER__gmock_main_unscanned_Debug C$:\git\googletest\googletest\src\gtest-all.cc || cmake_object_order_depends_target_gmock_main + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googlemock\include -IC:\git\googletest\googlemock -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + OBJECT_FILE_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\C_\git\googletest\googletest\src + TARGET_COMPILE_PDB = lib\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + +build _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src\gmock-all.cc.obj: CXX_COMPILER__gmock_main_unscanned_Debug C$:\git\googletest\googlemock\src\gmock-all.cc || cmake_object_order_depends_target_gmock_main + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googlemock\include -IC:\git\googletest\googlemock -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + OBJECT_FILE_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src + TARGET_COMPILE_PDB = lib\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + +build _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src\gmock_main.cc.obj: CXX_COMPILER__gmock_main_unscanned_Debug C$:\git\googletest\googlemock\src\gmock_main.cc || cmake_object_order_depends_target_gmock_main + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googlemock\include -IC:\git\googletest\googlemock -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + OBJECT_FILE_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src + TARGET_COMPILE_PDB = lib\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + + +# ============================================================================= +# Link build statements for STATIC_LIBRARY target gmock_main + + +############################################# +# Link the static library lib\gmock_main.lib + +build lib\gmock_main.lib: CXX_STATIC_LIBRARY_LINKER__gmock_main_Debug _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\C_\git\googletest\googletest\src\gtest-all.cc.obj _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src\gmock-all.cc.obj _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir\src\gmock_main.cc.obj + CONFIG = Debug + LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 + OBJECT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + POST_BUILD = cd . + PRE_LINK = cd . + TARGET_COMPILE_PDB = lib\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_FILE = lib\gmock_main.lib + TARGET_PDB = bin\gmock_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googlemock\CMakeFiles\gmock_main.dir + + +############################################# +# Utility command for test + +build _deps\googletest-build\googlemock\CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build _deps\googletest-build\googlemock\test: phony _deps\googletest-build\googlemock\CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build _deps\googletest-build\googlemock\CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build _deps\googletest-build\googlemock\edit_cache: phony _deps\googletest-build\googlemock\CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build _deps\googletest-build\googlemock\CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build _deps\googletest-build\googlemock\rebuild_cache: phony _deps\googletest-build\googlemock\CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build _deps\googletest-build\googlemock\list_install_components: phony + + +############################################# +# Utility command for install + +build _deps\googletest-build\googlemock\CMakeFiles\install.util: CUSTOM_COMMAND _deps\googletest-build\googlemock\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build _deps\googletest-build\googlemock\install: phony _deps\googletest-build\googlemock\CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build _deps\googletest-build\googlemock\CMakeFiles\install\local.util: CUSTOM_COMMAND _deps\googletest-build\googlemock\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build _deps\googletest-build\googlemock\install\local: phony _deps\googletest-build\googlemock\CMakeFiles\install\local.util + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# C:/git/googletest/googlemock/CMakeLists.txt +# ============================================================================= + +# ============================================================================= +# Object build statements for STATIC_LIBRARY target gtest + + +############################################# +# Order-only phony target for gtest + +build cmake_object_order_depends_target_gtest: phony || . + +build _deps\googletest-build\googletest\CMakeFiles\gtest.dir\src\gtest-all.cc.obj: CXX_COMPILER__gtest_unscanned_Debug C$:\git\googletest\googletest\src\gtest-all.cc || cmake_object_order_depends_target_gtest + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -IC:\git\googletest\googletest\include -IC:\git\googletest\googletest + OBJECT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest.dir + OBJECT_FILE_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest.dir\src + TARGET_COMPILE_PDB = lib\gtestpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gtestpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest.dir + + +# ============================================================================= +# Link build statements for STATIC_LIBRARY target gtest + + +############################################# +# Link the static library lib\gtest.lib + +build lib\gtest.lib: CXX_STATIC_LIBRARY_LINKER__gtest_Debug _deps\googletest-build\googletest\CMakeFiles\gtest.dir\src\gtest-all.cc.obj + CONFIG = Debug + LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 + OBJECT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest.dir + POST_BUILD = cd . + PRE_LINK = cd . + TARGET_COMPILE_PDB = lib\gtestpdb_debug_postfix-NOTFOUND.pdb + TARGET_FILE = lib\gtest.lib + TARGET_PDB = bin\gtestpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest.dir + +# ============================================================================= +# Object build statements for STATIC_LIBRARY target gtest_main + + +############################################# +# Order-only phony target for gtest_main + +build cmake_object_order_depends_target_gtest_main: phony || cmake_object_order_depends_target_gtest + +build _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir\src\gtest_main.cc.obj: CXX_COMPILER__gtest_main_unscanned_Debug C$:\git\googletest\googletest\src\gtest_main.cc || cmake_object_order_depends_target_gtest_main + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -GS -W4 -WX -wd4251 -wd4275 -nologo -J -D_UNICODE -DUNICODE -DWIN32 -D_WIN32 -DSTRICT -DWIN32_LEAN_AND_MEAN -wd4702 -utf-8 -DGTEST_HAS_PTHREAD=0 -EHsc -D_HAS_EXCEPTIONS=1 + INCLUDES = -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir + OBJECT_FILE_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir\src + TARGET_COMPILE_PDB = lib\gtest_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_PDB = bin\gtest_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir + + +# ============================================================================= +# Link build statements for STATIC_LIBRARY target gtest_main + + +############################################# +# Link the static library lib\gtest_main.lib + +build lib\gtest_main.lib: CXX_STATIC_LIBRARY_LINKER__gtest_main_Debug _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir\src\gtest_main.cc.obj || lib\gtest.lib + CONFIG = Debug + LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 + OBJECT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir + POST_BUILD = cd . + PRE_LINK = cd . + TARGET_COMPILE_PDB = lib\gtest_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_FILE = lib\gtest_main.lib + TARGET_PDB = bin\gtest_mainpdb_debug_postfix-NOTFOUND.pdb + TARGET_SUPPORT_DIR = _deps\googletest-build\googletest\CMakeFiles\gtest_main.dir + + +############################################# +# Utility command for test + +build _deps\googletest-build\googletest\CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build _deps\googletest-build\googletest\test: phony _deps\googletest-build\googletest\CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build _deps\googletest-build\googletest\CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build _deps\googletest-build\googletest\edit_cache: phony _deps\googletest-build\googletest\CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build _deps\googletest-build\googletest\CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build _deps\googletest-build\googletest\rebuild_cache: phony _deps\googletest-build\googletest\CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build _deps\googletest-build\googletest\list_install_components: phony + + +############################################# +# Utility command for install + +build _deps\googletest-build\googletest\CMakeFiles\install.util: CUSTOM_COMMAND _deps\googletest-build\googletest\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build _deps\googletest-build\googletest\install: phony _deps\googletest-build\googletest\CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build _deps\googletest-build\googletest\CMakeFiles\install\local.util: CUSTOM_COMMAND _deps\googletest-build\googletest\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build _deps\googletest-build\googletest\install\local: phony _deps\googletest-build\googletest\CMakeFiles\install\local.util + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/CMakeLists.txt +# ============================================================================= + +# ============================================================================= +# Object build statements for STATIC_LIBRARY target fesa_solver + + +############################################# +# Order-only phony target for fesa_solver + +build cmake_object_order_depends_target_fesa_solver: phony || . + +build src\fesa\CMakeFiles\fesa_solver.dir\analysis\analysis_model.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\analysis\analysis_model.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\analysis + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\analysis\analysis_state.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\analysis\analysis_state.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\analysis + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\analysis\linear_static_analysis.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\analysis\linear_static_analysis.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\analysis + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\app\fesa_application.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\app\fesa_application.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\app + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\app\output_paths.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\app\output_paths.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\app + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\assembly\load_assembler.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\assembly\load_assembler.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\assembly + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\assembly\parallel_for.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\assembly\parallel_for.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\assembly + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\assembly\sparse_assembler.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\assembly\sparse_assembler.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\assembly + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\build_info.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\build_info.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\constraints\essential_constraint_policy.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\constraints\essential_constraint_policy.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\constraints + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\constraints\prescribed_displacement.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\constraints\prescribed_displacement.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\constraints + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\core\ascii.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\core\ascii.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\core + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\core\diagnostic.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\core\diagnostic.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\core + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\core\status.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\core\status.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\core + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\elements\element_factory.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\elements\element_factory.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\elements + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\elements\euler_beam_3d.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\elements\euler_beam_3d.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\elements + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\elements\mitc4_shell.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\elements\mitc4_shell.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\elements + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\fem\dof_manager.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\fem\dof_manager.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\fem + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_builder.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\domain_builder.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_mapping_context.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\domain_mapping_context.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_mapper.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\domain_mapper.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\input_reader.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\input_reader.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\material_property_mapper.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\material_property_mapper.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\step_definition_mapper.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\step_definition_mapper.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\topology_mapper.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\abaqus\topology_mapper.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_atomic_file.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_atomic_file.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_model_writer.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_model_writer.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_primitives.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_primitives.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_result_writer.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_result_writer.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_results_writer.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_results_writer.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_self_check.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\io\hdf5\hdf5_self_check.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5 + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\loads\concentrated_nodal_load.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\loads\concentrated_nodal_load.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\loads + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\materials\isotropic_linear_elastic_material.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\materials\isotropic_linear_elastic_material.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\materials + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\math\dense_blas_internal.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\math\dense_blas_internal.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\math + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\math\matrix.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\math\matrix.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\math + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\math\sparse_matrix.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\math\sparse_matrix.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\math + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\math\vector.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\math\vector.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\math + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\model\domain.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\model\domain.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\model + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\model\shell_geometry.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\model\shell_geometry.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\model + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\model\source_target_resolver.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\model\source_target_resolver.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\model + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\properties\general_beam_section.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\properties\general_beam_section.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\properties + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\properties\shell_section.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\properties\shell_section.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\properties + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\analysis_state_commit.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\analysis_state_commit.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\beam_result_recovery.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\beam_result_recovery.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\global_equilibrium_recovery.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\global_equilibrium_recovery.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\recovery_candidate.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\recovery_candidate.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\result_recovery.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\result_recovery.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\results\shell_result_recovery.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\results\shell_result_recovery.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\results + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +build src\fesa\CMakeFiles\fesa_solver.dir\solvers\linear\mkl_pardiso_solver.cpp.obj: CXX_COMPILER__fesa_solver_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\solvers\linear\mkl_pardiso_solver.cpp || cmake_object_order_depends_target_fesa_solver + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB -D__TBB_NO_IMPLICIT_LINKAGE=1 + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\include" -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:W0 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_solver.dir\solvers\linear + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + + +# ============================================================================= +# Link build statements for STATIC_LIBRARY target fesa_solver + + +############################################# +# Link the static library src\fesa\fesa_solver.lib + +build src\fesa\fesa_solver.lib: CXX_STATIC_LIBRARY_LINKER__fesa_solver_Debug src\fesa\CMakeFiles\fesa_solver.dir\analysis\analysis_model.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\analysis\analysis_state.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\analysis\linear_static_analysis.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\app\fesa_application.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\app\output_paths.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\assembly\load_assembler.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\assembly\parallel_for.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\assembly\sparse_assembler.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\build_info.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\constraints\essential_constraint_policy.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\constraints\prescribed_displacement.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\core\ascii.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\core\diagnostic.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\core\status.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\elements\element_factory.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\elements\euler_beam_3d.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\elements\mitc4_shell.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\fem\dof_manager.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_builder.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_mapping_context.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\domain_mapper.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\input_reader.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\material_property_mapper.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\step_definition_mapper.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\abaqus\topology_mapper.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_atomic_file.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_model_writer.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_primitives.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_result_writer.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_results_writer.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\io\hdf5\hdf5_self_check.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\loads\concentrated_nodal_load.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\materials\isotropic_linear_elastic_material.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\math\dense_blas_internal.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\math\matrix.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\math\sparse_matrix.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\math\vector.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\model\domain.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\model\shell_geometry.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\model\source_target_resolver.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\properties\general_beam_section.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\properties\shell_section.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\analysis_state_commit.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\beam_result_recovery.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\global_equilibrium_recovery.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\recovery_candidate.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\result_recovery.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\results\shell_result_recovery.cpp.obj src\fesa\CMakeFiles\fesa_solver.dir\solvers\linear\mkl_pardiso_solver.cpp.obj + CONFIG = Debug + LANGUAGE_COMPILE_FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 + OBJECT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + POST_BUILD = cd . + PRE_LINK = cd . + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_solver.dir\fesa_solver.pdb + TARGET_FILE = src\fesa\fesa_solver.lib + TARGET_PDB = src\fesa\fesa_solver.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_solver.dir + +# ============================================================================= +# Object build statements for EXECUTABLE target fesa_cli + + +############################################# +# Order-only phony target for fesa_cli + +build cmake_object_order_depends_target_fesa_cli: phony || cmake_object_order_depends_target_fesa_solver + +build src\fesa\CMakeFiles\fesa_cli.dir\app\main.cpp.obj: CXX_COMPILER__fesa_cli_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\app\main.cpp || cmake_object_order_depends_target_fesa_cli + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /W4 /WX + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include + OBJECT_DIR = src\fesa\CMakeFiles\fesa_cli.dir + OBJECT_FILE_DIR = src\fesa\CMakeFiles\fesa_cli.dir\app + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_cli.dir\ + TARGET_PDB = src\fesa\fesa.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_cli.dir + + +# ============================================================================= +# Link build statements for EXECUTABLE target fesa_cli + + +############################################# +# Link the executable src\fesa\fesa.exe + +build src\fesa\fesa.exe: CXX_EXECUTABLE_LINKER__fesa_cli_Debug src\fesa\CMakeFiles\fesa_cli.dir\app\main.cpp.obj | src\fesa\fesa_solver.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib C$:\Program$ Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib || src\fesa\fesa_solver.lib + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console + LINK_LIBRARIES = src\fesa\fesa_solver.lib "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib" "C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib" "C:\Program Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib" shlwapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + OBJECT_DIR = src\fesa\CMakeFiles\fesa_cli.dir + POST_BUILD = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libiomp5md.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libmmd.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_def.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" "C:/Program Files/HDF_Group/HDF5/2.1.1/bin/hdf5.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa" + PRE_LINK = cd . + TARGET_COMPILE_PDB = src\fesa\CMakeFiles\fesa_cli.dir\ + TARGET_FILE = src\fesa\fesa.exe + TARGET_IMPLIB = src\fesa\fesa.lib + TARGET_PDB = src\fesa\fesa.pdb + TARGET_SUPPORT_DIR = src\fesa\CMakeFiles\fesa_cli.dir + + +############################################# +# Utility command for test + +build src\fesa\CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build src\fesa\test: phony src\fesa\CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build src\fesa\CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build src\fesa\edit_cache: phony src\fesa\CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build src\fesa\CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build src\fesa\rebuild_cache: phony src\fesa\CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build src\fesa\list_install_components: phony + + +############################################# +# Utility command for install + +build src\fesa\CMakeFiles\install.util: CUSTOM_COMMAND src\fesa\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build src\fesa\install: phony src\fesa\CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build src\fesa\CMakeFiles\install\local.util: CUSTOM_COMMAND src\fesa\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build src\fesa\install\local: phony src\fesa\CMakeFiles\install\local.util + +# ============================================================================= +# Write statements declared in CMakeLists.txt: +# C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/CMakeLists.txt +# ============================================================================= + +# ============================================================================= +# Object build statements for EXECUTABLE target fesa_unit_tests + + +############################################# +# Order-only phony target for fesa_unit_tests + +build cmake_object_order_depends_target_fesa_unit_tests: phony || cmake_object_order_depends_target_fesa_solver cmake_object_order_depends_target_gtest cmake_object_order_depends_target_gtest_main + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\build_info_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\build_info_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_model_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_model_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_state_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_state_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\parallel_for_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\parallel_for_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\load_assembler_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\sparse_assembler_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\app\output_paths_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\app + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints\boundary_condition_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints\essential_constraints_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\core\ascii_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\ascii_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\core + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\core\diagnostic_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\diagnostic_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\core + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\core\source_identity_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\source_identity_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\core + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\core\status_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\status_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\core + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\element_factory_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\element_factory_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\elements + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\euler_beam_3d_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\elements + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\mitc4_shell_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\elements + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\fem\dof_manager_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\fem + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\math\dense_blas_internal_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\dense_blas_internal_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\math + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\math\matrix_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\matrix_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\math + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\math\sparse_matrix_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\sparse_matrix_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\math + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\math\vector3_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\math + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\math\vector_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\math + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\domain_mapping_components_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapping_components_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\domain_mapper_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\input_reader_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_reader_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\input_syntax_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_syntax_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5\hdf5_results_writer_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5 + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5\hdf5_writer_components_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_writer_components_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5 + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\loads\load_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\loads\load_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\loads + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\model\domain_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\domain_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\model + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\model\model_types_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\model_types_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\model + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\model\shell_geometry_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\model + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\model\source_target_resolver_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\source_target_resolver_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\model + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\materials\material_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\materials\material_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\materials + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\properties\element_property_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\properties\element_property_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\properties + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_records_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_records_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\results + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_recovery_components_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\results + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_recovery_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\results + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\results\results_writer_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\results_writer_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\results + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear\linear_solver_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\linear_solver_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + +build tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear\mkl_pardiso_solver_test.cpp.obj: CXX_COMPILER__fesa_unit_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp || cmake_object_order_depends_target_fesa_unit_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi -DMKL_ILP64 + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:I"C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + + +# ============================================================================= +# Link build statements for EXECUTABLE target fesa_unit_tests + + +############################################# +# Link the executable tests\fesa_unit_tests.exe + +build tests\fesa_unit_tests.exe tests\fesa_unit_tests_576e7e9d_tests.cmake | ${cmake_ninja_workdir}tests\fesa_unit_tests_576e7e9d_tests.cmake: CXX_EXECUTABLE_LINKER__fesa_unit_tests_Debug tests\CMakeFiles\fesa_unit_tests.dir\unit\build_info_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_model_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\analysis\analysis_state_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\parallel_for_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\load_assembler_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\assembly\sparse_assembler_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\app\output_paths_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints\boundary_condition_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\constraints\essential_constraints_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\core\ascii_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\core\diagnostic_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\core\source_identity_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\core\status_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\element_factory_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\euler_beam_3d_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\elements\mitc4_shell_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\fem\dof_manager_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\math\dense_blas_internal_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\math\matrix_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\math\sparse_matrix_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\math\vector3_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\math\vector_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\domain_mapping_components_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\domain_mapper_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\input_reader_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\abaqus\input_syntax_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5\hdf5_results_writer_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\io\hdf5\hdf5_writer_components_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\loads\load_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\model\domain_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\model\model_types_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\model\shell_geometry_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\model\source_target_resolver_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\materials\material_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\properties\element_property_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_records_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_recovery_components_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\results\result_recovery_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\results\results_writer_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear\linear_solver_test.cpp.obj tests\CMakeFiles\fesa_unit_tests.dir\unit\solvers\linear\mkl_pardiso_solver_test.cpp.obj | src\fesa\fesa_solver.lib lib\gtest_main.lib C$:\Program$ Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib lib\gtest.lib || lib\gtest.lib lib\gtest_main.lib src\fesa\fesa_solver.lib + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console + LINK_LIBRARIES = src\fesa\fesa_solver.lib lib\gtest_main.lib "C:\Program Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib" shlwapi.lib "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib" "C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib" lib\gtest.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + OBJECT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + POST_BUILD = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libiomp5md.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libmmd.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_def.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files/HDF_Group/HDF5/2.1.1/bin/hdf5.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -P C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_discovery.cmake -- " + PRE_LINK = cd . + RESTAT = 1 + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_unit_tests.dir\ + TARGET_FILE = tests\fesa_unit_tests.exe + TARGET_IMPLIB = tests\fesa_unit_tests.lib + TARGET_PDB = tests\fesa_unit_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_unit_tests.dir + RSP_FILE = CMakeFiles\fesa_unit_tests.rsp + +# ============================================================================= +# Object build statements for EXECUTABLE target fesa_integration_tests + + +############################################# +# Order-only phony target for fesa_integration_tests + +build cmake_object_order_depends_target_fesa_integration_tests: phony || cmake_object_order_depends_target_fesa_solver cmake_object_order_depends_target_gtest cmake_object_order_depends_target_gtest_main + +build tests\CMakeFiles\fesa_integration_tests.dir\integration\analysis\linear_static_analysis_test.cpp.obj: CXX_COMPILER__fesa_integration_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp || cmake_object_order_depends_target_fesa_integration_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_integration_tests.dir\integration\analysis + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_integration_tests.dir\ + TARGET_PDB = tests\fesa_integration_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + +build tests\CMakeFiles\fesa_integration_tests.dir\integration\app\fesa_application_test.cpp.obj: CXX_COMPILER__fesa_integration_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp || cmake_object_order_depends_target_fesa_integration_tests + CONFIG = Debug + DEFINES = -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_integration_tests.dir\integration\app + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_integration_tests.dir\ + TARGET_PDB = tests\fesa_integration_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + + +# ============================================================================= +# Link build statements for EXECUTABLE target fesa_integration_tests + + +############################################# +# Link the executable tests\fesa_integration_tests.exe + +build tests\fesa_integration_tests.exe tests\fesa_integration_tests_d537bc73_tests.cmake | ${cmake_ninja_workdir}tests\fesa_integration_tests_d537bc73_tests.cmake: CXX_EXECUTABLE_LINKER__fesa_integration_tests_Debug tests\CMakeFiles\fesa_integration_tests.dir\integration\analysis\linear_static_analysis_test.cpp.obj tests\CMakeFiles\fesa_integration_tests.dir\integration\app\fesa_application_test.cpp.obj | src\fesa\fesa_solver.lib lib\gtest_main.lib C$:\Program$ Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib lib\gtest.lib || lib\gtest.lib lib\gtest_main.lib src\fesa\fesa_solver.lib + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console + LINK_LIBRARIES = src\fesa\fesa_solver.lib lib\gtest_main.lib "C:\Program Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib" shlwapi.lib "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib" "C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib" lib\gtest.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + OBJECT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + POST_BUILD = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libiomp5md.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libmmd.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_def.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files/HDF_Group/HDF5/2.1.1/bin/hdf5.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -P C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_discovery.cmake -- " + PRE_LINK = cd . + RESTAT = 1 + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_integration_tests.dir\ + TARGET_FILE = tests\fesa_integration_tests.exe + TARGET_IMPLIB = tests\fesa_integration_tests.lib + TARGET_PDB = tests\fesa_integration_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_integration_tests.dir + +# ============================================================================= +# Object build statements for EXECUTABLE target fesa_reference_tests + + +############################################# +# Order-only phony target for fesa_reference_tests + +build cmake_object_order_depends_target_fesa_reference_tests: phony || cmake_object_order_depends_target_fesa_solver cmake_object_order_depends_target_gtest cmake_object_order_depends_target_gtest_main + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_tolerance_policy.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_tolerance_policy_test.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_comparison.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_comparison_test.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\b33_reference_comparison_test.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\b33_reference_comparison_test.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_comparison.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_comparison_test.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + +build tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_cases_test.cpp.obj: CXX_COMPILER__fesa_reference_tests_unscanned_Debug C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_cases_test.cpp || cmake_object_order_depends_target_fesa_reference_tests + CONFIG = Debug + DEFINES = -DFESA_TEST_BINARY_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja\" -DFESA_TEST_SOURCE_DIR=\"C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson\" -DH5_BUILT_AS_DYNAMIC_LIB + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi + INCLUDES = -IC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\include -external:I"C:\Program Files\HDF_Group\HDF5\2.1.1\include" -external:IC:\git\googletest\googletest\include -external:IC:\git\googletest\googletest -external:W0 + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + OBJECT_FILE_DIR = tests\CMakeFiles\fesa_reference_tests.dir\reference + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + + +# ============================================================================= +# Link build statements for EXECUTABLE target fesa_reference_tests + + +############################################# +# Link the executable tests\fesa_reference_tests.exe + +build tests\fesa_reference_tests.exe tests\fesa_reference_tests_ac7cf2f0_tests.cmake | ${cmake_ninja_workdir}tests\fesa_reference_tests_ac7cf2f0_tests.cmake: CXX_EXECUTABLE_LINKER__fesa_reference_tests_Debug tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_tolerance_policy.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_tolerance_policy_test.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_comparison.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\reference_comparison_test.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\b33_reference_comparison_test.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_comparison.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_comparison_test.cpp.obj tests\CMakeFiles\fesa_reference_tests.dir\reference\mitc4_reference_cases_test.cpp.obj | src\fesa\fesa_solver.lib lib\gtest_main.lib C$:\Program$ Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib lib\gtest.lib || lib\gtest.lib lib\gtest_main.lib src\fesa\fesa_solver.lib + CONFIG = Debug + FLAGS = /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -MDd -Zi + LINK_FLAGS = /machine:x64 /debug /INCREMENTAL /subsystem:console + LINK_LIBRARIES = src\fesa\fesa_solver.lib lib\gtest_main.lib "C:\Program Files\HDF_Group\HDF5\2.1.1\lib\hdf5.lib" shlwapi.lib "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_ilp64_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_intel_thread_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\mkl\2026.1\lib\mkl_core_dll.lib" "C:\Program Files (x86)\Intel\oneAPI\compiler\2026.1\lib\libiomp5md.lib" "C:\Program Files (x86)\Intel\oneAPI\tbb\2023.1\lib\tbb12_debug.lib" lib\gtest.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib + OBJECT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + POST_BUILD = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libiomp5md.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/../../compiler/2026.1/bin/libmmd.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_def.3.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && "C:\Program Files\CMake\bin\cmake.exe" -E copy_if_different "C:/Program Files/HDF_Group/HDF5/2.1.1/bin/hdf5.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_intel_thread.3.dll" "C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/bin/mkl_core.3.dll" "C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/bin/tbb12_debug.dll" C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests && cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -P C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_discovery.cmake -- " + PRE_LINK = cd . + RESTAT = 1 + TARGET_COMPILE_PDB = tests\CMakeFiles\fesa_reference_tests.dir\ + TARGET_FILE = tests\fesa_reference_tests.exe + TARGET_IMPLIB = tests\fesa_reference_tests.lib + TARGET_PDB = tests\fesa_reference_tests.pdb + TARGET_SUPPORT_DIR = tests\CMakeFiles\fesa_reference_tests.dir + + +############################################# +# Utility command for fesa_tests + +build tests\fesa_tests: phony tests\CMakeFiles\fesa_tests tests\fesa_integration_tests.exe tests\fesa_reference_tests.exe tests\fesa_unit_tests.exe + + +############################################# +# Utility command for test + +build tests\CMakeFiles\test.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\ctest.exe" " + DESC = Running tests... + pool = console + restat = 1 + +build tests\test: phony tests\CMakeFiles\test.util + + +############################################# +# Utility command for edit_cache + +build tests\CMakeFiles\edit_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake-gui.exe" -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake cache editor... + pool = console + restat = 1 + +build tests\edit_cache: phony tests\CMakeFiles\edit_cache.util + + +############################################# +# Utility command for rebuild_cache + +build tests\CMakeFiles\rebuild_cache.util: CUSTOM_COMMAND + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" --regenerate-during-build -SC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson -BC:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja" + DESC = Running CMake to regenerate build system... + pool = console + restat = 1 + +build tests\rebuild_cache: phony tests\CMakeFiles\rebuild_cache.util + + +############################################# +# Utility command for list_install_components + +build tests\list_install_components: phony + + +############################################# +# Utility command for install + +build tests\CMakeFiles\install.util: CUSTOM_COMMAND tests\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -P cmake_install.cmake" + DESC = Install the project... + pool = console + restat = 1 + +build tests\install: phony tests\CMakeFiles\install.util + + +############################################# +# Utility command for install/local + +build tests\CMakeFiles\install\local.util: CUSTOM_COMMAND tests\all + COMMAND = C:\WINDOWS\system32\cmd.exe /C "cd /D C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests && "C:\Program Files\CMake\bin\cmake.exe" -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake" + DESC = Installing only the local directory... + pool = console + restat = 1 + +build tests\install\local: phony tests\CMakeFiles\install\local.util + + +############################################# +# Phony custom command for tests\CMakeFiles\fesa_tests + +build tests\CMakeFiles\fesa_tests | ${cmake_ninja_workdir}tests\CMakeFiles\fesa_tests: phony tests\fesa_unit_tests.exe tests\fesa_integration_tests.exe tests\fesa_reference_tests.exe || lib\gtest.lib lib\gtest_main.lib src\fesa\fesa_solver.lib tests\fesa_integration_tests.exe tests\fesa_reference_tests.exe tests\fesa_unit_tests.exe + +# ============================================================================= +# Target aliases. + +build fesa.exe: phony src\fesa\fesa.exe + +build fesa_cli: phony src\fesa\fesa.exe + +build fesa_integration_tests: phony tests\fesa_integration_tests.exe + +build fesa_integration_tests.exe: phony tests\fesa_integration_tests.exe + +build fesa_reference_tests: phony tests\fesa_reference_tests.exe + +build fesa_reference_tests.exe: phony tests\fesa_reference_tests.exe + +build fesa_solver: phony src\fesa\fesa_solver.lib + +build fesa_solver.lib: phony src\fesa\fesa_solver.lib + +build fesa_tests: phony tests\fesa_tests + +build fesa_unit_tests: phony tests\fesa_unit_tests.exe + +build fesa_unit_tests.exe: phony tests\fesa_unit_tests.exe + +build gmock: phony lib\gmock.lib + +build gmock.lib: phony lib\gmock.lib + +build gmock_main: phony lib\gmock_main.lib + +build gmock_main.lib: phony lib\gmock_main.lib + +build gtest: phony lib\gtest.lib + +build gtest.lib: phony lib\gtest.lib + +build gtest_main: phony lib\gtest_main.lib + +build gtest_main.lib: phony lib\gtest_main.lib + +# ============================================================================= +# Folder targets. + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja + +build all: phony src\fesa\all tests\all + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/_deps/googletest-build + +build _deps\googletest-build\all: phony _deps\googletest-build\googlemock\all + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/_deps/googletest-build/googlemock + +build _deps\googletest-build\googlemock\all: phony lib\gmock.lib lib\gmock_main.lib _deps\googletest-build\googletest\all + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/_deps/googletest-build/googletest + +build _deps\googletest-build\googletest\all: phony lib\gtest.lib lib\gtest_main.lib + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/src/fesa + +build src\fesa\all: phony src\fesa\fesa_solver.lib src\fesa\fesa.exe + +# ============================================================================= + +############################################# +# Folder: C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests + +build tests\all: phony tests\fesa_unit_tests.exe tests\fesa_integration_tests.exe tests\fesa_reference_tests.exe + +# ============================================================================= +# Built-in targets + + +############################################# +# Re-run CMake if any of its inputs changed. + +build build.ninja C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests\cmake_install.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\CTestTestfile.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\CTestTestfile.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googlemock\CTestTestfile.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\_deps\googletest-build\googletest\CTestTestfile.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\src\fesa\CTestTestfile.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\.harness\build-ninja\tests\CTestTestfile.cmake: RERUN_CMAKE | C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\cmake\mkl\MKLConfig.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\cmake\mkl\MKLConfigVersion.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\cmake\tbb\TBBConfig.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\cmake\tbb\TBBConfigVersion.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCCompilerABI.c C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXCompilerABI.cpp C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCommonLanguageInclude.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCompilerIdDetection.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDependentOption.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCXXCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerABI.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerId.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerSupport.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineRCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineSystem.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeFindBinUtils.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeFindDependencyMacro.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeGenericSystem.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeInitializeConfigs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeLanguageInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakePackageConfigHelpers.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseImplicitIncludeInfo.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseImplicitLinkInfo.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseLibraryArchitecture.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeRCCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeRCInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystem.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystemSpecificInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystemSpecificInitialize.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCXXCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCompilerCommon.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestRCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckCSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckCXXSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckIncludeFile.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckIncludeFileCXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckLibraryExists.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ADSP-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ARMCC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ARMClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\AppleClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Borland-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Bruce-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\CMakeCommonCompilerMacros.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Clang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Clang-DetermineCompilerInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Compaq-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Cray-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\CrayClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Diab-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Embarcadero-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Fujitsu-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GHS-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GNU-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\HP-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\HP-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IAR-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Intel-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\LCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-CXX-CXXImportStd.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\NVHPC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\NVIDIA-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\OrangeC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PGI-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PathScale-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PellesC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Renesas-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SCO-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SDCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SunPro-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TI-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TIClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Tasking-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Watcom-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XL-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XL-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XLClang-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\zOS-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindDoxygen.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindPackageHandleStandardArgs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindPackageMessage.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindThreads.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\GNUInstallDirs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\GoogleTest.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCXXLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCommonLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeDetermineLinkerId.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeInspectCLinker.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeInspectCXXLinker.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CheckSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\FeatureTesting.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-Determine-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-Initialize.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\WindowsPaths.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\WriteBasicConfigVersionFile.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-config-version.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-config.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_java-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_java-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_static-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_static-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\libaec-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\libaec-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\zlib-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\zlib-targets.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\CMakeLists.txt C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\cmake\FesaDependencies.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\CMakeLists.txt C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\CMakeLists.txt C$:\git\googletest\CMakeLists.txt C$:\git\googletest\googlemock\CMakeLists.txt C$:\git\googletest\googlemock\cmake\gmock.pc.in C$:\git\googletest\googlemock\cmake\gmock_main.pc.in C$:\git\googletest\googletest\CMakeLists.txt C$:\git\googletest\googletest\cmake\Config.cmake.in C$:\git\googletest\googletest\cmake\gtest.pc.in C$:\git\googletest\googletest\cmake\gtest_main.pc.in C$:\git\googletest\googletest\cmake\internal_utils.cmake CMakeCache.txt CMakeFiles\4.4.0\CMakeCCompiler.cmake CMakeFiles\4.4.0\CMakeCXXCompiler.cmake CMakeFiles\4.4.0\CMakeRCCompiler.cmake CMakeFiles\4.4.0\CMakeSystem.cmake + pool = console + + +############################################# +# A missing CMake input file is not an error. + +build C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\cmake\mkl\MKLConfig.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\mkl\2026.1\lib\cmake\mkl\MKLConfigVersion.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\cmake\tbb\TBBConfig.cmake C$:\Program$ Files$ (x86)\Intel\oneAPI\tbb\2023.1\lib\cmake\tbb\TBBConfigVersion.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\BasicConfigVersion-AnyNewerVersion.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCCompilerABI.c C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXCompilerABI.cpp C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCXXInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCommonLanguageInclude.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeCompilerIdDetection.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDependentOption.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCXXCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerABI.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerId.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineCompilerSupport.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineRCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeDetermineSystem.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeFindBinUtils.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeFindDependencyMacro.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeGenericSystem.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeInitializeConfigs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeLanguageInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakePackageConfigHelpers.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseImplicitIncludeInfo.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseImplicitLinkInfo.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeParseLibraryArchitecture.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeRCCompiler.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeRCInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystem.cmake.in C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystemSpecificInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeSystemSpecificInitialize.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCXXCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestCompilerCommon.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CMakeTestRCCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckCSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckCXXSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckIncludeFile.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckIncludeFileCXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\CheckLibraryExists.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ADSP-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ARMCC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\ARMClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\AppleClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Borland-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Bruce-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\CMakeCommonCompilerMacros.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Clang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Clang-DetermineCompilerInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Compaq-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Compaq-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Cray-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\CrayClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Diab-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Embarcadero-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Fujitsu-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\FujitsuClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GHS-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GNU-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\GNU-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\HP-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\HP-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IAR-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMCPP-C-DetermineVersionInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMCPP-CXX-DetermineVersionInternal.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMClang-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IBMClang-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Intel-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\IntelLLVM-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\LCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\LCC-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-CXX-CXXImportStd.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\NVHPC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\NVIDIA-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\OpenWatcom-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\OrangeC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PGI-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PathScale-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\PellesC-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Renesas-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SCO-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SDCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SunPro-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\SunPro-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TI-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TIClang-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Tasking-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\TinyCC-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\VisualAge-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\VisualAge-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\Watcom-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XL-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XL-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XLClang-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\XLClang-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\zOS-C-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Compiler\zOS-CXX-DetermineCompiler.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindDoxygen.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindPackageHandleStandardArgs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindPackageMessage.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\FindThreads.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\GNUInstallDirs.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\GoogleTest.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCXXLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeCommonLinkerInformation.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeDetermineLinkerId.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeInspectCLinker.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CMakeInspectCXXLinker.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\CheckSourceCompiles.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Internal\FeatureTesting.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Linker\MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Linker\Windows-MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-Determine-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-Initialize.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC-C.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC-CXX.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows-MSVC.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\Windows.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\Platform\WindowsPaths.cmake C$:\Program$ Files\CMake\share\cmake-4.4\Modules\WriteBasicConfigVersionFile.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-config-version.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-config.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_java-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_java-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_static-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\hdf5_static-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\libaec-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\libaec-targets.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\zlib-targets-relwithdebinfo.cmake C$:\Program$ Files\HDF_Group\HDF5\2.1.1\cmake\zlib-targets.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\CMakeLists.txt C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\cmake\FesaDependencies.cmake C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\src\fesa\CMakeLists.txt C$:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\CMakeLists.txt C$:\git\googletest\CMakeLists.txt C$:\git\googletest\googlemock\CMakeLists.txt C$:\git\googletest\googlemock\cmake\gmock.pc.in C$:\git\googletest\googlemock\cmake\gmock_main.pc.in C$:\git\googletest\googletest\CMakeLists.txt C$:\git\googletest\googletest\cmake\Config.cmake.in C$:\git\googletest\googletest\cmake\gtest.pc.in C$:\git\googletest\googletest\cmake\gtest_main.pc.in C$:\git\googletest\googletest\cmake\internal_utils.cmake CMakeCache.txt CMakeFiles\4.4.0\CMakeCCompiler.cmake CMakeFiles\4.4.0\CMakeCXXCompiler.cmake CMakeFiles\4.4.0\CMakeRCCompiler.cmake CMakeFiles\4.4.0\CMakeSystem.cmake: phony + + +############################################# +# Clean all the built files. + +build clean: CLEAN + + +############################################# +# Print all primary targets available. + +build help: HELP + + +############################################# +# Make the all target the default. + +default all diff --git a/.harness/build-ninja/reference/cantilever-beam-b33/cantilever beam.inp b/.harness/build-ninja/reference/cantilever-beam-b33/cantilever beam.inp new file mode 100644 index 0000000..9eedc9c --- /dev/null +++ b/.harness/build-ninja/reference/cantilever-beam-b33/cantilever beam.inp @@ -0,0 +1,106 @@ +*Heading +** Job name: Job-1 Model name: Model-1 +** Generated by: Abaqus/CAE Learning Edition 2024 +*Preprint, echo=NO, model=NO, history=NO, contact=NO +** +** PARTS +** +*Part, name=PART-1_1 +*Node + 1, 0., 0., 0. + 2, 1., 0., 0. + 3, 2., 0., 0. + 4, 3., 0., 0. + 5, 4., 0., 0. + 6, 5., 0., 0. + 7, 6., 0., 0. + 8, 7., 0., 0. + 9, 8., 0., 0. + 10, 9., 0., 0. + 11, 10., 0., 0. +*Element, type=B33 + 1, 1, 2 + 2, 2, 3 + 3, 3, 4 + 4, 4, 5 + 5, 5, 6 + 6, 6, 7 + 7, 7, 8 + 8, 8, 9 + 9, 9, 10 +10, 10, 11 +*Elset, elset=Set-1, generate + 1, 10, 1 +*Elset, elset=Set-2, generate + 1, 10, 1 +*Elset, elset=Set-3, generate + 1, 10, 1 +*Elset, elset=Set-4, generate + 1, 10, 1 +** Section: Section-1 Profile: Profile-1 +*Beam General Section, elset=Set-1, material=Material-1, section=GENERAL +1., 0.0833333, 0., 0.0833333, 0.140833 +0.,1.,0. +*End Part +** +** +** ASSEMBLY +** +*Assembly, name=Assembly +** +*Instance, name=PART-1_1-1, part=PART-1_1 +*End Instance +** +*Nset, nset=Set-3, instance=PART-1_1-1 + 1, +*Nset, nset=Set-4, instance=PART-1_1-1 + 11, +*End Assembly +** +** MATERIALS +** +*Material, name=Material-1 +*Elastic + 2.1e+11, 0.3 +** +** BOUNDARY CONDITIONS +** +** Name: BC-1 Type: Displacement/Rotation +*Boundary +Set-3, 1, 1 +Set-3, 2, 2 +Set-3, 3, 3 +Set-3, 4, 4 +Set-3, 5, 5 +Set-3, 6, 6 +** ---------------------------------------------------------------- +** +** STEP: Step-1 +** +*Step, name=Step-1, nlgeom=NO +*Static +1., 1., 1e-05, 1. +** +** LOADS +** +** Name: Load-1 Type: Concentrated force +*Cload +Set-4, 3, -1e+06 +** +** OUTPUT REQUESTS +** +*Restart, write, frequency=0 +** +** FIELD OUTPUT: F-Output-1 +** +*Output, field +*Node Output +CF, RF, TF, U +*Element Output, directions=YES +LE, NFORC, NFORCSO, PE, PEEQ, PEMAG, S, SF +*Contact Output, variable=PRESELECT +** +** HISTORY OUTPUT: H-Output-1 +** +*Output, history, variable=PRESELECT +*End Step diff --git a/.harness/build-ninja/reference/cantilever-beam-b33/comparison.json b/.harness/build-ninja/reference/cantilever-beam-b33/comparison.json new file mode 100644 index 0000000..1ca12a3 --- /dev/null +++ b/.harness/build-ninja/reference/cantilever-beam-b33/comparison.json @@ -0,0 +1 @@ +{"rows":[{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-1.0000000000000001e-30,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0000000000000001e-30,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":9.9999999999999994e-30,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":9.9999999999999994e-30,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.00027619058666684742,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.00027619057800000002,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":8.6668474046786015e-12,"threshold":1.3809528900000002e-05,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":3.1379953173777712e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.00054285736000035233,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.00054285733499999996,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":2.5000352374231205e-11,"threshold":2.7142866749999998e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":4.6053264388941535e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0010666670933340199,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.00106666714,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":4.6665980107940541e-11,"threshold":5.3333357000000002e-05,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":4.3749336937425992e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.00102857184000065,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0010285718600000001,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.9999350049301756e-11,"threshold":5.1428593000000005e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":1.9443804392336531e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0023142866400014625,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.00231428654,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0000146240599084e-10,"threshold":0.000115714327,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":4.3210493029955932e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0014571434400008924,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0014571434600000001,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.9999107621695988e-11,"threshold":7.2857173000000011e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":1.3724872101265847e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0039619063466691208,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0039619063,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":4.6669120824793797e-11,"threshold":0.00019809531500000001,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":1.1779461019760563e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.001828572160001083,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.00182857213,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":3.0001082998096229e-11,"threshold":9.1428606500000009e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":1.6406835971024141e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0059523833333369452,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0059523833899999996,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":5.6663054456840278e-11,"threshold":0.00029761916950000003,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":9.5193892503688811e-09,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0021428580000012261,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0021428579900000001,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0001225975858619e-11,"threshold":0.00010714289950000001,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":4.6672369436196838e-09,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0082285747200048897,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0082285748800000006,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.5999511090991625e-10,"threshold":0.00041142874400000004,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":1.9443842128579649e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.002400000960001323,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0024000010499999999,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":8.9998676913727316e-11,"threshold":0.0001200000525,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":3.7499432308051413e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.010733337626672909,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0107333381,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":4.7332709106340243e-10,"threshold":0.00053666690500000006,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":4.4098777719803909e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0026000010400013753,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.00260000094,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0000137523613617e-10,"threshold":0.00013000004700000002,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":3.8462053493002263e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.013409529173340963,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0134095289,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":2.733409627114769e-10,"threshold":0.0006704764450000001,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":2.0384083941343898e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0027428582400013941,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0027428581399999998,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0000139431809441e-10,"threshold":0.00013714290699999999,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":3.645882842416867e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.016200006480009025,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.016200005999999999,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":4.8000902558298364e-10,"threshold":0.00081000030000000006,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":2.9630175790242526e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0028285725600013939,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0028285726400000002,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":7.9998606263703698e-11,"threshold":0.00014142863200000002,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":2.8282323434940561e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UX","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UY","value":0,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":0.00019047627199999999,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.019047626666677083,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"UZ","value":-0.0190476272,"unit_dimension":"length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":5.3332291707897106e-10,"threshold":0.00095238136000000005,"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"relative_error":2.7999441162885163e-08,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URX","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0028571440000013902,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URY","value":0.0028571439899999999,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":1.0001390340907967e-11,"threshold":0.00014285719949999999,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":3.5004852313753944e-09,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"displacement","component":"URZ","value":0,"unit_dimension":"radian","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/displacement"},"absolute_error":0,"threshold":2.85714399e-05,"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1000000.0000008196,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1000000,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":8.1956386566162109e-07,"threshold":50000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":8.1956386566162112e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":-10000000.000005051,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":-10000000,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.0514936447143555e-06,"threshold":500000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":5.0514936447143551e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1.4901161193847656e-08,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.4901161193847656e-08,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":-7.4505805969238281e-09,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":7.4505805969238281e-09,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":2.9802322387695312e-08,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":2.9802322387695312e-08,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":-2.0861625671386719e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":2.0861625671386719e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":-7.4505805969238281e-09,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":7.4505805969238281e-09,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":-5.9604644775390625e-08,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.9604644775390625e-08,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":1.3411045074462891e-07,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.3411045074462891e-07,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1.7881393432617188e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.7881393432617188e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":1.7881393432617188e-07,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.7881393432617188e-07,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1.7881393432617188e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.7881393432617188e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":5.9604644775390625e-08,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.9604644775390625e-08,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":-5.3644180297851562e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.3644180297851562e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":2.9802322387695312e-08,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":2.9802322387695312e-08,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":-5.9604644775390625e-08,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.9604644775390625e-08,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":2.9802322387695312e-08,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":2.9802322387695312e-08,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":-5.9604644775390625e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.9604644775390625e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":2.0861625671386719e-07,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":2.0861625671386719e-07,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF1","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF2","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":1.1920928955078125e-07,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RF3","value":0,"unit_dimension":"force","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":1.1920928955078125e-07,"threshold":10000,"reference_scale":1000000,"near_zero_band":10000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM1","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":-5.9604644775390625e-08,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM2","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":5.9604644775390625e-08,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":0,"endpoint_index":-1,"quantity":"reaction","component":"RM3","value":0,"unit_dimension":"force*length","coordinate_system":"global-cartesian","hdf5_dataset_path":"/steps/Step-1/frames/0/nodal/reaction"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":10000000.000005048,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":10000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":5.0477683544158936e-06,"threshold":500000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":5.0477683544158931e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":1,"source_element_label":1,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":9000000.0000042431,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":9000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":4.2431056499481201e-06,"threshold":450000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.7145618332756893e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":1,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":9000000.0000042599,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":9000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":4.2598694562911987e-06,"threshold":450000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.7331882847679983e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":2,"source_element_label":2,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":8000000.0000034403,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":8000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":3.4403055906295776e-06,"threshold":400000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.3003819882869718e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":2,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":8000000.0000034627,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":8000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":3.4626573324203491e-06,"threshold":400000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.3283216655254363e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":3,"source_element_label":3,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":7000000.0000026366,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":7000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":2.6365742087364197e-06,"threshold":350000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":3.7665345839091709e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":3,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":7000000.0000025677,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":7000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":2.5676563382148743e-06,"threshold":350000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":3.668080483164106e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":4,"source_element_label":4,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":6000000.0000020145,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":6000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":2.01445072889328e-06,"threshold":300000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":3.3574178814887999e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":4,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":6000000.0000018328,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":6000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":1.8328428268432617e-06,"threshold":300000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":3.0547380447387696e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":5,"source_element_label":5,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":5000000.0000013774,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":5000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":1.3774260878562927e-06,"threshold":250000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":2.7548521757125853e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":5,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":5000000.0000012713,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":5000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":1.2712553143501282e-06,"threshold":250000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":2.5425106287002566e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":6,"source_element_label":6,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":4000000.0000006957,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":4000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":6.9569796323776245e-07,"threshold":200000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":1.7392449080944062e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":6,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":4000000.0000006501,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":4000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":6.50063157081604e-07,"threshold":200000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":1.6251578927040101e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":7,"source_element_label":7,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":3000000.0000001346,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":3000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":1.3457611203193665e-07,"threshold":150000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.4858704010645549e-14,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":7,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":3000000.0000002407,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":3000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":2.407468855381012e-07,"threshold":150000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":8.0248961846033735e-14,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":8,"source_element_label":8,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":1999999.9999996345,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":2000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":3.6554411053657532e-07,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":1.8277205526828766e-13,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":8,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":1999999.9999999076,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":2000000,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":9.2433765530586243e-08,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":4.6216882765293121e-14,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":9,"source_element_label":9,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":999999.99999958952,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":999999.875,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0.12499958951957524,"threshold":49999.993750000001,"reference_scale":10000000,"near_zero_band":100000,"relative_error":1.2499960514452589e-07,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":9,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":999999.9999994681,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"My","value":999999.875,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0.12499946809839457,"threshold":49999.993750000001,"reference_scale":10000000,"near_zero_band":100000,"relative_error":1.2499948372333003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":10,"source_element_label":10,"endpoint_index":0,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"N","value":0,"unit_dimension":"force","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":0,"reference_scale":0,"near_zero_band":0,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"zero-scale-exact","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"T","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":2.4286118949223834e-07,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"My","value":-0.015625,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0.015625242861189492,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true},{"fesa":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"reference":{"model_id":"cantilever-beam-b33","step_name":"Step-1","frame_index":0,"instance_name":"PART-1_1-1","source_node_label":11,"source_element_label":10,"endpoint_index":1,"quantity":"section_resultant","component":"Mz","value":0,"unit_dimension":"force*length","coordinate_system":"beam-local","hdf5_dataset_path":"/steps/Step-1/frames/0/element/section_resultant"},"absolute_error":0,"threshold":100000,"reference_scale":10000000,"near_zero_band":100000,"relative_error":0,"relative_error_applicable":false,"tolerance_branch":"near-zero","passed":true}],"metrics":[{"quantity":"displacement","family_identity":"displacement-translation","components":["UX","UY","UZ"],"reference_scale":0.0190476272,"near_zero_band":0.00019047627199999999,"near_zero_count":23,"row_count":33,"maximum_absolute_error":5.3332291707897106e-10,"relative_rms":8.4596232170003814e-09,"worst_row":62,"rms_passed":true,"passed":true,"diagnostic_code":""},{"quantity":"displacement","family_identity":"displacement-rotation","components":["URX","URY","URZ"],"reference_scale":0.0028571439899999999,"near_zero_band":2.85714399e-05,"near_zero_count":23,"row_count":33,"maximum_absolute_error":1.0000139431809441e-10,"relative_rms":1.1723557271997219e-08,"worst_row":52,"rms_passed":true,"passed":true,"diagnostic_code":""},{"quantity":"reaction","family_identity":"reaction-force","components":["RF1","RF2","RF3"],"reference_scale":1000000,"near_zero_band":10000,"near_zero_count":32,"row_count":33,"maximum_absolute_error":8.1956386566162109e-07,"relative_rms":2.0922817757699256e-13,"worst_row":68,"rms_passed":true,"passed":true,"diagnostic_code":""},{"quantity":"reaction","family_identity":"reaction-moment","components":["RM1","RM2","RM3"],"reference_scale":10000000,"near_zero_band":100000,"near_zero_count":32,"row_count":33,"maximum_absolute_error":5.0514936447143555e-06,"relative_rms":8.8111605584712208e-14,"worst_row":70,"rms_passed":true,"passed":true,"diagnostic_code":""},{"quantity":"section_resultant","family_identity":"section-force","components":["N"],"reference_scale":0,"near_zero_band":0,"near_zero_count":20,"row_count":20,"maximum_absolute_error":0,"relative_rms":0,"worst_row":132,"rms_passed":true,"passed":true,"diagnostic_code":""},{"quantity":"section_resultant","family_identity":"section-moment","components":["T","My","Mz"],"reference_scale":10000000,"near_zero_band":100000,"near_zero_count":41,"row_count":60,"maximum_absolute_error":0.12499958951957524,"relative_rms":2.2910664449287597e-09,"worst_row":202,"rms_passed":true,"passed":true,"diagnostic_code":""}],"physics_evidence":{"free_residual_norm":9.3563393211070323e-07,"applied_force":[0,0,-1000000],"reaction_force":[0,0,999999.99999988079],"applied_moment_about_origin":[0,10000000,0],"reaction_moment_about_origin":[0,-9999999.9999972582,0],"endpoint_consistency_passed":true},"stress_comparison_applicable":false,"stress_comparison_reason":"Abaqus beam stress comparison is N/A; analytical/unit and HDF5 schema tests provide stress evidence.","passed":true} diff --git a/.harness/build-ninja/reference/mitc4-shell-s4-comparison/comparison.json b/.harness/build-ninja/reference/mitc4-shell-s4-comparison/comparison.json new file mode 100644 index 0000000..c9e05bd --- /dev/null +++ b/.harness/build-ninja/reference/mitc4-shell-s4-comparison/comparison.json @@ -0,0 +1 @@ +{"case_id":"shell-s4","source_element_type":"S4","internal_formulation":"FESA-MITC4","integration_rule":"2x2x2-gauss; mitc4-edge-midpoint-shear","rows":[{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR1","fesa_value":0,"reference_value":-1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U1","fesa_value":0,"reference_value":-3.1998230000000001e-40,"absolute_error":3.1998230000000001e-40,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U2","fesa_value":0,"reference_value":4.9807135999999997e-39,"absolute_error":4.9807135999999997e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U3","fesa_value":-2.3550441765084857e-05,"reference_value":-2.3740820300000001e-05,"absolute_error":1.9037853491514389e-07,"threshold":1.187041015e-06,"relative_error":0.0080190377800527755,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR1","fesa_value":-1.035480055332503e-20,"reference_value":-1.1241873199999999e-21,"absolute_error":9.2306132333250303e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR2","fesa_value":5.0891712441652425e-21,"reference_value":1.3860685e-22,"absolute_error":4.9505643941652428e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR3","fesa_value":0,"reference_value":1.8744721100000001e-39,"absolute_error":1.8744721100000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR2","fesa_value":0,"reference_value":1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR1","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR2","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR1","fesa_value":0,"reference_value":1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR2","fesa_value":0,"reference_value":-1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR1","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR2","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR1","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR2","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR1","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR2","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U1","fesa_value":0,"reference_value":-7.19702547e-39,"absolute_error":7.19702547e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U2","fesa_value":0,"reference_value":2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U3","fesa_value":-5.0585056699635712e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036429076e-08,"threshold":2.5511187700000005e-07,"relative_error":0.008571116043419074,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR1","fesa_value":-5.6243920395881555e-06,"reference_value":-5.6260682900000002e-06,"absolute_error":1.6762504118447317e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348831921693,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR2","fesa_value":3.400898134293328e-21,"reference_value":-2.7656802000000002e-21,"absolute_error":6.1665783342933285e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR3","fesa_value":0,"reference_value":-2.6971211900000001e-39,"absolute_error":2.6971211900000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U1","fesa_value":0,"reference_value":4.8544846400000002e-39,"absolute_error":4.8544846400000002e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U2","fesa_value":0,"reference_value":3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U3","fesa_value":-1.6215889629758092e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758091623e-08,"threshold":8.0782893000000004e-07,"relative_error":0.003671014218201595,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR1","fesa_value":-7.5506002663693056e-06,"reference_value":-7.6072574299999999e-06,"absolute_error":5.6657163630694338e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821130727,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR2","fesa_value":-1.5524365607222739e-21,"reference_value":1.03518463e-21,"absolute_error":2.5876211907222741e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR3","fesa_value":0,"reference_value":-9.2782633799999999e-40,"absolute_error":9.2782633799999999e-40,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U1","fesa_value":0,"reference_value":3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U2","fesa_value":0,"reference_value":-1.3749642800000001e-38,"absolute_error":1.3749642800000001e-38,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U3","fesa_value":-1.6215889629758081e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758081458e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182009662,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR1","fesa_value":8.920301433811875e-21,"reference_value":4.0481758699999999e-21,"absolute_error":4.8721255638118751e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR2","fesa_value":7.550600266369331e-06,"reference_value":7.6072574299999999e-06,"absolute_error":5.6657163630668927e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821097325,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR3","fesa_value":0,"reference_value":1.30327764e-39,"absolute_error":1.30327764e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U1","fesa_value":0,"reference_value":2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U2","fesa_value":0,"reference_value":-7.3588249999999996e-39,"absolute_error":7.3588249999999996e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U3","fesa_value":-5.0585056699635585e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036441782e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434215651,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR1","fesa_value":1.5645303302567618e-21,"reference_value":1.8280069500000001e-21,"absolute_error":2.6347661974323827e-22,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR2","fesa_value":5.6243920395881385e-06,"reference_value":5.6260682900000002e-06,"absolute_error":1.6762504118616724e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348832222803,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR3","fesa_value":0,"reference_value":2.2499780600000001e-39,"absolute_error":2.2499780600000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR1","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR2","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR1","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR2","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR1","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR2","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR1","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR2","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U1","fesa_value":0,"reference_value":1.4116124400000001e-38,"absolute_error":1.4116124400000001e-38,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U2","fesa_value":0,"reference_value":-2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U3","fesa_value":-5.0585056699635763e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036423994e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434180783,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR1","fesa_value":5.6243920395881571e-06,"reference_value":5.6260682900000002e-06,"absolute_error":1.6762504118430377e-09,"threshold":2.8130341450000001e-07,"relative_error":0.0002979434883189158,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR2","fesa_value":4.4347655236023856e-21,"reference_value":4.4763755300000003e-21,"absolute_error":4.1610006397614764e-23,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR3","fesa_value":0,"reference_value":-3.0512979799999999e-39,"absolute_error":3.0512979799999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U1","fesa_value":0,"reference_value":-5.8484494600000002e-39,"absolute_error":5.8484494600000002e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U2","fesa_value":0,"reference_value":-3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U3","fesa_value":-1.6215889629758105e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758105175e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182024338,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR1","fesa_value":7.5506002663693149e-06,"reference_value":7.6072574299999999e-06,"absolute_error":5.6657163630685021e-08,"threshold":3.8036287150000004e-07,"relative_error":0.007447777882111848,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR2","fesa_value":2.1356311506355561e-20,"reference_value":-1.50497021e-21,"absolute_error":2.2861281716355561e-20,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR3","fesa_value":0,"reference_value":-1.46886487e-39,"absolute_error":1.46886487e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U1","fesa_value":0,"reference_value":-3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U2","fesa_value":0,"reference_value":-6.0932731199999999e-39,"absolute_error":6.0932731199999999e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U3","fesa_value":-1.6215889629758112e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758111951e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182028536,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR1","fesa_value":-1.1112696166449936e-20,"reference_value":1.01630023e-21,"absolute_error":1.2128996396449936e-20,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR2","fesa_value":-7.5506002663693065e-06,"reference_value":-7.6072574299999999e-06,"absolute_error":5.6657163630693491e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821129617,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR3","fesa_value":0,"reference_value":-2.15680433e-39,"absolute_error":2.15680433e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U1","fesa_value":0,"reference_value":-2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U2","fesa_value":0,"reference_value":4.0232974499999997e-39,"absolute_error":4.0232974499999997e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U3","fesa_value":-5.0585056699635797e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036420606e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434174156,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR1","fesa_value":-4.4259335525163488e-21,"reference_value":-1.17114982e-21,"absolute_error":3.2547837325163488e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR2","fesa_value":-5.6243920395881648e-06,"reference_value":-5.6260682900000002e-06,"absolute_error":1.6762504118354144e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348831756082,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR3","fesa_value":0,"reference_value":4.2180695300000003e-39,"absolute_error":4.2180695300000003e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR1","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR2","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR1","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR2","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR1","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR2","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR1","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR2","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR1","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR2","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR1","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR2","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR1","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR2","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR1","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR2","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR1","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR2","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR1","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR2","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR1","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR2","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR1","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR2","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U1","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U2","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U3","fesa_value":-3.9829685019171916e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.574881917191893e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261691977,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR1","fesa_value":-4.5712631023128406e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.2671231284037584e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239150437,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR2","fesa_value":1.398506320372601e-06,"reference_value":1.46733487e-06,"absolute_error":6.882854962739899e-08,"threshold":7.3366743500000007e-08,"relative_error":0.04690718597002945,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U1","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U2","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U3","fesa_value":-1.2104431691990609e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009390823e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616115819,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR1","fesa_value":-4.7611888400534304e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.0992630053430593e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141385,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR2","fesa_value":4.7611888400534338e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053433982e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141457,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR3","fesa_value":0,"reference_value":1.4251779899999999e-39,"absolute_error":1.4251779899999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U1","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U2","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U3","fesa_value":-1.4301280732961153e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038847517e-09,"threshold":7.1619985000000001e-08,"relative_error":0.001585888843654988,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR1","fesa_value":-1.6987437569388302e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061169757e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999136,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR2","fesa_value":1.6987437569388296e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.1911193061170392e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999506,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR3","fesa_value":0,"reference_value":8.6599124099999996e-40,"absolute_error":8.6599124099999996e-40,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U1","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U2","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U3","fesa_value":-3.9829685019171891e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171893519e-09,"threshold":1.98719681e-07,"relative_error":0.002157532126168558,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR1","fesa_value":-1.3985063203725972e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627402802e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970032052,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR2","fesa_value":4.5712631023128397e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.267123128395288e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239131902,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U1","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U2","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U3","fesa_value":-3.9829685019172026e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819172029044e-09,"threshold":1.98719681e-07,"relative_error":0.002157532126171968,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR1","fesa_value":4.5712631023128541e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231285392836e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239446969,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR2","fesa_value":-1.3985063203726052e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627394755e-08,"threshold":7.3366743500000007e-08,"relative_error":0.04690718597002657,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U1","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U2","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U3","fesa_value":-1.2104431691990636e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009363718e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616093588,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR1","fesa_value":4.7611888400534347e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053434829e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741414748,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR2","fesa_value":-4.7611888400534372e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.099263005343737e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741415288,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR3","fesa_value":0,"reference_value":3.3318547500000001e-39,"absolute_error":3.3318547500000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U1","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U2","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U3","fesa_value":-1.4301280732961184e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038815753e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436527704,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR1","fesa_value":1.6987437569388346e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306116531e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735996551,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR2","fesa_value":-1.6987437569388336e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061166369e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735997167,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR3","fesa_value":0,"reference_value":-2.5950646299999998e-41,"absolute_error":2.5950646299999998e-41,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U1","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U2","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U3","fesa_value":-3.9829685019172035e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819172037514e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261721814,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR1","fesa_value":1.3985063203726063e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627393696e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970025848,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR2","fesa_value":-4.5712631023128524e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.267123128522343e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239409903,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U1","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U2","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U3","fesa_value":-1.2104431691990604e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009395906e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616119991,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR1","fesa_value":4.7611888400534169e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053417041e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741410972,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR2","fesa_value":4.7611888400534355e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053435676e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741414929,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR3","fesa_value":0,"reference_value":-1.1940870599999999e-39,"absolute_error":1.1940870599999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U1","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U2","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U3","fesa_value":-3.9829685019171933e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.574881917193587e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261696236,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR1","fesa_value":4.5712631023128456e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231284545804e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239261635,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR2","fesa_value":1.3985063203726016e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627398355e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970029019,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U1","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U2","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U3","fesa_value":-3.9829685019171874e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171876578e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261681317,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR1","fesa_value":1.3985063203725957e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627404284e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970033058,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR2","fesa_value":4.5712631023128363e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231283614067e-10,"threshold":2.2851681950000001e-07,"relative_error":0.0002027667623905777,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U1","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U2","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U3","fesa_value":-1.4301280732961157e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038843282e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436546923,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR1","fesa_value":1.6987437569388298e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306117018e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999383,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR2","fesa_value":1.6987437569388298e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306117018e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999383,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR3","fesa_value":0,"reference_value":2.3219193300000001e-39,"absolute_error":2.3219193300000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U1","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U2","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U3","fesa_value":-1.2104431691990617e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009382353e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616108871,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR1","fesa_value":-4.7611888400534313e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.099263005343144e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141403,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR2","fesa_value":-4.761188840053427e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.0992630053427205e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141313,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U1","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U2","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U3","fesa_value":-3.982968501917195e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171952811e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261700499,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR1","fesa_value":-4.571263102312849e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.2671231284884617e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239335768,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR2","fesa_value":-1.3985063203726012e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627398779e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970029311,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U1","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U2","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U3","fesa_value":-3.9829685019171976e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171978222e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261706895,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR1","fesa_value":-1.3985063203726061e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627393908e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970025987,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR2","fesa_value":-4.5712631023128473e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.267123128471521e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239298702,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U1","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U2","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U3","fesa_value":-1.4301280732961163e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038836929e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436542488,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR1","fesa_value":-1.6987437569388304e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061169545e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999013,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR2","fesa_value":-1.6987437569388317e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061168275e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735998276,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR3","fesa_value":0,"reference_value":1.78609082e-39,"absolute_error":1.78609082e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true}],"metrics":[{"family_identity":"displacement-translation","components":["U1","U2","U3"],"blocking":true,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"near_zero_count":122,"row_count":147,"maximum_absolute_error":1.9037853491514389e-07,"relative_rms":0.0010332756650397166,"worst_row":8,"rms_passed":true,"passed":true,"diagnostic_code":""},{"family_identity":"displacement-rotation","components":["UR1","UR2","UR3"],"blocking":false,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"near_zero_count":107,"row_count":147,"maximum_absolute_error":6.8828549627404284e-08,"relative_rms":0.0029771372973060382,"worst_row":261,"rms_passed":true,"passed":true,"diagnostic_code":""}],"vector_metrics":[{"instance_name":"Part-1-1","source_node_label":1,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":2,"displacement_norm_error":1.9037853491514389e-07,"rotation_norm_error":1.0474364347492016e-20},{"instance_name":"Part-1-1","source_node_label":3,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":4,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":5,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":6,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":7,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":8,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":9,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":10,"displacement_norm_error":4.3731870036429076e-08,"rotation_norm_error":1.6762504118447317e-09},{"instance_name":"Part-1-1","source_node_label":11,"displacement_norm_error":5.9311029758091623e-08,"rotation_norm_error":5.6657163630694338e-08},{"instance_name":"Part-1-1","source_node_label":12,"displacement_norm_error":5.9311029758081458e-08,"rotation_norm_error":5.6657163630668927e-08},{"instance_name":"Part-1-1","source_node_label":13,"displacement_norm_error":4.3731870036441782e-08,"rotation_norm_error":1.6762504118616724e-09},{"instance_name":"Part-1-1","source_node_label":14,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":15,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":16,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":17,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":18,"displacement_norm_error":4.3731870036423994e-08,"rotation_norm_error":1.6762504118430377e-09},{"instance_name":"Part-1-1","source_node_label":19,"displacement_norm_error":5.9311029758105175e-08,"rotation_norm_error":5.6657163630685021e-08},{"instance_name":"Part-1-1","source_node_label":20,"displacement_norm_error":5.9311029758111951e-08,"rotation_norm_error":5.6657163630693491e-08},{"instance_name":"Part-1-1","source_node_label":21,"displacement_norm_error":4.3731870036420606e-08,"rotation_norm_error":1.6762504118354144e-09},{"instance_name":"Part-1-1","source_node_label":22,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":23,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":24,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":25,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":26,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":27,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":28,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":29,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":30,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":31,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":32,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":33,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":34,"displacement_norm_error":8.574881917191893e-09,"rotation_norm_error":6.8834788003756478e-08},{"instance_name":"Part-1-1","source_node_label":35,"displacement_norm_error":8.6436208009390823e-08,"rotation_norm_error":7.211446900263782e-08},{"instance_name":"Part-1-1","source_node_label":36,"displacement_norm_error":2.2716267038847517e-09,"rotation_norm_error":3.0987106394881974e-08},{"instance_name":"Part-1-1","source_node_label":37,"displacement_norm_error":8.5748819171893519e-09,"rotation_norm_error":6.8834788003760276e-08},{"instance_name":"Part-1-1","source_node_label":38,"displacement_norm_error":8.5748819172029044e-09,"rotation_norm_error":6.8834788003752428e-08},{"instance_name":"Part-1-1","source_node_label":39,"displacement_norm_error":8.6436208009363718e-08,"rotation_norm_error":7.211446900264322e-08},{"instance_name":"Part-1-1","source_node_label":40,"displacement_norm_error":2.2716267038815753e-09,"rotation_norm_error":3.0987106394875986e-08},{"instance_name":"Part-1-1","source_node_label":41,"displacement_norm_error":8.5748819172037514e-09,"rotation_norm_error":6.8834788003751329e-08},{"instance_name":"Part-1-1","source_node_label":42,"displacement_norm_error":8.6436208009395906e-08,"rotation_norm_error":7.2114469002629442e-08},{"instance_name":"Part-1-1","source_node_label":43,"displacement_norm_error":8.574881917193587e-09,"rotation_norm_error":6.8834788003755909e-08},{"instance_name":"Part-1-1","source_node_label":44,"displacement_norm_error":8.5748819171876578e-09,"rotation_norm_error":6.8834788003761706e-08},{"instance_name":"Part-1-1","source_node_label":45,"displacement_norm_error":2.2716267038843282e-09,"rotation_norm_error":3.0987106394882127e-08},{"instance_name":"Part-1-1","source_node_label":46,"displacement_norm_error":8.6436208009382353e-08,"rotation_norm_error":7.2114469002633624e-08},{"instance_name":"Part-1-1","source_node_label":47,"displacement_norm_error":8.5748819171952811e-09,"rotation_norm_error":6.8834788003756372e-08},{"instance_name":"Part-1-1","source_node_label":48,"displacement_norm_error":8.5748819171978222e-09,"rotation_norm_error":6.8834788003751488e-08},{"instance_name":"Part-1-1","source_node_label":49,"displacement_norm_error":2.2716267038836929e-09,"rotation_norm_error":3.0987106394880327e-08}],"warnings":[],"worst_row":8,"passed":true} diff --git a/.harness/build-ninja/reference/mitc4-shell-s4-comparison/shell.inp b/.harness/build-ninja/reference/mitc4-shell-s4-comparison/shell.inp new file mode 100644 index 0000000..c107a7c --- /dev/null +++ b/.harness/build-ninja/reference/mitc4-shell-s4-comparison/shell.inp @@ -0,0 +1,164 @@ +*Heading +** Job name: shell Model name: Model-1 +** Generated by: Abaqus/CAE Learning Edition 2024 +*Preprint, echo=NO, model=NO, history=NO, contact=NO +** +** PARTS +** +*Part, name=Part-1 +*Node + 1, 0., -5., 0. + 2, 0., 0., 0. + 3, -5., 0., 0. + 4, -5., -5., 0. + 5, 0., 5., 0. + 6, 5., 0., 0. + 7, 5., 5., 0. + 8, -5., 5., 0. + 9, 5., -5., 0. + 10, 0., -3.33333325, 0. + 11, 0., -1.66666663, 0. + 12, -1.66666663, 0., 0. + 13, -3.33333325, 0., 0. + 14, -5., -1.66666663, 0. + 15, -5., -3.33333325, 0. + 16, -3.33333325, -5., 0. + 17, -1.66666663, -5., 0. + 18, 0., 3.33333325, 0. + 19, 0., 1.66666663, 0. + 20, 1.66666663, 0., 0. + 21, 3.33333325, 0., 0. + 22, 5., 1.66666663, 0. + 23, 5., 3.33333325, 0. + 24, 3.33333325, 5., 0. + 25, 1.66666663, 5., 0. + 26, -1.66666663, 5., 0. + 27, -3.33333325, 5., 0. + 28, -5., 3.33333325, 0. + 29, -5., 1.66666663, 0. + 30, 1.66666663, -5., 0. + 31, 3.33333325, -5., 0. + 32, 5., -3.33333325, 0. + 33, 5., -1.66666663, 0. + 34, -1.66666663, -3.33333325, 0. + 35, -1.66666663, -1.66666663, 0. + 36, -3.33333325, -3.33333325, 0. + 37, -3.33333325, -1.66666663, 0. + 38, 1.66666663, 3.33333325, 0. + 39, 1.66666663, 1.66666663, 0. + 40, 3.33333325, 3.33333325, 0. + 41, 3.33333325, 1.66666663, 0. + 42, -1.66666663, 1.66666663, 0. + 43, -1.66666663, 3.33333325, 0. + 44, -3.33333325, 1.66666663, 0. + 45, -3.33333325, 3.33333325, 0. + 46, 1.66666663, -1.66666663, 0. + 47, 1.66666663, -3.33333325, 0. + 48, 3.33333325, -1.66666663, 0. + 49, 3.33333325, -3.33333325, 0. +*Element, type=S4 + 1, 1, 10, 34, 17 + 2, 10, 11, 35, 34 + 3, 11, 2, 12, 35 + 4, 17, 34, 36, 16 + 5, 34, 35, 37, 36 + 6, 35, 12, 13, 37 + 7, 16, 36, 15, 4 + 8, 36, 37, 14, 15 + 9, 37, 13, 3, 14 +10, 5, 18, 38, 25 +11, 18, 19, 39, 38 +12, 19, 2, 20, 39 +13, 25, 38, 40, 24 +14, 38, 39, 41, 40 +15, 39, 20, 21, 41 +16, 24, 40, 23, 7 +17, 40, 41, 22, 23 +18, 41, 21, 6, 22 +19, 2, 19, 42, 12 +20, 19, 18, 43, 42 +21, 18, 5, 26, 43 +22, 12, 42, 44, 13 +23, 42, 43, 45, 44 +24, 43, 26, 27, 45 +25, 13, 44, 29, 3 +26, 44, 45, 28, 29 +27, 45, 27, 8, 28 +28, 2, 11, 46, 20 +29, 11, 10, 47, 46 +30, 10, 1, 30, 47 +31, 20, 46, 48, 21 +32, 46, 47, 49, 48 +33, 47, 30, 31, 49 +34, 21, 48, 33, 6 +35, 48, 49, 32, 33 +36, 49, 31, 9, 32 +*Nset, nset=Set-1, generate + 1, 49, 1 +*Elset, elset=Set-1, generate + 1, 36, 1 +** Section: Section-1 +*Shell Section, elset=Set-1, material=Material-1 +0.5, 5 +*End Part +** +** +** ASSEMBLY +** +*Assembly, name=Assembly +** +*Instance, name=Part-1-1, part=Part-1 +*End Instance +** +*Nset, nset=Set-1, instance=Part-1-1 + 2, +*Nset, nset=Set-2, instance=Part-1-1 + 1, 3, 4, 5, 6, 7, 8, 9, 14, 15, 16, 17, 22, 23, 24, 25 + 26, 27, 28, 29, 30, 31, 32, 33 +*Elset, elset=Set-2, instance=Part-1-1 + 1, 4, 7, 8, 9, 10, 13, 16, 17, 18, 21, 24, 25, 26, 27, 30 + 33, 34, 35, 36 +*End Assembly +** +** MATERIALS +** +*Material, name=Material-1 +*Elastic + 2.1e+11, 0.3 +** +** BOUNDARY CONDITIONS +** +** Name: BC-1 Type: Displacement/Rotation +*Boundary +Set-2, 1, 1 +Set-2, 2, 2 +Set-2, 3, 3 +Set-2, 4, 4 +Set-2, 5, 5 +Set-2, 6, 6 +** ---------------------------------------------------------------- +** +** STEP: Step-1 +** +*Step, name=Step-1, nlgeom=NO +*Static +1., 1., 1e-05, 1. +** +** LOADS +** +** Name: Load-1 Type: Concentrated force +*Cload +Set-1, 3, -100000. +** +** OUTPUT REQUESTS +** +*Restart, write, frequency=0 +** +** FIELD OUTPUT: F-Output-1 +** +*Output, field, variable=PRESELECT +** +** HISTORY OUTPUT: H-Output-1 +** +*Output, history, variable=PRESELECT +*End Step diff --git a/.harness/build-ninja/reference/mitc4-shell-s4-metadata/comparison.json b/.harness/build-ninja/reference/mitc4-shell-s4-metadata/comparison.json new file mode 100644 index 0000000..c9e05bd --- /dev/null +++ b/.harness/build-ninja/reference/mitc4-shell-s4-metadata/comparison.json @@ -0,0 +1 @@ +{"case_id":"shell-s4","source_element_type":"S4","internal_formulation":"FESA-MITC4","integration_rule":"2x2x2-gauss; mitc4-edge-midpoint-shear","rows":[{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR1","fesa_value":0,"reference_value":-1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":1,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U1","fesa_value":0,"reference_value":-3.1998230000000001e-40,"absolute_error":3.1998230000000001e-40,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U2","fesa_value":0,"reference_value":4.9807135999999997e-39,"absolute_error":4.9807135999999997e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"U3","fesa_value":-2.3550441765084857e-05,"reference_value":-2.3740820300000001e-05,"absolute_error":1.9037853491514389e-07,"threshold":1.187041015e-06,"relative_error":0.0080190377800527755,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR1","fesa_value":-1.035480055332503e-20,"reference_value":-1.1241873199999999e-21,"absolute_error":9.2306132333250303e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR2","fesa_value":5.0891712441652425e-21,"reference_value":1.3860685e-22,"absolute_error":4.9505643941652428e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":2,"component":"UR3","fesa_value":0,"reference_value":1.8744721100000001e-39,"absolute_error":1.8744721100000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR2","fesa_value":0,"reference_value":1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":3,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR1","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR2","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":4,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR1","fesa_value":0,"reference_value":1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":5,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"U3","fesa_value":0,"reference_value":-1.17769804e-32,"absolute_error":1.17769804e-32,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR2","fesa_value":0,"reference_value":-1.95418427e-32,"absolute_error":1.95418427e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":6,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR1","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR2","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":7,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR1","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR2","fesa_value":0,"reference_value":1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":8,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"U3","fesa_value":0,"reference_value":2.07395071e-35,"absolute_error":2.07395071e-35,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR1","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR2","fesa_value":0,"reference_value":-1.5941319700000001e-33,"absolute_error":1.5941319700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":9,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U1","fesa_value":0,"reference_value":-7.19702547e-39,"absolute_error":7.19702547e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U2","fesa_value":0,"reference_value":2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"U3","fesa_value":-5.0585056699635712e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036429076e-08,"threshold":2.5511187700000005e-07,"relative_error":0.008571116043419074,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR1","fesa_value":-5.6243920395881555e-06,"reference_value":-5.6260682900000002e-06,"absolute_error":1.6762504118447317e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348831921693,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR2","fesa_value":3.400898134293328e-21,"reference_value":-2.7656802000000002e-21,"absolute_error":6.1665783342933285e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":10,"component":"UR3","fesa_value":0,"reference_value":-2.6971211900000001e-39,"absolute_error":2.6971211900000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U1","fesa_value":0,"reference_value":4.8544846400000002e-39,"absolute_error":4.8544846400000002e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U2","fesa_value":0,"reference_value":3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"U3","fesa_value":-1.6215889629758092e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758091623e-08,"threshold":8.0782893000000004e-07,"relative_error":0.003671014218201595,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR1","fesa_value":-7.5506002663693056e-06,"reference_value":-7.6072574299999999e-06,"absolute_error":5.6657163630694338e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821130727,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR2","fesa_value":-1.5524365607222739e-21,"reference_value":1.03518463e-21,"absolute_error":2.5876211907222741e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":11,"component":"UR3","fesa_value":0,"reference_value":-9.2782633799999999e-40,"absolute_error":9.2782633799999999e-40,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U1","fesa_value":0,"reference_value":3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U2","fesa_value":0,"reference_value":-1.3749642800000001e-38,"absolute_error":1.3749642800000001e-38,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"U3","fesa_value":-1.6215889629758081e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758081458e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182009662,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR1","fesa_value":8.920301433811875e-21,"reference_value":4.0481758699999999e-21,"absolute_error":4.8721255638118751e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR2","fesa_value":7.550600266369331e-06,"reference_value":7.6072574299999999e-06,"absolute_error":5.6657163630668927e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821097325,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":12,"component":"UR3","fesa_value":0,"reference_value":1.30327764e-39,"absolute_error":1.30327764e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U1","fesa_value":0,"reference_value":2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U2","fesa_value":0,"reference_value":-7.3588249999999996e-39,"absolute_error":7.3588249999999996e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"U3","fesa_value":-5.0585056699635585e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036441782e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434215651,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR1","fesa_value":1.5645303302567618e-21,"reference_value":1.8280069500000001e-21,"absolute_error":2.6347661974323827e-22,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR2","fesa_value":5.6243920395881385e-06,"reference_value":5.6260682900000002e-06,"absolute_error":1.6762504118616724e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348832222803,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":13,"component":"UR3","fesa_value":0,"reference_value":2.2499780600000001e-39,"absolute_error":2.2499780600000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR1","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR2","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":14,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR1","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR2","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":15,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR1","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR2","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":16,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR1","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR2","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":17,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U1","fesa_value":0,"reference_value":1.4116124400000001e-38,"absolute_error":1.4116124400000001e-38,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U2","fesa_value":0,"reference_value":-2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"U3","fesa_value":-5.0585056699635763e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036423994e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434180783,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR1","fesa_value":5.6243920395881571e-06,"reference_value":5.6260682900000002e-06,"absolute_error":1.6762504118430377e-09,"threshold":2.8130341450000001e-07,"relative_error":0.0002979434883189158,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR2","fesa_value":4.4347655236023856e-21,"reference_value":4.4763755300000003e-21,"absolute_error":4.1610006397614764e-23,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":18,"component":"UR3","fesa_value":0,"reference_value":-3.0512979799999999e-39,"absolute_error":3.0512979799999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U1","fesa_value":0,"reference_value":-5.8484494600000002e-39,"absolute_error":5.8484494600000002e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U2","fesa_value":0,"reference_value":-3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"U3","fesa_value":-1.6215889629758105e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758105175e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182024338,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR1","fesa_value":7.5506002663693149e-06,"reference_value":7.6072574299999999e-06,"absolute_error":5.6657163630685021e-08,"threshold":3.8036287150000004e-07,"relative_error":0.007447777882111848,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR2","fesa_value":2.1356311506355561e-20,"reference_value":-1.50497021e-21,"absolute_error":2.2861281716355561e-20,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":19,"component":"UR3","fesa_value":0,"reference_value":-1.46886487e-39,"absolute_error":1.46886487e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U1","fesa_value":0,"reference_value":-3.1173094499999998e-23,"absolute_error":3.1173094499999998e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U2","fesa_value":0,"reference_value":-6.0932731199999999e-39,"absolute_error":6.0932731199999999e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"U3","fesa_value":-1.6215889629758112e-05,"reference_value":-1.61565786e-05,"absolute_error":5.9311029758111951e-08,"threshold":8.0782893000000004e-07,"relative_error":0.0036710142182028536,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR1","fesa_value":-1.1112696166449936e-20,"reference_value":1.01630023e-21,"absolute_error":1.2128996396449936e-20,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR2","fesa_value":-7.5506002663693065e-06,"reference_value":-7.6072574299999999e-06,"absolute_error":5.6657163630693491e-08,"threshold":3.8036287150000004e-07,"relative_error":0.0074477778821129617,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":20,"component":"UR3","fesa_value":0,"reference_value":-2.15680433e-39,"absolute_error":2.15680433e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U1","fesa_value":0,"reference_value":-2.3171766699999999e-23,"absolute_error":2.3171766699999999e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U2","fesa_value":0,"reference_value":4.0232974499999997e-39,"absolute_error":4.0232974499999997e-39,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"U3","fesa_value":-5.0585056699635797e-06,"reference_value":-5.1022375400000003e-06,"absolute_error":4.3731870036420606e-08,"threshold":2.5511187700000005e-07,"relative_error":0.0085711160434174156,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR1","fesa_value":-4.4259335525163488e-21,"reference_value":-1.17114982e-21,"absolute_error":3.2547837325163488e-21,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR2","fesa_value":-5.6243920395881648e-06,"reference_value":-5.6260682900000002e-06,"absolute_error":1.6762504118354144e-09,"threshold":2.8130341450000001e-07,"relative_error":0.00029794348831756082,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":21,"component":"UR3","fesa_value":0,"reference_value":4.2180695300000003e-39,"absolute_error":4.2180695300000003e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR1","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR2","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":22,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR1","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR2","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":23,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR1","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR2","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":24,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR1","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR2","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":25,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR1","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR2","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":26,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR1","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR2","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":27,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR1","fesa_value":0,"reference_value":1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR2","fesa_value":0,"reference_value":6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":28,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR1","fesa_value":0,"reference_value":5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR2","fesa_value":0,"reference_value":1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":29,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR1","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR2","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":30,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR1","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR2","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":31,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"U3","fesa_value":0,"reference_value":-3.3961335900000001e-34,"absolute_error":3.3961335900000001e-34,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR1","fesa_value":0,"reference_value":-1.3228819700000001e-33,"absolute_error":1.3228819700000001e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR2","fesa_value":0,"reference_value":-6.4281644100000003e-33,"absolute_error":6.4281644100000003e-33,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":32,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U1","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U2","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"U3","fesa_value":0,"reference_value":-6.2822664600000005e-33,"absolute_error":6.2822664600000005e-33,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR1","fesa_value":0,"reference_value":-5.1562540800000002e-34,"absolute_error":5.1562540800000002e-34,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR2","fesa_value":0,"reference_value":-1.44994833e-32,"absolute_error":1.44994833e-32,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":33,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U1","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U2","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"U3","fesa_value":-3.9829685019171916e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.574881917191893e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261691977,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR1","fesa_value":-4.5712631023128406e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.2671231284037584e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239150437,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR2","fesa_value":1.398506320372601e-06,"reference_value":1.46733487e-06,"absolute_error":6.882854962739899e-08,"threshold":7.3366743500000007e-08,"relative_error":0.04690718597002945,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":34,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U1","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U2","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"U3","fesa_value":-1.2104431691990609e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009390823e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616115819,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR1","fesa_value":-4.7611888400534304e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.0992630053430593e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141385,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR2","fesa_value":4.7611888400534338e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053433982e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141457,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":35,"component":"UR3","fesa_value":0,"reference_value":1.4251779899999999e-39,"absolute_error":1.4251779899999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U1","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U2","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"U3","fesa_value":-1.4301280732961153e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038847517e-09,"threshold":7.1619985000000001e-08,"relative_error":0.001585888843654988,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR1","fesa_value":-1.6987437569388302e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061169757e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999136,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR2","fesa_value":1.6987437569388296e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.1911193061170392e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999506,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":36,"component":"UR3","fesa_value":0,"reference_value":8.6599124099999996e-40,"absolute_error":8.6599124099999996e-40,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U1","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U2","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"U3","fesa_value":-3.9829685019171891e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171893519e-09,"threshold":1.98719681e-07,"relative_error":0.002157532126168558,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR1","fesa_value":-1.3985063203725972e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627402802e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970032052,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR2","fesa_value":4.5712631023128397e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.267123128395288e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239131902,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":37,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U1","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U2","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"U3","fesa_value":-3.9829685019172026e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819172029044e-09,"threshold":1.98719681e-07,"relative_error":0.002157532126171968,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR1","fesa_value":4.5712631023128541e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231285392836e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239446969,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR2","fesa_value":-1.3985063203726052e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627394755e-08,"threshold":7.3366743500000007e-08,"relative_error":0.04690718597002657,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":38,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U1","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U2","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"U3","fesa_value":-1.2104431691990636e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009363718e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616093588,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR1","fesa_value":4.7611888400534347e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053434829e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741414748,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR2","fesa_value":-4.7611888400534372e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.099263005343737e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741415288,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":39,"component":"UR3","fesa_value":0,"reference_value":3.3318547500000001e-39,"absolute_error":3.3318547500000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U1","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U2","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"U3","fesa_value":-1.4301280732961184e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038815753e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436527704,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR1","fesa_value":1.6987437569388346e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306116531e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735996551,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR2","fesa_value":-1.6987437569388336e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061166369e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735997167,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":40,"component":"UR3","fesa_value":0,"reference_value":-2.5950646299999998e-41,"absolute_error":2.5950646299999998e-41,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U1","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U2","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"U3","fesa_value":-3.9829685019172035e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819172037514e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261721814,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR1","fesa_value":1.3985063203726063e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627393696e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970025848,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR2","fesa_value":-4.5712631023128524e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.267123128522343e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239409903,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":41,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U1","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U2","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"U3","fesa_value":-1.2104431691990604e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009395906e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616119991,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR1","fesa_value":4.7611888400534169e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053417041e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741410972,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR2","fesa_value":4.7611888400534355e-06,"reference_value":4.7101962099999998e-06,"absolute_error":5.0992630053435676e-08,"threshold":2.355098105e-07,"relative_error":0.010826009741414929,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":42,"component":"UR3","fesa_value":0,"reference_value":-1.1940870599999999e-39,"absolute_error":1.1940870599999999e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U1","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U2","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"U3","fesa_value":-3.9829685019171933e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.574881917193587e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261696236,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR1","fesa_value":4.5712631023128456e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231284545804e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239261635,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR2","fesa_value":1.3985063203726016e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627398355e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970029019,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":43,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U1","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U2","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"U3","fesa_value":-3.9829685019171874e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171876578e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261681317,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR1","fesa_value":1.3985063203725957e-06,"reference_value":1.46733487e-06,"absolute_error":6.8828549627404284e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970033058,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR2","fesa_value":4.5712631023128363e-06,"reference_value":4.5703363900000002e-06,"absolute_error":9.2671231283614067e-10,"threshold":2.2851681950000001e-07,"relative_error":0.0002027667623905777,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":44,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U1","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U2","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"U3","fesa_value":-1.4301280732961157e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038843282e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436546923,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR1","fesa_value":1.6987437569388298e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306117018e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999383,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR2","fesa_value":1.6987437569388298e-06,"reference_value":1.7206549499999999e-06,"absolute_error":2.191119306117018e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999383,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":45,"component":"UR3","fesa_value":0,"reference_value":2.3219193300000001e-39,"absolute_error":2.3219193300000001e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U1","fesa_value":0,"reference_value":-1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U2","fesa_value":0,"reference_value":1.9600924700000001e-23,"absolute_error":1.9600924700000001e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"U3","fesa_value":-1.2104431691990617e-05,"reference_value":-1.21908679e-05,"absolute_error":8.6436208009382353e-08,"threshold":6.0954339500000002e-07,"relative_error":0.0070902423616108871,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR1","fesa_value":-4.7611888400534313e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.099263005343144e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141403,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR2","fesa_value":-4.761188840053427e-06,"reference_value":-4.7101962099999998e-06,"absolute_error":5.0992630053427205e-08,"threshold":2.355098105e-07,"relative_error":0.01082600974141313,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":46,"component":"UR3","fesa_value":0,"reference_value":0,"absolute_error":0,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U1","fesa_value":0,"reference_value":-5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U2","fesa_value":0,"reference_value":1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"U3","fesa_value":-3.982968501917195e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171952811e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261700499,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR1","fesa_value":-4.571263102312849e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.2671231284884617e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239335768,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR2","fesa_value":-1.3985063203726012e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627398779e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970029311,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":47,"component":"UR3","fesa_value":0,"reference_value":5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U1","fesa_value":0,"reference_value":-1.88724227e-23,"absolute_error":1.88724227e-23,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U2","fesa_value":0,"reference_value":5.9657980699999999e-24,"absolute_error":5.9657980699999999e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"U3","fesa_value":-3.9829685019171976e-06,"reference_value":-3.9743936199999997e-06,"absolute_error":8.5748819171978222e-09,"threshold":1.98719681e-07,"relative_error":0.0021575321261706895,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR1","fesa_value":-1.3985063203726061e-06,"reference_value":-1.46733487e-06,"absolute_error":6.8828549627393908e-08,"threshold":7.3366743500000007e-08,"relative_error":0.046907185970025987,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR2","fesa_value":-4.5712631023128473e-06,"reference_value":-4.5703363900000002e-06,"absolute_error":9.267123128471521e-10,"threshold":2.2851681950000001e-07,"relative_error":0.00020276676239298702,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":48,"component":"UR3","fesa_value":0,"reference_value":-5.2711370099999999e-25,"absolute_error":5.2711370099999999e-25,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U1","fesa_value":0,"reference_value":-7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U2","fesa_value":0,"reference_value":7.0849341300000002e-24,"absolute_error":7.0849341300000002e-24,"threshold":2.3740820300000003e-07,"relative_error":0,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"U3","fesa_value":-1.4301280732961163e-06,"reference_value":-1.4323997e-06,"absolute_error":2.2716267038836929e-09,"threshold":7.1619985000000001e-08,"relative_error":0.0015858888436542488,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":true,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR1","fesa_value":-1.6987437569388304e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061169545e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735999013,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR2","fesa_value":-1.6987437569388317e-06,"reference_value":-1.7206549499999999e-06,"absolute_error":2.1911193061168275e-08,"threshold":8.6032747499999997e-08,"relative_error":0.012734216735998276,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":true,"tolerance_branch":"relative","blocking":false,"within_tolerance":true},{"case_id":"shell-s4","instance_name":"Part-1-1","source_node_label":49,"component":"UR3","fesa_value":0,"reference_value":1.78609082e-39,"absolute_error":1.78609082e-39,"threshold":7.6072574299999997e-08,"relative_error":0,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"relative_error_applicable":false,"tolerance_branch":"near-zero","blocking":false,"within_tolerance":true}],"metrics":[{"family_identity":"displacement-translation","components":["U1","U2","U3"],"blocking":true,"reference_scale":2.3740820300000001e-05,"near_zero_band":2.3740820300000003e-07,"near_zero_count":122,"row_count":147,"maximum_absolute_error":1.9037853491514389e-07,"relative_rms":0.0010332756650397166,"worst_row":8,"rms_passed":true,"passed":true,"diagnostic_code":""},{"family_identity":"displacement-rotation","components":["UR1","UR2","UR3"],"blocking":false,"reference_scale":7.6072574299999999e-06,"near_zero_band":7.6072574299999997e-08,"near_zero_count":107,"row_count":147,"maximum_absolute_error":6.8828549627404284e-08,"relative_rms":0.0029771372973060382,"worst_row":261,"rms_passed":true,"passed":true,"diagnostic_code":""}],"vector_metrics":[{"instance_name":"Part-1-1","source_node_label":1,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":2,"displacement_norm_error":1.9037853491514389e-07,"rotation_norm_error":1.0474364347492016e-20},{"instance_name":"Part-1-1","source_node_label":3,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":4,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":5,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":6,"displacement_norm_error":1.17769804e-32,"rotation_norm_error":1.95418427e-32},{"instance_name":"Part-1-1","source_node_label":7,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":8,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":9,"displacement_norm_error":2.07395071e-35,"rotation_norm_error":2.2544430521865401e-33},{"instance_name":"Part-1-1","source_node_label":10,"displacement_norm_error":4.3731870036429076e-08,"rotation_norm_error":1.6762504118447317e-09},{"instance_name":"Part-1-1","source_node_label":11,"displacement_norm_error":5.9311029758091623e-08,"rotation_norm_error":5.6657163630694338e-08},{"instance_name":"Part-1-1","source_node_label":12,"displacement_norm_error":5.9311029758081458e-08,"rotation_norm_error":5.6657163630668927e-08},{"instance_name":"Part-1-1","source_node_label":13,"displacement_norm_error":4.3731870036441782e-08,"rotation_norm_error":1.6762504118616724e-09},{"instance_name":"Part-1-1","source_node_label":14,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":15,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":16,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":17,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":18,"displacement_norm_error":4.3731870036423994e-08,"rotation_norm_error":1.6762504118430377e-09},{"instance_name":"Part-1-1","source_node_label":19,"displacement_norm_error":5.9311029758105175e-08,"rotation_norm_error":5.6657163630685021e-08},{"instance_name":"Part-1-1","source_node_label":20,"displacement_norm_error":5.9311029758111951e-08,"rotation_norm_error":5.6657163630693491e-08},{"instance_name":"Part-1-1","source_node_label":21,"displacement_norm_error":4.3731870036420606e-08,"rotation_norm_error":1.6762504118354144e-09},{"instance_name":"Part-1-1","source_node_label":22,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":23,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":24,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":25,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":26,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":27,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":28,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":29,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":30,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":31,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":32,"displacement_norm_error":3.3961335900000001e-34,"rotation_norm_error":6.5628739427587462e-33},{"instance_name":"Part-1-1","source_node_label":33,"displacement_norm_error":6.2822664600000005e-33,"rotation_norm_error":1.4508648645837217e-32},{"instance_name":"Part-1-1","source_node_label":34,"displacement_norm_error":8.574881917191893e-09,"rotation_norm_error":6.8834788003756478e-08},{"instance_name":"Part-1-1","source_node_label":35,"displacement_norm_error":8.6436208009390823e-08,"rotation_norm_error":7.211446900263782e-08},{"instance_name":"Part-1-1","source_node_label":36,"displacement_norm_error":2.2716267038847517e-09,"rotation_norm_error":3.0987106394881974e-08},{"instance_name":"Part-1-1","source_node_label":37,"displacement_norm_error":8.5748819171893519e-09,"rotation_norm_error":6.8834788003760276e-08},{"instance_name":"Part-1-1","source_node_label":38,"displacement_norm_error":8.5748819172029044e-09,"rotation_norm_error":6.8834788003752428e-08},{"instance_name":"Part-1-1","source_node_label":39,"displacement_norm_error":8.6436208009363718e-08,"rotation_norm_error":7.211446900264322e-08},{"instance_name":"Part-1-1","source_node_label":40,"displacement_norm_error":2.2716267038815753e-09,"rotation_norm_error":3.0987106394875986e-08},{"instance_name":"Part-1-1","source_node_label":41,"displacement_norm_error":8.5748819172037514e-09,"rotation_norm_error":6.8834788003751329e-08},{"instance_name":"Part-1-1","source_node_label":42,"displacement_norm_error":8.6436208009395906e-08,"rotation_norm_error":7.2114469002629442e-08},{"instance_name":"Part-1-1","source_node_label":43,"displacement_norm_error":8.574881917193587e-09,"rotation_norm_error":6.8834788003755909e-08},{"instance_name":"Part-1-1","source_node_label":44,"displacement_norm_error":8.5748819171876578e-09,"rotation_norm_error":6.8834788003761706e-08},{"instance_name":"Part-1-1","source_node_label":45,"displacement_norm_error":2.2716267038843282e-09,"rotation_norm_error":3.0987106394882127e-08},{"instance_name":"Part-1-1","source_node_label":46,"displacement_norm_error":8.6436208009382353e-08,"rotation_norm_error":7.2114469002633624e-08},{"instance_name":"Part-1-1","source_node_label":47,"displacement_norm_error":8.5748819171952811e-09,"rotation_norm_error":6.8834788003756372e-08},{"instance_name":"Part-1-1","source_node_label":48,"displacement_norm_error":8.5748819171978222e-09,"rotation_norm_error":6.8834788003751488e-08},{"instance_name":"Part-1-1","source_node_label":49,"displacement_norm_error":2.2716267038836929e-09,"rotation_norm_error":3.0987106394880327e-08}],"warnings":[],"worst_row":8,"passed":true} diff --git a/.harness/build-ninja/reference/mitc4-shell-s4-metadata/shell.inp b/.harness/build-ninja/reference/mitc4-shell-s4-metadata/shell.inp new file mode 100644 index 0000000..c107a7c --- /dev/null +++ b/.harness/build-ninja/reference/mitc4-shell-s4-metadata/shell.inp @@ -0,0 +1,164 @@ +*Heading +** Job name: shell Model name: Model-1 +** Generated by: Abaqus/CAE Learning Edition 2024 +*Preprint, echo=NO, model=NO, history=NO, contact=NO +** +** PARTS +** +*Part, name=Part-1 +*Node + 1, 0., -5., 0. + 2, 0., 0., 0. + 3, -5., 0., 0. + 4, -5., -5., 0. + 5, 0., 5., 0. + 6, 5., 0., 0. + 7, 5., 5., 0. + 8, -5., 5., 0. + 9, 5., -5., 0. + 10, 0., -3.33333325, 0. + 11, 0., -1.66666663, 0. + 12, -1.66666663, 0., 0. + 13, -3.33333325, 0., 0. + 14, -5., -1.66666663, 0. + 15, -5., -3.33333325, 0. + 16, -3.33333325, -5., 0. + 17, -1.66666663, -5., 0. + 18, 0., 3.33333325, 0. + 19, 0., 1.66666663, 0. + 20, 1.66666663, 0., 0. + 21, 3.33333325, 0., 0. + 22, 5., 1.66666663, 0. + 23, 5., 3.33333325, 0. + 24, 3.33333325, 5., 0. + 25, 1.66666663, 5., 0. + 26, -1.66666663, 5., 0. + 27, -3.33333325, 5., 0. + 28, -5., 3.33333325, 0. + 29, -5., 1.66666663, 0. + 30, 1.66666663, -5., 0. + 31, 3.33333325, -5., 0. + 32, 5., -3.33333325, 0. + 33, 5., -1.66666663, 0. + 34, -1.66666663, -3.33333325, 0. + 35, -1.66666663, -1.66666663, 0. + 36, -3.33333325, -3.33333325, 0. + 37, -3.33333325, -1.66666663, 0. + 38, 1.66666663, 3.33333325, 0. + 39, 1.66666663, 1.66666663, 0. + 40, 3.33333325, 3.33333325, 0. + 41, 3.33333325, 1.66666663, 0. + 42, -1.66666663, 1.66666663, 0. + 43, -1.66666663, 3.33333325, 0. + 44, -3.33333325, 1.66666663, 0. + 45, -3.33333325, 3.33333325, 0. + 46, 1.66666663, -1.66666663, 0. + 47, 1.66666663, -3.33333325, 0. + 48, 3.33333325, -1.66666663, 0. + 49, 3.33333325, -3.33333325, 0. +*Element, type=S4 + 1, 1, 10, 34, 17 + 2, 10, 11, 35, 34 + 3, 11, 2, 12, 35 + 4, 17, 34, 36, 16 + 5, 34, 35, 37, 36 + 6, 35, 12, 13, 37 + 7, 16, 36, 15, 4 + 8, 36, 37, 14, 15 + 9, 37, 13, 3, 14 +10, 5, 18, 38, 25 +11, 18, 19, 39, 38 +12, 19, 2, 20, 39 +13, 25, 38, 40, 24 +14, 38, 39, 41, 40 +15, 39, 20, 21, 41 +16, 24, 40, 23, 7 +17, 40, 41, 22, 23 +18, 41, 21, 6, 22 +19, 2, 19, 42, 12 +20, 19, 18, 43, 42 +21, 18, 5, 26, 43 +22, 12, 42, 44, 13 +23, 42, 43, 45, 44 +24, 43, 26, 27, 45 +25, 13, 44, 29, 3 +26, 44, 45, 28, 29 +27, 45, 27, 8, 28 +28, 2, 11, 46, 20 +29, 11, 10, 47, 46 +30, 10, 1, 30, 47 +31, 20, 46, 48, 21 +32, 46, 47, 49, 48 +33, 47, 30, 31, 49 +34, 21, 48, 33, 6 +35, 48, 49, 32, 33 +36, 49, 31, 9, 32 +*Nset, nset=Set-1, generate + 1, 49, 1 +*Elset, elset=Set-1, generate + 1, 36, 1 +** Section: Section-1 +*Shell Section, elset=Set-1, material=Material-1 +0.5, 5 +*End Part +** +** +** ASSEMBLY +** +*Assembly, name=Assembly +** +*Instance, name=Part-1-1, part=Part-1 +*End Instance +** +*Nset, nset=Set-1, instance=Part-1-1 + 2, +*Nset, nset=Set-2, instance=Part-1-1 + 1, 3, 4, 5, 6, 7, 8, 9, 14, 15, 16, 17, 22, 23, 24, 25 + 26, 27, 28, 29, 30, 31, 32, 33 +*Elset, elset=Set-2, instance=Part-1-1 + 1, 4, 7, 8, 9, 10, 13, 16, 17, 18, 21, 24, 25, 26, 27, 30 + 33, 34, 35, 36 +*End Assembly +** +** MATERIALS +** +*Material, name=Material-1 +*Elastic + 2.1e+11, 0.3 +** +** BOUNDARY CONDITIONS +** +** Name: BC-1 Type: Displacement/Rotation +*Boundary +Set-2, 1, 1 +Set-2, 2, 2 +Set-2, 3, 3 +Set-2, 4, 4 +Set-2, 5, 5 +Set-2, 6, 6 +** ---------------------------------------------------------------- +** +** STEP: Step-1 +** +*Step, name=Step-1, nlgeom=NO +*Static +1., 1., 1e-05, 1. +** +** LOADS +** +** Name: Load-1 Type: Concentrated force +*Cload +Set-1, 3, -100000. +** +** OUTPUT REQUESTS +** +*Restart, write, frequency=0 +** +** FIELD OUTPUT: F-Output-1 +** +*Output, field, variable=PRESELECT +** +** HISTORY OUTPUT: H-Output-1 +** +*Output, history, variable=PRESELECT +*End Step diff --git a/.harness/build-ninja/tests/cmake_test_discovery_e3b0c44298.json b/.harness/build-ninja/tests/cmake_test_discovery_e3b0c44298.json new file mode 100644 index 0000000..e06443e --- /dev/null +++ b/.harness/build-ninja/tests/cmake_test_discovery_e3b0c44298.json @@ -0,0 +1,83 @@ +{ + "tests": 13, + "name": "AllTests", + "testsuites": [ + { + "name": "LinearStaticCli", + "tests": 8, + "testsuite": [ + { + "name": "FactorizesBeforeLoadAndSolvesWithoutRefactorization", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 306 + }, + { + "name": "FactorizesBeforeRejectingAnInvalidLoad", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 328 + }, + { + "name": "RealPipelineHandlesAnalyticalAndNonzeroPrescription", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 352 + }, + { + "name": "DefaultOutputUsesInputSiblingDerivedName", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 356 + }, + { + "name": "ReturnsEveryExactExitCodeAndOrderedDiagnostic", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 371 + }, + { + "name": "OutputSubstringRejectionLeavesDerivedFilesUnchanged", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 413 + }, + { + "name": "BusyOutputLeaseLeavesDerivedFilesUnchanged", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 443 + }, + { + "name": "OutputRequestsDoNotFilterMandatoryResults", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 468 + } + ] + }, + { + "name": "Mitc4ShellCli", + "tests": 5, + "testsuite": [ + { + "name": "UsesExistingLifecycleAndExactlyOneFactorization", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 389 + }, + { + "name": "AppliesKfcForNonzeroPrescribedDisplacement", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 412 + }, + { + "name": "RejectsSingularAndAcceptsZeroByZeroFreeSystem", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 450 + }, + { + "name": "DoesNotWriteAnInvalidRecoveryCandidate", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\analysis\\linear_static_analysis_test.cpp", + "line": 486 + }, + { + "name": "WritesShellHdf5ThroughTheExistingApplicationRoute", + "file": "C:\\git\\FESADev\\.worktrees\\nonlinear-static-newton-raphson\\tests\\integration\\app\\fesa_application_test.cpp", + "line": 505 + } + ] + } + ] +} diff --git a/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_discovery.cmake b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_discovery.cmake new file mode 100644 index 0000000..170e0b1 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_discovery.cmake @@ -0,0 +1,19 @@ +include("C:/Program Files/CMake/share/cmake-4.4/Modules/GoogleTestAddTests.cmake") +gtest_discover_tests_impl( + TEST_EXECUTABLE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe]==] + TEST_EXECUTOR [==[]==] + TEST_WORKING_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + TEST_EXTRA_ARGS [==[]==] + TEST_PROPERTIES [==[LABELS]==] [==[linear-static-3d-euler-beam;integration]==] + TEST_PREFIX [==[]==] + TEST_SUFFIX [==[]==] + TEST_FILTER [==[]==] + NO_PRETTY_TYPES [==[FALSE]==] + NO_PRETTY_VALUES [==[FALSE]==] + TEST_LIST [==[fesa_integration_tests_TESTS]==] + CTEST_FILE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake]==] + TEST_DISCOVERY_TIMEOUT [==[5]==] + TEST_DISCOVERY_EXTRA_ARGS [==[]==] + TEST_XML_OUTPUT_DIR [==[]==] + TEST_JSON_OUTPUT_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] +) diff --git a/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_include.cmake b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_include.cmake new file mode 100644 index 0000000..e27f973 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_include.cmake @@ -0,0 +1,5 @@ +if(EXISTS "C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake") + include("C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake") +else() + add_test(fesa_integration_tests_NOT_BUILT fesa_integration_tests_NOT_BUILT) +endif() diff --git a/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake new file mode 100644 index 0000000..8bb3926 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_integration_tests_d537bc73_tests.cmake @@ -0,0 +1,118 @@ +add_test([=[LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:306]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:328]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:352]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:356]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:371]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:413]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:443]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:468]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:389]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:412]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:450]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\analysis\linear_static_analysis_test.cpp:486]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +add_test([=[Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_integration_tests.exe [==[--gtest_filter=Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\integration\app\fesa_application_test.cpp:505]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;integration]] +) +set(fesa_integration_tests_TESTS [==[LinearStaticCli.FactorizesBeforeLoadAndSolvesWithoutRefactorization]==] [==[LinearStaticCli.FactorizesBeforeRejectingAnInvalidLoad]==] [==[LinearStaticCli.RealPipelineHandlesAnalyticalAndNonzeroPrescription]==] [==[LinearStaticCli.DefaultOutputUsesInputSiblingDerivedName]==] [==[LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic]==] [==[LinearStaticCli.OutputSubstringRejectionLeavesDerivedFilesUnchanged]==] [==[LinearStaticCli.BusyOutputLeaseLeavesDerivedFilesUnchanged]==] [==[LinearStaticCli.OutputRequestsDoNotFilterMandatoryResults]==] [==[Mitc4ShellCli.UsesExistingLifecycleAndExactlyOneFactorization]==] [==[Mitc4ShellCli.AppliesKfcForNonzeroPrescribedDisplacement]==] [==[Mitc4ShellCli.RejectsSingularAndAcceptsZeroByZeroFreeSystem]==] [==[Mitc4ShellCli.DoesNotWriteAnInvalidRecoveryCandidate]==] [==[Mitc4ShellCli.WritesShellHdf5ThroughTheExistingApplicationRoute]==]) diff --git a/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_discovery.cmake b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_discovery.cmake new file mode 100644 index 0000000..c575ca7 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_discovery.cmake @@ -0,0 +1,19 @@ +include("C:/Program Files/CMake/share/cmake-4.4/Modules/GoogleTestAddTests.cmake") +gtest_discover_tests_impl( + TEST_EXECUTABLE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe]==] + TEST_EXECUTOR [==[]==] + TEST_WORKING_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + TEST_EXTRA_ARGS [==[]==] + TEST_PROPERTIES [==[LABELS]==] [==[linear-static-3d-euler-beam;reference]==] + TEST_PREFIX [==[]==] + TEST_SUFFIX [==[]==] + TEST_FILTER [==[]==] + NO_PRETTY_TYPES [==[FALSE]==] + NO_PRETTY_VALUES [==[FALSE]==] + TEST_LIST [==[fesa_reference_tests_TESTS]==] + CTEST_FILE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake]==] + TEST_DISCOVERY_TIMEOUT [==[5]==] + TEST_DISCOVERY_EXTRA_ARGS [==[]==] + TEST_XML_OUTPUT_DIR [==[]==] + TEST_JSON_OUTPUT_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] +) diff --git a/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_include.cmake b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_include.cmake new file mode 100644 index 0000000..db876a1 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_include.cmake @@ -0,0 +1,5 @@ +if(EXISTS "C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake") + include("C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake") +else() + add_test(fesa_reference_tests_NOT_BUILT fesa_reference_tests_NOT_BUILT) +endif() diff --git a/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake new file mode 100644 index 0000000..bdaf279 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_reference_tests_ac7cf2f0_tests.cmake @@ -0,0 +1,190 @@ +add_test([=[ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp:28]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp:56]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp:73]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp:95]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_tolerance_policy_test.cpp:108]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp:426]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp:538]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp:593]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp:663]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\reference_comparison_test.cpp:687]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\b33_reference_comparison_test.cpp:148]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:478]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:511]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:594]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:641]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:667]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:689]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:709]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_comparison_test.cpp:757]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_cases_test.cpp:177]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +add_test([=[Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_reference_tests.exe [==[--gtest_filter=Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\reference\mitc4_reference_cases_test.cpp:187]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;reference]] +) +set(fesa_reference_tests_TESTS [==[ReferenceTolerancePolicy.AppliesRelativeAndNearZeroThresholdsAtTheirInclusiveBoundaries]==] [==[ReferenceTolerancePolicy.RejectsFamiliesWhoseScaleRelativeRmsExceedsOnePercent]==] [==[ReferenceTolerancePolicy.FailsClosedForZeroScaleNonzeroErrorWithoutNonfiniteMetrics]==] [==[ReferenceTolerancePolicy.KeepsWarningOnlyFamilyExceedanceOutOfBlockingVerdict]==] [==[ReferenceTolerancePolicy.RejectsNonfiniteInputsBeforeToleranceEvaluation]==] [==[ReferenceComparisonContract.PrecheckRejectsMissingSchemaDuplicateAndNonfiniteRows]==] [==[ReferenceComparisonContract.AppliesSharedFamilyScaleAndNearZeroBranchesWithoutAnAbsoluteGate]==] [==[ReferenceComparisonContract.ReportsEveryRowAndAggregateMetricDeterministically]==] [==[ReferenceComparisonContract.PreservesSectionEndpointIdentityWithoutStationNormalization]==] [==[ReferenceComparisonContract.MapsEachSectionCsvComponentToItsDirectEndpointResultant]==] [==[B33ReferenceComparison.GeneratesAuthoritativeHdf5AndComparisonEvidence]==] [==[Mitc4ReferenceComparison.MapsTrimmedHeaderAndSixComponentsBySourceIdentity]==] [==[Mitc4ReferenceComparison.RejectsInvalidInventoryBeforeNumericComparison]==] [==[Mitc4ReferenceComparison.SharesTranslationScaleAcrossUComponentsAndUsesNearZeroBranches]==] [==[Mitc4ReferenceComparison.RotationExceedanceWarnsWithoutBlockingTranslationVerdict]==] [==[Mitc4ReferenceComparison.RotationRmsExceedanceWarnsWhenEveryRotationRowPasses]==] [==[Mitc4ReferenceComparison.RotationRowAndRmsExceedancesProduceSeparateWarnings]==] [==[Mitc4ReferenceComparison.ReportsMetricsVectorsWorstRowAndJsonDeterministically]==] [==[Mitc4ReferenceComparison.RequiresOnlyDeclaredInputCsvAndHdf5]==] [==[Mitc4S4Reference.PreservesS4AndWritesCommonMitc4Metadata]==] [==[Mitc4S4Reference.PassesBlockingUAndReportsEveryUrRow]==]) diff --git a/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_discovery.cmake b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_discovery.cmake new file mode 100644 index 0000000..a98f09c --- /dev/null +++ b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_discovery.cmake @@ -0,0 +1,19 @@ +include("C:/Program Files/CMake/share/cmake-4.4/Modules/GoogleTestAddTests.cmake") +gtest_discover_tests_impl( + TEST_EXECUTABLE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe]==] + TEST_EXECUTOR [==[]==] + TEST_WORKING_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + TEST_EXTRA_ARGS [==[]==] + TEST_PROPERTIES [==[LABELS]==] [==[linear-static-3d-euler-beam;unit]==] + TEST_PREFIX [==[]==] + TEST_SUFFIX [==[]==] + TEST_FILTER [==[]==] + NO_PRETTY_TYPES [==[FALSE]==] + NO_PRETTY_VALUES [==[FALSE]==] + TEST_LIST [==[fesa_unit_tests_TESTS]==] + CTEST_FILE [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake]==] + TEST_DISCOVERY_TIMEOUT [==[5]==] + TEST_DISCOVERY_EXTRA_ARGS [==[]==] + TEST_XML_OUTPUT_DIR [==[]==] + TEST_JSON_OUTPUT_DIR [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] +) diff --git a/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_include.cmake b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_include.cmake new file mode 100644 index 0000000..8048323 --- /dev/null +++ b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_include.cmake @@ -0,0 +1,5 @@ +if(EXISTS "C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake") + include("C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake") +else() + add_test(fesa_unit_tests_NOT_BUILT fesa_unit_tests_NOT_BUILT) +endif() diff --git a/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake new file mode 100644 index 0000000..70b87ab --- /dev/null +++ b/.harness/build-ninja/tests/fesa_unit_tests_576e7e9d_tests.cmake @@ -0,0 +1,1702 @@ +add_test([=[BuildInfo.VersionIsStableAndNonEmpty]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BuildInfo.VersionIsStableAndNonEmpty]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BuildInfo.VersionIsStableAndNonEmpty]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\build_info_test.cpp:10]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BuildInfo.PublicHeaderHasNoBackendDependency]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BuildInfo.PublicHeaderHasNoBackendDependency]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BuildInfo.PublicHeaderHasNoBackendDependency]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\build_info_test.cpp:20]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_test.cpp:41]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisModel.ClassifiesActiveEntitiesInStableOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisModel.ClassifiesActiveEntitiesInStableOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisModel.ClassifiesActiveEntitiesInStableOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_model_test.cpp:95]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_model_test.cpp:117]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_model_test.cpp:150]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisModel.RejectsMissingOrMultipleStep]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisModel.RejectsMissingOrMultipleStep]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisModel.RejectsMissingOrMultipleStep]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_model_test.cpp:174]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.AllocatesOnlyV0FullVectors]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.AllocatesOnlyV0FullVectors]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.AllocatesOnlyV0FullVectors]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_state_test.cpp:84]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.CopiesOrMovesWithoutAliasing]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.CopiesOrMovesWithoutAliasing]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.CopiesOrMovesWithoutAliasing]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\analysis\analysis_state_test.cpp:121]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.PreservesStepFrameAndStableRowOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.PreservesStepFrameAndStableRowOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.PreservesStepFrameAndStableRowOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_records_test.cpp:126]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_records_test.cpp:194]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.CommitsFiniteShellGlobalEvidence]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.CommitsFiniteShellGlobalEvidence]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.CommitsFiniteShellGlobalEvidence]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_records_test.cpp:230]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_records_test.cpp:247]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ParallelFor.ZeroOneManyExecuteExactlyOnce]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ParallelFor.ZeroOneManyExecuteExactlyOnce]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ParallelFor.ZeroOneManyExecuteExactlyOnce]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\parallel_for_test.cpp:26]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ParallelFor.SerialAndTbbProduceStableIndexedOutput]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ParallelFor.SerialAndTbbProduceStableIndexedOutput]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ParallelFor.SerialAndTbbProduceStableIndexedOutput]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\parallel_for_test.cpp:52]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ParallelFor.PropagatesBodyExceptionByContract]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ParallelFor.PropagatesBodyExceptionByContract]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ParallelFor.PropagatesBodyExceptionByContract]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\parallel_for_test.cpp:93]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:190]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:205]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.AssemblesNodeSetAndSixComponentLoads]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.AssemblesNodeSetAndSixComponentLoads]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.AssemblesNodeSetAndSixComponentLoads]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:232]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.AccumulatesSignedLoadsInSourceOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.AccumulatesSignedLoadsInSourceOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.AccumulatesSignedLoadsInSourceOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:256]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:278]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.AcceptsExactlyZeroAggregateShellMoment]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.AcceptsExactlyZeroAggregateShellMoment]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.AcceptsExactlyZeroAggregateShellMoment]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:303]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:322]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:345]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.FormsNonzeroPrescribedEffectiveRhs]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.FormsNonzeroPrescribedEffectiveRhs]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.FormsNonzeroPrescribedEffectiveRhs]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:360]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.RejectsNonfiniteOrDimensionMismatch]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.RejectsNonfiniteOrDimensionMismatch]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.RejectsNonfiniteOrDimensionMismatch]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:385]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[LoadAssembly.ZeroLoadsRemainZero]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=LoadAssembly.ZeroLoadsRemainZero]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[LoadAssembly.ZeroLoadsRemainZero]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\load_assembler_test.cpp:453]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp:230]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp:288]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp:343]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp:379]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\assembly\sparse_assembler_test.cpp:405]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.ValidatesKnownCsrAndMultiply]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.ValidatesKnownCsrAndMultiply]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.ValidatesKnownCsrAndMultiply]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\sparse_matrix_test.cpp:25]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.ReducesDuplicatesInFixedTupleOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.ReducesDuplicatesInFixedTupleOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.ReducesDuplicatesInFixedTupleOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\sparse_matrix_test.cpp:60]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.RejectsInvalidIndexPatternAndShape]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.RejectsInvalidIndexPatternAndShape]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.RejectsInvalidIndexPatternAndShape]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\sparse_matrix_test.cpp:81]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SparseAssembly.PreservesExpectedStructuralZeros]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SparseAssembly.PreservesExpectedStructuralZeros]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SparseAssembly.PreservesExpectedStructuralZeros]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\sparse_matrix_test.cpp:117]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.RejectsFirstTokenContainingOutputSubstring]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.RejectsFirstTokenContainingOutputSubstring]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.RejectsFirstTokenContainingOutputSubstring]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:50]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.RejectsEveryOutputSubstringVariant]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.RejectsEveryOutputSubstringVariant]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.RejectsEveryOutputSubstringVariant]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:61]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:73]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.PreservesBasenameCaseAndPrecedingDots]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.PreservesBasenameCaseAndPrecedingDots]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.PreservesBasenameCaseAndPrecedingDots]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:91]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.RejectsInputWithoutInpFinalExtension]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.RejectsInputWithoutInpFinalExtension]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.RejectsInputWithoutInpFinalExtension]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:102]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.LeaseCollisionPreservesPublicOutputPaths]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.LeaseCollisionPreservesPublicOutputPaths]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.LeaseCollisionPreservesPublicOutputPaths]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:111]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\app\output_paths_test.cpp:130]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp:105]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp:130]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp:157]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp:188]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\boundary_condition_test.cpp:200]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EssentialConstraints.ExtractsHandComputedBlocksInStableOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EssentialConstraints.ExtractsHandComputedBlocksInStableOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EssentialConstraints.ExtractsHandComputedBlocksInStableOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp:120]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EssentialConstraints.HandlesNoAllAndMixedConstraints]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EssentialConstraints.HandlesNoAllAndMixedConstraints]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EssentialConstraints.HandlesNoAllAndMixedConstraints]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp:166]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp:199]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EssentialConstraints.ReconstructsNonzeroPrescribedValues]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EssentialConstraints.ReconstructsNonzeroPrescribedValues]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EssentialConstraints.ReconstructsNonzeroPrescribedValues]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp:259]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EssentialConstraints.RejectsDimensionOrOrderMismatch]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EssentialConstraints.RejectsDimensionOrOrderMismatch]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EssentialConstraints.RejectsDimensionOrOrderMismatch]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\constraints\essential_constraints_test.cpp:292]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Ascii.LowercasesOnlyAsciiUppercaseBytes]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Ascii.LowercasesOnlyAsciiUppercaseBytes]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Ascii.LowercasesOnlyAsciiUppercaseBytes]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\ascii_test.cpp:10]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\ascii_test.cpp:20]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\ascii_test.cpp:30]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[CoreDiagnostics.DiagnosticsSortDeterministically]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=CoreDiagnostics.DiagnosticsSortDeterministically]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[CoreDiagnostics.DiagnosticsSortDeterministically]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\diagnostic_test.cpp:26]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[CoreDiagnostics.SourceIdentityPreservesRawIdentity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=CoreDiagnostics.SourceIdentityPreservesRawIdentity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[CoreDiagnostics.SourceIdentityPreservesRawIdentity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\source_identity_test.cpp:9]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[CoreDiagnostics.ResultEnforcesValueErrorExclusivity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=CoreDiagnostics.ResultEnforcesValueErrorExclusivity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[CoreDiagnostics.ResultEnforcesValueErrorExclusivity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\core\status_test.cpp:24]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\element_factory_test.cpp:170]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\element_factory_test.cpp:225]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\element_factory_test.cpp:287]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementFactory.RejectsUnknownAndIncompatibleDefinitions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementFactory.RejectsUnknownAndIncompatibleDefinitions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementFactory.RejectsUnknownAndIncompatibleDefinitions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\element_factory_test.cpp:312]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:501]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.TwoPointGaussMatchesClosedStiffness]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.TwoPointGaussMatchesClosedStiffness]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.TwoPointGaussMatchesClosedStiffness]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:567]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:590]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.RotatedTransformPreservesWorkAndEnergy]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.RotatedTransformPreservesWorkAndEnergy]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.RotatedTransformPreservesWorkAndEnergy]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:655]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:726]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:760]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:816]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.RejectsInvalidGeometryAndProperties]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.RejectsInvalidGeometryAndProperties]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.RejectsInvalidGeometryAndProperties]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:902]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:1015]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:1067]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[EulerBeam3D.OnePointNegativeControlHasRankFour]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=EulerBeam3D.OnePointNegativeControlHasRankFour]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[EulerBeam3D.OnePointNegativeControlHasRankFour]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\euler_beam_3d_test.cpp:1122]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:309]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:342]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:396]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:536]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:452]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:552]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:595]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:654]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:683]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:731]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellDrilling.UsesOnlyEightPositivePhysicalRotationDiagonalsAndFixedFactor]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellDrilling.UsesOnlyEightPositivePhysicalRotationDiagonalsAndFixedFactor]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellDrilling.UsesOnlyEightPositivePhysicalRotationDiagonalsAndFixedFactor]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:795]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:831]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:873]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\elements\mitc4_shell_test.cpp:912]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:178]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.RejectsEveryCorruptedOwnerMappingInvariant]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.RejectsEveryCorruptedOwnerMappingInvariant]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.RejectsEveryCorruptedOwnerMappingInvariant]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:230]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.NumbersSixDofsAndFreeEquationsStably]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.NumbersSixDofsAndFreeEquationsStably]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.NumbersSixDofsAndFreeEquationsStably]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:262]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.ExpandsAndValidatesPrescribedValues]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.ExpandsAndValidatesPrescribedValues]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.ExpandsAndValidatesPrescribedValues]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:284]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.BuildsTwelveDofScatterAndSortedUniquePattern]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.BuildsTwelveDofScatterAndSortedUniquePattern]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.BuildsTwelveDofScatterAndSortedUniquePattern]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:315]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.BuildsShellScatterInSourceNodeAndComponentOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.BuildsShellScatterInSourceNodeAndComponentOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.BuildsShellScatterInSourceNodeAndComponentOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:350]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:362]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DofManager.ReconstructsFullReducedRoundTrip]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DofManager.ReconstructsFullReducedRoundTrip]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DofManager.ReconstructsFullReducedRoundTrip]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\fem\dof_manager_test.cpp:383]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\dense_blas_internal_test.cpp:12]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\dense_blas_internal_test.cpp:28]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DenseMath.RowMajorMatrixMatchesKnownGemvGemm]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DenseMath.RowMajorMatrixMatchesKnownGemvGemm]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DenseMath.RowMajorMatrixMatchesKnownGemvGemm]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\matrix_test.cpp:12]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DenseMath.VectorOwnsAndChecksContiguousStorage]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DenseMath.VectorOwnsAndChecksContiguousStorage]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DenseMath.VectorOwnsAndChecksContiguousStorage]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector_test.cpp:12]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.StoresComponentsWithExactArithmetic]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.StoresComponentsWithExactArithmetic]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.StoresComponentsWithExactArithmetic]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:13]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:46]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.ComputesDotProduct]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.ComputesDotProduct]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.ComputesDotProduct]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:59]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.UsesRightHandedCrossProductOrientation]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.UsesRightHandedCrossProductOrientation]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.UsesRightHandedCrossProductOrientation]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:66]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.ComputesEuclideanNorm]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.ComputesEuclideanNorm]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.ComputesEuclideanNorm]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:81]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.NormalizesNonzeroVectors]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.NormalizesNonzeroVectors]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.NormalizesNonzeroVectors]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:88]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.ReportsFiniteComponents]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.ReportsFiniteComponents]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.ReportsFiniteComponents]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:97]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Vector3.RejectsZeroAndNonfiniteNormalization]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Vector3.RejectsZeroAndNonfiniteNormalization]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Vector3.RejectsZeroAndNonfiniteNormalization]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\math\vector3_test.cpp:106]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapping_components_test.cpp:118]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapping_components_test.cpp:162]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapping_components_test.cpp:190]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapping_components_test.cpp:211]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:248]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:330]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:472]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:533]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:575]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:638]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:681]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:721]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:761]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpDomainMapping.RejectsDloadWithoutDistributedLoadObject]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpDomainMapping.RejectsDloadWithoutDistributedLoadObject]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpDomainMapping.RejectsDloadWithoutDistributedLoadObject]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\domain_mapper_test.cpp:993]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpSyntax.RejectsMalformedOrOrphanData]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpSyntax.RejectsMalformedOrOrphanData]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpSyntax.RejectsMalformedOrOrphanData]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_reader_test.cpp:56]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpSyntax.ReadsLegacyCantileverWithoutMutation]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpSyntax.ReadsLegacyCantileverWithoutMutation]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpSyntax.ReadsLegacyCantileverWithoutMutation]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_reader_test.cpp:92]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpSyntax.CanonicalizesKeywordAndParameterNamesOnly]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpSyntax.CanonicalizesKeywordAndParameterNamesOnly]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpSyntax.CanonicalizesKeywordAndParameterNamesOnly]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_syntax_test.cpp:38]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[InpSyntax.PreservesDataAndSourceLocations]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=InpSyntax.PreservesDataAndSourceLocations]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[InpSyntax.PreservesDataAndSourceLocations]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\abaqus\input_syntax_test.cpp:63]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:824]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:994]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1022]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1074]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1102]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1119]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1202]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1262]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1300]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_results_writer_test.cpp:1318]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_writer_components_test.cpp:126]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_writer_components_test.cpp:147]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\io\hdf5\hdf5_writer_components_test.cpp:163]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Load.ConcentratedNodalLoadEmitsStableFullDofContributions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Load.ConcentratedNodalLoadEmitsStableFullDofContributions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Load.ConcentratedNodalLoadEmitsStableFullDofContributions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\loads\load_test.cpp:50]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\loads\load_test.cpp:85]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\domain_test.cpp:69]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainModel.ImmutableOwnershipPreservesStableOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainModel.ImmutableOwnershipPreservesStableOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainModel.ImmutableOwnershipPreservesStableOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\domain_test.cpp:152]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainModel.MultipleIdentityInstancesDoNotMerge]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainModel.MultipleIdentityInstancesDoNotMerge]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainModel.MultipleIdentityInstancesDoNotMerge]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\domain_test.cpp:211]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\domain_test.cpp:291]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainModel.SourceAndInternalIdentityRemainDistinct]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainModel.SourceAndInternalIdentityRemainDistinct]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainModel.SourceAndInternalIdentityRemainDistinct]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\model_types_test.cpp:33]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\model_types_test.cpp:131]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp:93]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp:139]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp:168]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp:195]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\shell_geometry_test.cpp:249]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\source_target_resolver_test.cpp:54]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\source_target_resolver_test.cpp:87]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\model\source_target_resolver_test.cpp:112]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Material.OwnsIsotropicElasticityThroughVirtualBase]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Material.OwnsIsotropicElasticityThroughVirtualBase]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Material.OwnsIsotropicElasticityThroughVirtualBase]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\materials\material_test.cpp:19]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[Material.RejectsInvalidCurrentElasticFields]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=Material.RejectsInvalidCurrentElasticFields]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[Material.RejectsInvalidCurrentElasticFields]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\materials\material_test.cpp:42]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\properties\element_property_test.cpp:20]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementProperty.OwnsShellSectionThroughVirtualBase]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementProperty.OwnsShellSectionThroughVirtualBase]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementProperty.OwnsShellSectionThroughVirtualBase]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\properties\element_property_test.cpp:48]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementProperty.PreservesEmptyOptionalSectionPointInventory]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementProperty.PreservesEmptyOptionalSectionPointInventory]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementProperty.PreservesEmptyOptionalSectionPointInventory]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\properties\element_property_test.cpp:67]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ElementProperty.RejectsInvalidCurrentSectionFields]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ElementProperty.RejectsInvalidCurrentSectionFields]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ElementProperty.RejectsInvalidCurrentSectionFields]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\properties\element_property_test.cpp:75]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:289]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:358]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:397]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:455]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:491]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_components_test.cpp:556]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:486]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:537]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.FailingFakeBundleRollsBackTheWholeState]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.FailingFakeBundleRollsBackTheWholeState]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.FailingFakeBundleRollsBackTheWholeState]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:568]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.ComputesResidualReactionForNonzeroPrescription]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.ComputesResidualReactionForNonzeroPrescription]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.ComputesResidualReactionForNonzeroPrescription]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:637]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.EnforcesNormalizedFreeResidual]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.EnforcesNormalizedFreeResidual]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.EnforcesNormalizedFreeResidual]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:666]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:724]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:745]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.OrdersStressPointsAndDefaultCentroid]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.OrdersStressPointsAndDefaultCentroid]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.OrdersStressPointsAndDefaultCentroid]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:775]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:813]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.RecoversShellRowsInStableElementAndGpOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.RecoversShellRowsInStableElementAndGpOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.RecoversShellRowsInStableElementAndGpOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:874]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.RecoversDirectBottomMiddleTopShellStress]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.RecoversDirectBottomMiddleTopShellStress]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.RecoversDirectBottomMiddleTopShellStress]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:923]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:951]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:971]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.UsesGlobalOriginForShellMomentBalance]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.UsesGlobalOriginForShellMomentBalance]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.UsesGlobalOriginForShellMomentBalance]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:1015]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:1059]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\results\result_recovery_test.cpp:1109]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.RejectsInvalidCsrStateAndDimensions]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.RejectsInvalidCsrStateAndDimensions]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.RejectsInvalidCsrStateAndDimensions]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\linear_solver_test.cpp:48]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp:90]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp:106]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.RefactorizesWithoutLeakingState]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.RefactorizesWithoutLeakingState]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.RefactorizesWithoutLeakingState]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp:126]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp:149]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +add_test([=[MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly]=] C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests/fesa_unit_tests.exe [==[--gtest_filter=MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly]==] --gtest_also_run_disabled_tests) +set_tests_properties([=[MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly]=] + PROPERTIES + + DEF_SOURCE_LINE [==[C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson\tests\unit\solvers\linear\mkl_pardiso_solver_test.cpp:197]==] + WORKING_DIRECTORY [==[C:/git/FESADev/.worktrees/nonlinear-static-newton-raphson/.harness/build-ninja/tests]==] + SKIP_REGULAR_EXPRESSION [==[\[ SKIPPED \]]==] + [[LABELS]] [[linear-static-3d-euler-beam;unit]] +) +set(fesa_unit_tests_TESTS [==[BuildInfo.VersionIsStableAndNonEmpty]==] [==[BuildInfo.PublicHeaderHasNoBackendDependency]==] [==[Analysis.PropagatesStatusAndDestroysThroughMinimalAnalysis]==] [==[AnalysisModel.ClassifiesActiveEntitiesInStableOrder]==] [==[AnalysisModel.ReferencesWithoutCopyingOrMutatingDomain]==] [==[AnalysisModel.KeepsNonOwningMixedDefinitionAndPropertyIndices]==] [==[AnalysisModel.RejectsMissingOrMultipleStep]==] [==[AnalysisState.AllocatesOnlyV0FullVectors]==] [==[AnalysisState.CopiesOrMovesWithoutAliasing]==] [==[AnalysisState.PreservesStepFrameAndStableRowOrder]==] [==[AnalysisState.OwnsExactShellRowsInStableElementAndLocationOrder]==] [==[AnalysisState.CommitsFiniteShellGlobalEvidence]==] [==[AnalysisState.InvalidShellCandidatesLeavePriorStateUnchanged]==] [==[ParallelFor.ZeroOneManyExecuteExactlyOnce]==] [==[ParallelFor.SerialAndTbbProduceStableIndexedOutput]==] [==[ParallelFor.PropagatesBodyExceptionByContract]==] [==[LoadAssembly.AccumulatesGenericContributionsInSuppliedSourceOrder]==] [==[LoadAssembly.RejectsGenericContributionErrorsBeforeCandidateCommit]==] [==[LoadAssembly.AssemblesNodeSetAndSixComponentLoads]==] [==[LoadAssembly.AccumulatesSignedLoadsInSourceOrder]==] [==[LoadAssembly.AggregatesAllSixGlobalShellLoadComponentsInSourceOrder]==] [==[LoadAssembly.AcceptsExactlyZeroAggregateShellMoment]==] [==[LoadAssembly.EnforcesAggregateShellMomentDirectorProjectionThreshold]==] [==[LoadAssembly.RejectsDrillingMomentBeforeEffectiveRhsCanBeFormed]==] [==[LoadAssembly.FormsNonzeroPrescribedEffectiveRhs]==] [==[LoadAssembly.RejectsNonfiniteOrDimensionMismatch]==] [==[LoadAssembly.ZeroLoadsRemainZero]==] [==[SparseAssembly.AssemblesFakeRuntimeContributionsIntoExactDeterministicCsr]==] [==[SparseAssembly.SerialTbbAndRepeatedRunsAreByteIdentical]==] [==[SparseAssembly.AssemblesFourNodeTwentyFourDofKernelAndPreservesDiagonalSlots]==] [==[SparseAssembly.ShellSerialTbbReverseAndRepeatedRunsAreByteIdentical]==] [==[SparseAssembly.S4AndS4rSemanticFixturesAssembleIdenticalStiffness]==] [==[SparseAssembly.ValidatesKnownCsrAndMultiply]==] [==[SparseAssembly.ReducesDuplicatesInFixedTupleOrder]==] [==[SparseAssembly.RejectsInvalidIndexPatternAndShape]==] [==[SparseAssembly.PreservesExpectedStructuralZeros]==] [==[OutputPaths.RejectsFirstTokenContainingOutputSubstring]==] [==[OutputPaths.RejectsEveryOutputSubstringVariant]==] [==[OutputPaths.DerivesNormalizedSiblingNamesFromRelativeInput]==] [==[OutputPaths.PreservesBasenameCaseAndPrecedingDots]==] [==[OutputPaths.RejectsInputWithoutInpFinalExtension]==] [==[OutputPaths.LeaseCollisionPreservesPublicOutputPaths]==] [==[OutputPaths.AnalysisRequestCarriesInputResultAndLogPaths]==] [==[BoundaryCondition.ResolvesStableNonzeroDefinitionsThroughBase]==] [==[BoundaryCondition.DomainOwnsExpandedPolymorphicDefinitionsStably]==] [==[BoundaryCondition.RejectsDuplicateConflictAndNonfiniteBeforeCandidateCommit]==] [==[BoundaryCondition.AcceptsIdenticalOverlapAcrossSourceDefinitions]==] [==[BoundaryCondition.ConcreteRejectsNonfinitePrescribedValue]==] [==[EssentialConstraints.ExtractsHandComputedBlocksInStableOrder]==] [==[EssentialConstraints.HandlesNoAllAndMixedConstraints]==] [==[EssentialConstraints.PreservesShellSizedNoMixedAndAllConstraintRoundTrips]==] [==[EssentialConstraints.ReconstructsNonzeroPrescribedValues]==] [==[EssentialConstraints.RejectsDimensionOrOrderMismatch]==] [==[Ascii.LowercasesOnlyAsciiUppercaseBytes]==] [==[Ascii.ComparesNamesWithoutLocaleOrUnicodeFolding]==] [==[Ascii.ParsesOnlyCompletePositiveBaseTenSourceLabels]==] [==[CoreDiagnostics.DiagnosticsSortDeterministically]==] [==[CoreDiagnostics.SourceIdentityPreservesRawIdentity]==] [==[CoreDiagnostics.ResultEnforcesValueErrorExclusivity]==] [==[ElementFactory.CreatesBeamWithStableLayoutStiffnessAndRecovery]==] [==[ElementFactory.CreatesMitc4WithStableLayoutStiffnessAndRecovery]==] [==[ElementFactory.OwnerBuildsNonOwningViewInStableElementOrder]==] [==[ElementFactory.RejectsUnknownAndIncompatibleDefinitions]==] [==[EulerBeam3D.HermiteAndBMatrixMatchReviewedSigns]==] [==[EulerBeam3D.TwoPointGaussMatchesClosedStiffness]==] [==[EulerBeam3D.HasSixRigidModesRankSixAndPositiveDeformationEnergy]==] [==[EulerBeam3D.RotatedTransformPreservesWorkAndEnergy]==] [==[EulerBeam3D.PreservesExactRotatedResultsAcrossVector3Migration]==] [==[EulerBeam3D.ConstantLineLoadMatchesAllSignedComponents]==] [==[EulerBeam3D.AnalyticalAxialTorsionAndTwoPlaneBendingRecover]==] [==[EulerBeam3D.RejectsInvalidGeometryAndProperties]==] [==[EulerBeam3D.RecoversSectionPointAndDefaultCentroidS11]==] [==[EulerBeam3D.ReproducesConstantStrainTwistAndCurvaturePatches]==] [==[EulerBeam3D.OnePointNegativeControlHasRankFour]==] [==[Mitc4ShellKinematics.ShapeFunctionsSatisfyNodalAndDerivativeIdentities]==] [==[Mitc4ShellKinematics.BuildsRightHandedFramesAndSeparatePhysicalDrillingMaps]==] [==[Mitc4ShellKinematics.FormsDirectColumnsAndAllCovariantTyingSamples]==] [==[Mitc4ShellKinematics.UsesOneFixedTwoByTwoByTwoQuadratureOrder]==] [==[Mitc4ShellConstitutive.BuildsExactPositiveDefiniteSectionMatricesAndRescalesUnits]==] [==[Mitc4ShellKernel.FormsFiniteScaledSymmetricPhysicalAndStabilizedStiffness]==] [==[Mitc4ShellKernel.PreservesExactStiffnessRecoveryAndPatchAcrossVector3Migration]==] [==[Mitc4ShellKernel.PreservesPhysicalEnergyUnderTwentyToTwentyFourCongruence]==] [==[Mitc4ShellKernel.RetainsSixRigidModesAndHasExpectedPhysicalAndStabilizedRank]==] [==[Mitc4ShellPatch.ReproducesIndependentMembraneBendingShearAndTwistFields]==] [==[Mitc4ShellDrilling.UsesOnlyEightPositivePhysicalRotationDiagonalsAndFixedFactor]==] [==[Mitc4ShellDrilling.FailsNonfiniteReferenceAndStabilizesEachPureDrillCoordinate]==] [==[Mitc4ShellDrilling.ExcludesPureDrillFromPhysicalRecoveryAndEnergy]==] [==[Mitc4ShellPhysicalRecovery.RecoversHandFieldAtFixedLocationsAndSectionPositions]==] [==[DofManager.BuildsGenericRuntimeLayoutsInDeclaredSourceOrder]==] [==[DofManager.RejectsEveryCorruptedOwnerMappingInvariant]==] [==[DofManager.NumbersSixDofsAndFreeEquationsStably]==] [==[DofManager.ExpandsAndValidatesPrescribedValues]==] [==[DofManager.BuildsTwelveDofScatterAndSortedUniquePattern]==] [==[DofManager.BuildsShellScatterInSourceNodeAndComponentOrder]==] [==[DofManager.IncludesShellConnectivityInSortedUniqueSparsePattern]==] [==[DofManager.ReconstructsFullReducedRoundTrip]==] [==[DenseBlasInternal.CDup003ConvertsZeroNormalAndOverflowLengths]==] [==[DenseBlasInternal.CDup003CopiesZeroAndNonzeroContiguousValues]==] [==[DenseMath.RowMajorMatrixMatchesKnownGemvGemm]==] [==[DenseMath.VectorOwnsAndChecksContiguousStorage]==] [==[Vector3.StoresComponentsWithExactArithmetic]==] [==[Vector3.ConvertsArrayAndPreservesScalarLeftEvaluationOrder]==] [==[Vector3.ComputesDotProduct]==] [==[Vector3.UsesRightHandedCrossProductOrientation]==] [==[Vector3.ComputesEuclideanNorm]==] [==[Vector3.NormalizesNonzeroVectors]==] [==[Vector3.ReportsFiniteComponents]==] [==[Vector3.RejectsZeroAndNonfiniteNormalization]==] [==[DomainMappingComponents.CModule001BuildsStableCandidatesBeforeAtomicDomainCommit]==] [==[DomainMappingComponents.CModule001PreservesExactFirstFailureThroughFacade]==] [==[DomainMappingComponents.CModule001RejectsInvalidMaterialAtOwningComponent]==] [==[DomainMappingComponents.CModule001RejectsUnresolvedLoadAtOwningComponent]==] [==[InpDomainMapping.MapsEverySupportedKeywordAndLegacyDeck]==] [==[InpDomainMapping.ExpandsSetsAndMultipleIdentityInstancesDeterministically]==] [==[InpDomainMapping.KeepsNodeAndElementSetNamesInSeparateNamespaces]==] [==[InpDomainMapping.NoOpAllowlistWarnsWithoutSemanticEffect]==] [==[InpDomainMapping.MapsS4AndS4rThroughOneMitc4Identity]==] [==[InpDomainMapping.RejectsInvalidShellAssignmentsAndProperties]==] [==[InpDomainMapping.RejectsInvalidShellConnectivityOptionsAndMixedModels]==] [==[InpDomainMapping.PreservesProcedureLoadAndOutputRequestBoundariesForShells]==] [==[InpDomainMapping.RejectsUnsupportedAndInvalidPortfolio]==] [==[InpDomainMapping.RejectsDloadWithoutDistributedLoadObject]==] [==[InpSyntax.RejectsMalformedOrOrphanData]==] [==[InpSyntax.ReadsLegacyCantileverWithoutMutation]==] [==[InpSyntax.CanonicalizesKeywordAndParameterNamesOnly]==] [==[InpSyntax.PreservesDataAndSourceLocations]==] [==[Hdf5ResultsWriter.WritesExactSchemaShapesAttributesAndIdentity]==] [==[Hdf5ResultsWriter.WritesMandatoryOutputsDespiteOutputRequests]==] [==[Hdf5ResultsWriter.WritesWarningsAndDefaultCentroid]==] [==[Hdf5ResultsWriter.FailureLeavesNoPartialAndPreservesExistingFinal]==] [==[Hdf5ResultsWriter.SuccessfullyReplacesExistingFinal]==] [==[Hdf5ResultsWriter.WritesExactShellMetadataAndModelIdentity]==] [==[Hdf5ResultsWriter.WritesExactMandatoryShellResultInventory]==] [==[Hdf5ResultsWriter.WritesShellInventoryDespiteRequestsAndOmitsForbiddenPaths]==] [==[Hdf5ResultsWriter.InvalidShellInventoryPreservesExistingFinal]==] [==[Hdf5ResultsWriter.Vector3ShellSerializationRejectsNonfiniteWithoutReplacingFinal]==] [==[Hdf5WriterComponents.BuildsStableBackendNeutralBeamDatasetPlans]==] [==[Hdf5WriterComponents.RejectsNonfiniteDatasetPlanInventory]==] [==[Hdf5WriterComponents.SelfCheckFailurePreservesExistingFinalThroughAtomicSeam]==] [==[Load.ConcentratedNodalLoadEmitsStableFullDofContributions]==] [==[Load.ConcentratedNodalLoadRejectsInvalidInputWithoutContributions]==] [==[ElementDefinition.DomainOwnsMixedDefinitionsInStableBaseOrder]==] [==[DomainModel.ImmutableOwnershipPreservesStableOrder]==] [==[DomainModel.MultipleIdentityInstancesDoNotMerge]==] [==[DomainModel.ShellOwnershipPreservesResolvedAssignmentsAndOptionalFrames]==] [==[DomainModel.SourceAndInternalIdentityRemainDistinct]==] [==[DomainModel.Mitc4ShellRecordsPreserveSourceAndInternalIdentity]==] [==[Mitc4Geometry.BuildsDeterministicFramesForPlanarRotatedAndWarpedElements]==] [==[Mitc4Geometry.PreservesExactWarpedResultsAcrossVector3Migration]==] [==[Mitc4Geometry.AreaWeightsSharedDirectorsInStableSourceIdentityOrder]==] [==[Mitc4Geometry.RejectsInvalidSurfaceJacobianAndIncidentOrientationCases]==] [==[Mitc4Geometry.ExposesTheCompleteRequiredValidationPointInventory]==] [==[SourceTargetResolver.SeparatesNamespacesAndInstancesAndExpandsInDeclarationOrder]==] [==[SourceTargetResolver.RejectsMissingAmbiguousAndNonpositiveTargets]==] [==[SourceTargetResolver.ReportsDuplicateMembershipsInDeterministicDeclarationOrder]==] [==[Material.OwnsIsotropicElasticityThroughVirtualBase]==] [==[Material.RejectsInvalidCurrentElasticFields]==] [==[ElementProperty.OwnsGeneralBeamSectionThroughVirtualBase]==] [==[ElementProperty.OwnsShellSectionThroughVirtualBase]==] [==[ElementProperty.PreservesEmptyOptionalSectionPointInventory]==] [==[ElementProperty.RejectsInvalidCurrentSectionFields]==] [==[ResultRecoveryComponents.GlobalEquilibriumUsesFullResidualAndGlobalOriginMoment]==] [==[ResultRecoveryComponents.BeamResultRecoveryKeepsEndpointGaussAndStressIdentities]==] [==[ResultRecoveryComponents.BeamResultRecoveryRejectsMalformedB33IdentityBeforeAppending]==] [==[ResultRecoveryComponents.ShellResultRecoveryKeepsGpStressOrderAndPhysicalEnergy]==] [==[ResultRecoveryComponents.CommitRecoveryCandidateRollsBackLaterInvalidShellBundle]==] [==[ResultRecoveryComponents.CommitRecoveryCandidateRejectsNonfiniteVectorAndPreservesWholeState]==] [==[ResultRecovery.AggregatesFakeBeamBundlesInStableRuntimeOrder]==] [==[ResultRecovery.AggregatesFakeShellBundleAndPhysicalEnergy]==] [==[ResultRecovery.FailingFakeBundleRollsBackTheWholeState]==] [==[ResultRecovery.ComputesResidualReactionForNonzeroPrescription]==] [==[ResultRecovery.EnforcesNormalizedFreeResidual]==] [==[ResultRecovery.KeepsEndActionSectionAndGaussResultsDistinct]==] [==[ResultRecovery.MatchesAxialTorsionAndTwoPlaneEndSigns]==] [==[ResultRecovery.OrdersStressPointsAndDefaultCentroid]==] [==[ResultRecovery.RequiresInteriorEndpointConsistencyWithoutAveraging]==] [==[ResultRecovery.RecoversShellRowsInStableElementAndGpOrder]==] [==[ResultRecovery.RecoversDirectBottomMiddleTopShellStress]==] [==[ResultRecovery.SumsOnlyPhysicalShellEnergyInSourceOrder]==] [==[ResultRecovery.KeepsFullResidualAndComputesGlobalShellEquilibrium]==] [==[ResultRecovery.UsesGlobalOriginForShellMomentBalance]==] [==[ResultRecovery.UsesScaleAwareShellMetricsAndRejectsExcess]==] [==[ResultRecovery.InvalidLaterShellLeavesEntirePriorStateUnchanged]==] [==[MklPardisoSolver.RejectsInvalidCsrStateAndDimensions]==] [==[MklPardisoSolver.SolvesKnownSpdWithNormalizedResidual]==] [==[MklPardisoSolver.ReusesOneFactorizationForRepeatedRhs]==] [==[MklPardisoSolver.RefactorizesWithoutLeakingState]==] [==[MklPardisoSolver.ClassifiesSingularIndefiniteAndNonfiniteFailures]==] [==[MklPardisoSolver.ConditioningSweepPassesResolvedCasesAndFailsUnresolvedCasesExplicitly]==]) diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index 94979ac..f5b52a4 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -3,16 +3,16 @@ ## 1. Metadata and Feature Scope - feature_id: `nonlinear-static-newton-raphson` -- workflow_state: `needs-formulation` +- workflow_state: `needs-implementation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-23` (Stage 2 사용자 명시 승인; Stage 3 Formulation Agent dispatch 준비) +- last_updated: `2026-08-24` (REWORK-004 corrected; no-push Harness rerun authorized) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: 승인된 `requirements.md`와 사용자 승인된 `research.md`를 입력으로 Stage 3의 구현 가능한 `formulation.md` 계약을 Formulation Agent에게서 확보하고 독립 evidence audit을 수행한다. -- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility를 보존한다. Stage 3는 O-ROT/O-MAP/O-DRILL/O-MOM/O-BC를 구현 가능한 수학 계약으로 해소하되 HDF5/I/O schema, reference artifact, C++/tests/CMake, phase/Harness 또는 Stage 4 판단으로 확장하지 않는다. Abaqus/Midas 내부 동등성을 주장하지 않는다. +- current_goal: Stage 6 no-push Harness/Implementation rerun is authorized for Executor-selected Step 0 and subsequent approved phase progression under the corrected `codex exec --disable unified_exec` runner envelope. +- constraints: 승인된 Stage 1-5 hashes, physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel과 Stage 6 materialization evidence를 보존한다. The authorized rerun envelope is Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, child launch PATH filtering of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, `workspace-write`, implementation-agent `gpt-5.6-terra`/`xhigh`, hooks retained, no-push, no `danger-full-access`, and runner-retained `--disable unified_exec`. Do not edit feature contracts/reference artifacts/tolerance policies, run Abaqus/Nastran/reference solvers, or advance Physics/Release until `implementation-report.md`, `build-test.md`, `reference-comparison.md` and passing implementation evidence exist. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -21,10 +21,10 @@ | --- | --- | --- | --- | --- | --- | --- | --- | | 1. Requirements | `requirement-agent` | `passed` | `docs/nonlinear-static-newton-raphson/requirements.md` | `<=400` lines, 24 canonical shall requirements, exact 24-row Matrix, approved semantic loss 0, Stage-1 user question 0 | Approved compact content 395 lines; approval metadata 2 lines, current 397; 24↔24 exact ID sets, duplicate/missing/orphan 0, OQ/questions/trivia/placeholders 0; core semantics and NSNR-083 public precedence retained; forbidden changes 0; user explicitly approved on 2026-08-23. | 없음 | 40 | | 2. Research | `research-agent` | `passed` | `docs/nonlinear-static-newton-raphson/research.md` | 필요한 이론·benchmark·source reliability·applicability limit가 충분함 | Owner/Coordinator pass와 2026-08-23 사용자 명시 승인; 10 required sections, S1–S17, 12 benchmark candidates, 11 research-relevant requirement IDs, 14 unique open issues; nonlinear stored reference gap explicit; SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; forbidden changes 0. | 없음 | 1 | -| 3. Formulation | `formulation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/formulation.md` | strong/weak form, kinematics, tangent/residual, integration, state/recovery가 구현 가능한 계약이며 O-ROT/O-MAP/O-DRILL/O-MOM/O-BC가 승인 scope 안에서 해소됨 | Stage 3 bounded dispatch 준비; approved requirements SHA-256 `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`, approved research SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`. | Formulation Agent 반환 evidence 대기 | 1 | -| 4. Numerical/reference review | `numerical-review-agent` | `pending` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | 두 문서가 함께 `pass-for-io-definition`이며 수치 안정성과 exact reference contract가 준비됨 | 없음 | Stage 3 사용자 승인 필요 | 0 | -| 5. I/O definition | `io-definition-agent` | `pending` | `docs/nonlinear-static-newton-raphson/io.md` | Abaqus subset, semantic mapping, HDF5 schema, diagnostics, CSV projection이 승인됨 | 없음 | Stage 4 사용자 승인 필요 | 0 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md` | 상세 인터뷰와 계획 승인 후 TDD, MSVC/x64/Debug CMake/CTest, blocking reference comparison이 통과함 | 없음 | Stage 5 사용자 승인과 implementation-planning interview 필요 | 0 | +| 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | strong/weak form, kinematics, tangent/residual, integration, state/recovery가 구현 가능한 계약이며 O-ROT/O-MAP/O-DRILL/O-MOM/O-BC가 승인 scope 안에서 해소됨 | Rework attempt 2 owner/Coordinator pass와 사용자 명시 승인: reaction force/generalized moment/spatial moment symbols와 dimensions가 rotation matrix `R_I`와 분리됨; immutable fixed-global source, `rho_M <= 1e-12` admissibility, exact projected physical-work covector, `DP`/`DJ_l`/map-Hessian residual-tangent identity가 §§4.4/5/11.2–11.3/13.1/13.4/17에서 일치함; 18 sections와 7 closures 보존; SHA-256 `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`. | 없음 | 2 | +| 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | 두 문서가 함께 `pass-for-io-definition`이며 수치 안정성과 exact reference contract가 준비됨 | Corrected owner return, Coordinator audit pass and user explicit approval: status `pass-for-io-definition`; approved formulation hash matched; shellNL/shell artifacts inspected read-only with row counts `49/49/288`, duplicate required wide keys 0 and nonfinite required values 0; stress CSVs are optional read-only inspection/order evidence only; `RM3` excluded; required external comparison uses displacement, reaction force and physical spatial `RM1/RM2`; exact prechecks and `docs/TOLERANCE.md` policy retained. Current hashes: numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`, reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`. | 없음 | 2 | +| 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | Abaqus subset, semantic mapping, HDF5 schema, diagnostics, CSV projection이 승인됨 | Bounded rework owner status `ready-for-coordinator-review`, SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`; Coordinator audit passed and user explicitly approved the same hash. REWORK-002 defects are corrected: every argv token containing literal `--output` fails pre-input/pre-log/pre-output with one `cli-usage` diagnostic; `nsnr-log-v1` uses UTF-8 no BOM/LF/TAB fixed fields with four-channel gates, typed thresholds, branch identity, early-failure `not-evaluated(reason)`, round-trip numerics and escaping; log open/write/flush/close is fail-closed with zero-byte non-Newton success logs; exact `VARIABLE=PRESELECT` output requests are ignored-with-warning; lexical path/stem derivation, single-writer/candidate collision rules, HDF5 schema v1, reference projection, stress/RM3 exclusions and `docs/TOLERANCE.md` policy are preserved. | 없음 | 2 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md` | 상세 인터뷰와 계획 승인 후 TDD, MSVC/x64/Debug CMake/CTest, blocking reference comparison이 통과함 | REWORK-004 Correction Agent returned `corrected-for-implementation-rerun`; `scripts/execute.py` now invokes `codex exec --disable unified_exec --json ...`, `tests/test_execute.py` asserts adjacent `("--disable", "unified_exec")` while preserving `gpt-5.6-terra`/`xhigh`, and `corrections.md` SHA-256 is `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`. Owner/root evidence: RED targeted missing-pair assertion exit 1, GREEN targeted 1 passed, focused `tests/test_execute.py` 10/10, full pytest 23 passed/1 pre-existing `xhigh` vs `extra high`, MSVC Debug build exit 0, discovery 214, full CTest 214/214. | Stage 6 implementation evidence docs still absent; await no-push Harness rerun | 10 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | @@ -33,33 +33,55 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `stage-3-formulation-attempt-1` -- target_sub_agent: `formulation-agent` +- current_dispatch: `stage-6-no-push-harness-implementation-rerun` +- target_sub_agent: `implementation-agent` via Harness Executor (`python scripts/execute.py nonlinear-static-newton-raphson`; root launch required) - required_inputs: - - `docs/nonlinear-static-newton-raphson/requirements.md` (`approved`; user approval date `2026-08-23`; SHA-256 `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`). - - `docs/nonlinear-static-newton-raphson/research.md` (`passed`; user explicitly approved Stage 2 on `2026-08-23`; SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`). - - `AGENTS.md`, `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, `docs/TOLERANCE.md`, `docs/SOLVER_AGENT_DESIGN.md`. - - `docs/linear-static-mitc4-shell/formulation.md`의 approved linear 계약과 §15 gap inventory. §15는 nonlinear 해답으로 복사하지 않는다. -- expected_outputs: `docs/nonlinear-static-newton-raphson/formulation.md` -- acceptance_gate: Formulation Agent가 `fesa-formulation-spec`을 사용하여 strong/weak form, fixed-initial-reference TL kinematics, finite committed/trial triad와 objective update, exact `24 global -> 20 physical + 4 drill` residual/tangent 및 map Hessian, objective numerical drilling potential/Hessian, fixed-global dead force/moment work, prescribed finite-rotation BC path, integration, state/commit/rollback, recovery와 verification identities를 구현 가능하게 정의한다. O-ROT/O-MAP/O-DRILL/O-MOM/O-BC는 unresolved placeholder 없이 승인 범위 안에서 해소되고, requirement traceability와 explicit assumptions/limits가 있다. -- stop_condition: `formulation.md`와 output paths/status/evidence summary/blockers만 Coordinator에 반환한다. Peer/Stage 4를 dispatch하거나 C++/tests/CMake/I/O schema/reference artifact/tolerance/phases/Harness를 생성·변경·실행하지 않는다. 승인된 scope/physics/tolerance/authoritative output/public compatibility를 변경할 필요가 있으면 문서에 임의 반영하지 말고 blocker로 반환한다. -- missing_evidence: Formulation Agent 소유 `formulation.md`, self-audit, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure map과 acceptance-gate evidence. + - User explicit execution request on `2026-08-24`: `Harness/Implementation를 실행해주세요.` + - Attempt 1 failure evidence: no-push Harness command `python scripts/execute.py nonlinear-static-newton-raphson`; `codex exec --json --sandbox workspace-write ...` timed out at `1800.7s`; `_invoke_codex` raised uncaught `subprocess.TimeoutExpired`; no Step 0 source/test edits, no `step0-output.json`, no `MAX_RETRIES` handling. + - Bounded Harness repair evidence: Implementation Agent changed only `scripts/execute.py` and `tests/test_execute.py`; TDD RED 3 expected failures, GREEN 3 passed; focused `tests/test_execute.py` 10/10 passed; full pytest 23 passed/1 pre-existing HEAD contract failure `xhigh` actual vs `extra high` expected. + - Repair behavior now required: Codex timeout returns structured exit `124` and reaches `MAX_RETRIES`; runner reads `.codex/agents/implementation-agent.toml` and passes `gpt-5.6-terra` plus `xhigh` settings to `codex exec`. + - Root independent review evidence: no new defect found; focused `tests/test_execute.py` 10/10 reproduced; full suite reproduced the same single pre-existing `xhigh` vs `extra high` mismatch. + - Attempt 2 failure evidence: repaired Executor wrote `phases/nonlinear-static-newton-raphson/step0-output.json` with `exitCode` 124 and stderr `Codex timed out after 1800 seconds.`; stdout shows the Implementation Agent completed a turn but every nested command execution remained `status=in_progress`. + - Runtime blocker evidence: nested commands hung for skill file reads, `Get-Date`, `cmd.exe /d /c echo test`, and `exit 0`; root classifies the cause as nested Codex Windows shell tool execution hang, not model delay, build, source, sandbox/auth, or the repaired Executor timeout/no-retry path. + - Active process evidence from root: Executor auto-started another internal retry at `2026-08-24T02:58:35+09:00` under `python execute.py` PID 13820 / `codex` PID 7704; root terminated those unauthorized retry PIDs and verified none remain. + - Root decision after blocked-no-auto-retry: authorize one bounded Correction Agent diagnostic/rework cycle because the repeated implementation failure is infrastructure/runtime, not physics/source/build. + - Correction Agent return: status `blocked`, output `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `C9F93AC99225725C88BB7F0BABC8F7D75D3E05082070090328203DB3776BEFE6`, no runner/test edits from correction, no safe documented CLI flag workaround proven. + - User/root runtime update evidence: standalone Codex CLI updated `0.147.0 -> 0.149.1` under `CODEX_HOME=C:\Users\baram\.codex`; `codex doctor --json` reported current/consistent installation. + - User/root bounded smoke evidence: baseline still fails through inaccessible WindowsApps `pwsh`, direct `codex sandbox` elevated/unelevated `cmd echo` exits 0, and nested smoke passes only when launch env filters `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` plus `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, aligns `CODEX_HOME`, retains `workspace-write` and hooks, uses implementation-agent `gpt-5.6-terra`/`xhigh`, and passes `--disable unified_exec`; output was exactly `CODEX_SHELL_SMOKE_OK\r\n`. + - REWORK-004 Correction Agent return: status `corrected-for-implementation-rerun`; changed only `scripts/execute.py`, `tests/test_execute.py`, `docs/nonlinear-static-newton-raphson/corrections.md`; no Harness phase, C++ source, CMake, reference solver, commit or push. + - Coordinator audit: current `scripts/execute.py` lines 300-315 pass exact adjacent args `--disable`, `unified_exec` immediately after `codex exec`; current test `test_invoke_codex_uses_implementation_agent_command_contract` asserts the pair while preserving `gpt-5.6-terra` and `model_reasoning_effort="xhigh"`. + - `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.agents/skills/harness/SKILL.md`, `.codex/hooks.json` + - `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `BF4FC7A5CFDEEC19D62A36E1DF7CC34C0B9F614FA0A0FD8D0A321ADC73E69580` + - `phases/index.json` SHA-256 `F8BE89D579C303410BD1D2CD17AF33FCAD72BF68D9E10C3F644A39D1AA7331FB` + - `phases/nonlinear-static-newton-raphson/index.json` SHA-256 `439B67E1DED442D828EB5C31DAB35D28F32DBA6F66537512CAFFB5616956C137` + - Executor-selected initial current Step: `phases/nonlinear-static-newton-raphson/step0.md`, Step 0 `cli-output-lease-and-derived-names`, status `pending` + - Approved Stage 1-5 hashes: requirements `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`; research `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; formulation `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`; numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`; reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`; io `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`. + - Preserved materialization evidence: exactly one pending phase entry, 13/13 pending steps, Step 0 remains pending, no implementation evidence docs yet. +- expected_outputs: + - Executor-managed no-push phase execution from Step 0, with branch/pending selection/retry/timestamps/commits/advancement owned only by `scripts/execute.py`. + - Each Implementation Agent session performs only its Executor-selected current Step `RED -> observed failure -> minimal GREEN -> VERIFY`, updates only that Step status payload, and stops. + - Final Stage 6 evidence remains `docs/nonlinear-static-newton-raphson/implementation-report.md`, `docs/nonlinear-static-newton-raphson/build-test.md`, and `docs/nonlinear-static-newton-raphson/reference-comparison.md` after the approved phase reaches its final verification Step. +- acceptance_gate: Root is explicitly authorized to run no-push `python scripts/execute.py nonlinear-static-newton-raphson` in the isolated worktree using Codex `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, a child PATH filtered of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, and no `danger-full-access`. Passing Stage 6 still requires successful Implementation phase execution plus Coordinator audit of `implementation-report.md`, `build-test.md`, `reference-comparison.md`, full MSVC x64 Debug build/CTest, blocking reference comparison and no forbidden reference/upstream/tolerance mutation. +- stop_condition: If nested shell execution hangs or cannot complete under the exact corrected runner and approved launch envelope, stop as `blocked` with the new evidence; do not broaden to `danger-full-access`, do not run Abaqus/Nastran/reference solvers, do not generate/modify reference CSVs, and do not advance Physics/Release. +- missing_evidence: No-push Harness rerun result and Stage 6 implementation evidence docs remain absent. ### Latest Sub-Agent Return -- target_sub_agent: `research-agent` -- output_paths: `docs/nonlinear-static-newton-raphson/research.md` -- status: `passed` (owner); `needs-rework` (user review gate) +- target_sub_agent: `correction-agent` +- output_paths: + - `docs/nonlinear-static-newton-raphson/corrections.md` +- status: `corrected-for-implementation-rerun` (owner); Coordinator decision `passed-for-implementation-rerun` - evidence_summary: - - 17 external sources cover original MITC4/TL theory, finite rotation, objective/consistent linearization, Full Newton, V&V/MMS and nonlinear shell benchmarks. - - B-01–B-06 invariant/software checks, B-07F/B-07M large-rotation cantilevers, public NAFEMS 3DNLG-1/9 candidates, locking characterization and shell-MMS gap are separated by applicability. - - `reference/shell/` and `reference/shellR/` are explicitly retained as `nlgeom=NO` linear evidence; exact stored nonlinear input/CSV remains an honest Numerical Review gap. - - Objective 24-DOF mapping/drilling, nodal-moment work, prescribed finite-rotation path, invariant tolerances and fixed-step benchmark traversability are routed downstream without inventing contracts. + - `corrections.md` SHA-256 is `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`. + - `scripts/execute.py` SHA-256 is `E36A78E5C0AE7E91361B1AB6B995D2E8CF51569C0E0804D57F54711AFEFFB806`; `tests/test_execute.py` SHA-256 is `1E368382ABA21F5FBAC344E15E1E600B6BDAF4C4528431E4D1A757AA09D54CDE`. + - Runner command contract now starts `codex exec --disable unified_exec --json ...` and still passes `--model gpt-5.6-terra`, `--config model_reasoning_effort="xhigh"`, `--sandbox workspace-write`, `--dangerously-bypass-hook-trust`, `--cd `. + - TDD evidence: targeted RED failed on missing adjacent pair with exit 1; targeted GREEN passed; focused `tests/test_execute.py` 10/10; full pytest remains 23 passed/1 pre-existing `xhigh` vs `extra high`; MSVC Debug build exit 0; CTest discovery 214; full CTest 214/214. + - Correction did not run Harness phase, edit C++/CMake/reference artifacts, run reference solvers, commit or push. - blockers: - - User Stage-2 review/approval only. -- self_audit_findings: Coordinator independently confirmed 10 required sections, exact S1–S17 inventory, 12 benchmark sections with artifact/gap/target/cannot-verify/limits/review questions, 11 research-relevant requirement IDs, 14 unique open issues, all local evidence paths present and nonlinear reference artifact hits 0. SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`. -- return_contract_check: output path, owner status, source/benchmark coverage, downstream gaps, blockers and ownership confirmation present. -- acceptance_evidence_check: all owner and Coordinator Research evidence gates pass; Stage 2 remains `needs-rework` solely for explicit user approval. + - 없음 for runner-option correction; Stage 6 implementation evidence is still pending. +- self_audit_findings: Coordinator verified the correction report hash, audited current runner args and regression assertion, checked phase index pending statuses, did not run phase/build/tests/reference solvers, and updated only this isolated worktree `coordination.md`. +- return_contract_check: output path, corrected status, evidence summary, blockers and changed-file assertion are present. +- acceptance_evidence_check: REWORK-004 is closed; Stage 6 is eligible for no-push Harness rerun, but no implementation pass evidence exists yet. ### Compact Migration Evidence @@ -145,15 +167,47 @@ | 2026-08-23 | Research Agent return and Coordinator audit | `needs-rework` | `research.md` owner pass; Coordinator verified 10 sections, S1–S17, 12 complete benchmark candidates, 11 requirement IDs, 14 unique open issues, local evidence existence, nonlinear stored reference hits 0 and forbidden changes 0 | `needs-user-decision` | Present Stage-2 artifact for explicit user approval | | 2026-08-23 | Research explicit user approval | `passed` | User explicitly approved `research.md`; Research Agent and Coordinator evidence already passed; approved artifact SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` | `needs-formulation` | Dispatch Formulation Agent for bounded Stage 3 evidence | | 2026-08-23 | Formulation dispatch attempt 1 | `in-progress` | Approved Stage-1/2 baselines and project contracts audited; bounded package requires O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure without downstream contract changes | `needs-formulation` | Await Formulation Agent return and independently audit Stage-3 evidence | +| 2026-08-23 | Formulation Agent return and Coordinator audit | `needs-rework` | `formulation.md` owner pass/`ready-for-numerical-review`; Coordinator verified 18 required sections, exact 7/7 formulation closure IDs, complete 24-coordinate residual/tangent term inventory, state/integration/recovery/verification/traceability sections, balanced math/fence structure, upstream hash preservation and forbidden changes 0; output SHA-256 `516EB692619C6AAB1AD09061A671697BB7C1B821B0B60BC5A2831CA5D09E131D` | `needs-user-decision` | Present Stage-3 artifact for explicit user approval; do not dispatch Stage 4 | +| 2026-08-23 | Formulation independent consistency review | `needs-rework` | §13.4 uses rotation matrix symbol `R_I` as reaction force, creating dimensional collision; §§4.4/5/11.2 mix tolerance-based source-moment admissibility with exact tangency/projection work statements. Both are bounded formulation-document defects and first normalized attempts. | `needs-formulation` | Same Formulation Agent targeted rework attempt 2; preserve scope/threshold/public meaning | +| 2026-08-23 | Formulation bounded rework attempt 2 return and Coordinator audit | `needs-rework` | Owner pass; reaction force/generalized moment/spatial moment 기호·단위가 rotation matrix `R_I`와 분리되고 force/moment balance가 corrected. Immutable fixed-global source, unchanged `rho_M <= 1e-12`, exact projected work covector, removed director component/no drill channel, `DP`/`DJ_l`/map-Hessian을 포함한 chart/global residual-tangent identity가 일치함. 18 sections/7 closures, upstream hashes와 forbidden-change boundary 보존; SHA-256 `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`. | `needs-user-decision` | Present corrected Stage-3 artifact for explicit user approval; do not dispatch Stage 4 | +| 2026-08-23 | Formulation explicit user approval | `passed` | Task payload states the user explicitly approved `docs/nonlinear-static-newton-raphson/formulation.md`; approved SHA-256 `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` retained. | `needs-numerical-review` | Dispatch `numerical-review-agent` only | +| 2026-08-23 | Numerical/reference dispatch attempt 1 | `blocked` | Coordinator prepared bounded Stage 4 package, but no collaboration `spawn_agent` tool is exposed in this agent environment; `tool_search` found no dispatch tool; `codex exec` fallback was interrupted, is not a visible child-agent dispatch, and produced no Stage 4 outputs. | `blocked` | Expose/route the valid `numerical-review-agent` collaboration dispatch, then rerun Stage 4 owner task | +| 2026-08-23 | Numerical/reference owner return | `needs-rework` | Root-dispatched `numerical-review-agent` returned both outputs with owner status `pass-for-io-definition`, shellNL/shell read-only inventory, row prechecks and blockers none. Coordinator/root audit found a blocking cross-report contradiction on stress CSV and `RM3` comparison disposition, so acceptance evidence is not coherent. | `needs-numerical-review` | Same `numerical-review-agent` bounded reconciliation; do not dispatch I/O | +| 2026-08-23 | Numerical/reference corrected return | `passed` | Corrected current reports have owner status `pass-for-io-definition`; stress CSVs are optional read-only inspection/order evidence only, `RM3` is excluded, and required external comparison is displacement, reaction force and physical spatial `RM1/RM2`. Coordinator verified required sections, exact paths, no concrete HDF5 dataset paths and no forbidden file-change scope. | `needs-user-decision` | Present Stage 4 artifacts for explicit user approval; do not dispatch I/O | +| 2026-08-23 | Numerical/reference explicit user approval | `passed` | User explicitly approved Stage 4 documents and requested next gate; approved hashes retained for requirements, research, formulation, numerical-review and reference-model. | `needs-io-definition` | Prepare bounded `io-definition-agent` dispatch package | +| 2026-08-23 | I/O Definition dispatch package | `in-progress` | Coordinator prepared Stage 5 package requiring `fesa-io-contract`, exact Stage 1-4 inputs, corrected reference disposition, authoritative `results.h5`, and only `docs/nonlinear-static-newton-raphson/io.md` output. | `needs-io-definition` | Root profile dispatch to `io-definition-agent`; await owner return | +| 2026-08-23 | I/O Definition owner return and Coordinator audit | `needs-rework` | Owner returned `io.md` status `ready-for-coordinator-review`, SHA-256 `75D702301D6285F151D913DCD0351F4AD302C4C24A004DD5841A576592D675FC`, blockers none. Coordinator confirmed blocking defects in `--output` substring rejection, Newton iteration log schema, `VARIABLE=PRESELECT` ignored output request acceptance and repository-wide non-Newton log lifecycle. | `needs-io-definition` | Same `io-definition-agent` bounded correction; do not start Implementation Planning | +| 2026-08-23 | I/O Definition bounded rework return and Coordinator audit | `passed` | Owner returned corrected `io.md` status `ready-for-coordinator-review`, SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`, blockers none. Coordinator verified REWORK-002 closure, DECISION-028/029/030 output lifecycle/path/log evidence, HDF5/reference/tolerance preservation and no stale narrow `--output` rule. | `needs-user-decision` | Present Stage 5 artifact for explicit user approval; do not start Implementation Planning | +| 2026-08-23 | I/O Definition explicit user approval | `passed` | User explicitly approved `docs/nonlinear-static-newton-raphson/io.md` SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28` and requested the next Implementation Planning gate. | `needs-implementation-plan` | Prepare bounded `implementation-planning-agent` draft package only | +| 2026-08-23 | Implementation Planning draft dispatch package | `in-progress` | Coordinator prepared Stage 6 planning package requiring `fesa-cpp-msvc-tdd` and project-local `harness`, approved Stage 1-5 hashes, exact reference/tolerance disposition and draft-only stop condition. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; await draft/interview return | +| 2026-08-23 | Implementation Planning draft owner return and Coordinator audit | `passed` | Owner returned draft status `draft-ready-for-user-review`, slug `nonlinear-static-newton-raphson`, Steps `0..12`, no files changed, no interview issue/blocker. Coordinator verified requirements/category mapping, TDD/Harness step shape, prepared-analysis orchestration boundary, exact reference/tolerance preservation and no forbidden execution or file creation. | `needs-user-decision` | Present Stage 6 draft for explicit user approval or bounded rework request; do not materialize files yet | +| 2026-08-24 | Implementation Planning draft explicit user approval | `passed` | User explicitly approved the 13-Step draft and requested `implementation-plan.md` plus pending Harness phase file creation. | `needs-implementation-plan` | Prepare bounded materialization package for `implementation-planning-agent` only | +| 2026-08-24 | Implementation Planning materialization dispatch package | `in-progress` | Coordinator authorized only `implementation-plan.md`, append pending phase entry, create phase index and `step0.md`..`step12.md` pending with no executor timestamps; source/tests/CMake/upstream/reference/tolerance/evidence docs and Harness/build/test execution remain forbidden. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; await materialization return | +| 2026-08-24 | Implementation Planning materialization owner return and Coordinator audit | `passed` | `implementation-plan.md`, `phases/index.json`, phase index and `step0.md`..`step12.md` are materialized after user approval. Coordinator/root audit passed phase uniqueness, 13/13 pending steps without executor metadata, 151 root assertions, reference hashes/row counts and no unauthorized evidence docs/execution/source/test/CMake/reference edits. | `ready-for-implementation` | Await separate explicit Harness/implementation execution request; do not run Executor automatically | +| 2026-08-24 | Harness/Implementation execution authorization and dispatch package | `in-progress` | User explicitly requested Harness/Implementation execution. Coordinator verified materialized phase still has Step 0 `cli-output-lease-and-derived-names` as the first pending Step, preserved Stage 1-5 hashes and materialization evidence, and prepared no-push `scripts/execute.py nonlinear-static-newton-raphson` dispatch. | `needs-implementation` | Run no-push Harness executor; await Implementation/Harness return before any physics/release transition | +| 2026-08-24 | Harness/Implementation execution attempt 1 | `needs-rework` | No-push Harness attempt failed before Step 0 evidence: `codex exec --json --sandbox workspace-write ...` timed out at `1800.7s`; `_invoke_codex` raised uncaught `subprocess.TimeoutExpired`; no source/test edits, `step0-output.json`, `MAX_RETRIES`, or Step evidence. Normalized classification `harness-uncaught-step-codex-timeout-no-retry` attempt 1. | `needs-implementation` | Bounded Harness repair before retry; do not route to Correction Agent for first clear harness failure | +| 2026-08-24 | Harness repair after attempt 1 | `passed` | Implementation Agent repaired Harness timeout/profile handling in `scripts/execute.py` with tests in `tests/test_execute.py`; RED 3 expected failures, GREEN 3 passed, focused 10/10 passed, full pytest 23 passed/1 pre-existing `xhigh` vs `extra high` mismatch. Root review found no new defect and reproduced the same evidence. No phase execution, phase/source/CMake/reference/evidence docs edit, or reference solver activity. | `needs-implementation` | Retry no-push Harness attempt 2 for Executor-selected Step 0 in workspace-write; if the same normalized timeout recurs, stop automatic rework and route to `needs-user-decision` or `blocked` | +| 2026-08-24 | Harness/Implementation execution attempt 2 | `blocked` | Repaired Executor produced `step0-output.json` with `exitCode` 124 and stderr `Codex timed out after 1800 seconds.`. The Implementation Agent turn completed, but every nested shell `command_execution` remained `status=in_progress` even for `Get-Date`, `cmd echo`, and `exit 0`; Step 0 stayed pending with no production/test changes. Root cause is `harness-nested-codex-windows-shell-tool-execution-hang` attempt 2. | `blocked` | Stop remaining automatic retries; no workaround/further Harness execution until explicit user/root decision or external runtime fix | +| 2026-08-24 | Root correction-cycle authorization | `in-progress` | Root authorized one bounded Correction Agent diagnostic/rework cycle for the repeated infrastructure/runtime failure; unauthorized retry PIDs have been terminated and none remain. Coordinator prepared a correction package limited to no-op/tool smoke reproduction, local Codex CLI/config option inspection, documented flag hypothesis testing, and optional TDD runner changes in `scripts/execute.py`/`tests/test_execute.py`. | `needs-correction` | Root profile dispatch to `correction-agent` is required because this Coordinator runtime exposes no callable `spawn_agent` tool | +| 2026-08-24 | Correction Agent return and Coordinator audit | `blocked` | Correction Agent returned `blocked` and created only `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `C9F93AC99225725C88BB7F0BABC8F7D75D3E05082070090328203DB3776BEFE6`. Baseline smoke reproduced no nested shell completion; `--disable code_mode_host` failed closed; `--enable unified_exec` hung; combined flags failed closed. Root verified no nonlinear Harness/Codex processes remain, all 13 steps pending, Python 23 passed/1 pre-existing failure, MSVC build exit 0, discovery 214 and CTest 214/214. | `blocked` | No further Harness retry until external Codex runtime update/repair plus bounded shell smoke success | +| 2026-08-24 | Codex `0.149.1` smoke pass and runner preflight | `needs-rework` | User/root authorized Codex CLI update, bounded smoke and Harness rerun. Smoke passed only with aligned `CODEX_HOME`, filtered WindowsApps PATH entries and `--disable unified_exec`; current `scripts/execute.py` does not pass that flag to nested `codex exec`, while local `codex exec --help` confirms `--disable ` support. | `needs-correction` | Dispatch bounded runner-option correction before any no-push Harness phase rerun | +| 2026-08-24 | REWORK-004 Correction return and Coordinator audit | `passed` | Correction returned `corrected-for-implementation-rerun`; runner now passes adjacent `--disable`, `unified_exec` after `codex exec`; regression test asserts the command contract; `corrections.md` SHA-256 `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`; focused tests 10/10, full pytest only known pre-existing mismatch, MSVC build and 214/214 CTest pass per owner/root evidence. | `needs-implementation` | Root is authorized to run no-push `python scripts/execute.py nonlinear-static-newton-raphson` with Codex `0.149.1`, aligned `CODEX_HOME`, filtered child PATH, `workspace-write`, hooks retained and no `danger-full-access` | -- current_dispatch: `stage-3-formulation-attempt-1` -- current_workflow_state: `needs-formulation` -- next_gate_requires_user_approval: `false` (owner evidence audit 선행) +- current_dispatch: `stage-6-no-push-harness-implementation-rerun` +- current_workflow_state: `needs-implementation` +- next_gate_requires_user_approval: `false` (user/root already authorized Codex update, bounded smoke and Harness rerun) ## 5. Risk, Blocker, and User-Decision Register | id | type | description | owner | status | | --- | --- | --- | --- | --- | +| BLOCKER-001 | dispatch | Stage 4 requires a valid `numerical-review-agent` child dispatch. Root supplied the valid profile dispatch and owner return, so this runtime-tooling blocker no longer blocks the gate. | `coordinator-agent` / runtime tooling | closed | +| REWORK-001 | report-contract | Stage 4 returned evidence had a cross-report contradiction on stress CSV and `RM3` comparison disposition. Corrected reports now consistently treat stress CSVs as optional read-only inspection/order evidence only and exclude `RM3` from comparison. | `numerical-review-agent` | closed | +| REWORK-002 | io-contract | Stage 5 `io.md` bounded correction completed: public CLI `--output` substring rejection, Newton iteration log schema, exact `VARIABLE=PRESELECT` ignored-with-warning handling, repository-wide non-Newton log lifecycle, DECISION-028/029/030 path/log lifecycle and collision semantics are now recorded in `io.md`. | `io-definition-agent` | closed | +| REWORK-003 | harness | Stage 6 attempt 1 timeout/no-retry defect is repaired in Harness infrastructure: timeouts now return structured exit `124` through `MAX_RETRIES`, and implementation-agent profile settings are passed to Codex. Same normalized failure attempt count remains 1; attempt 2 is authorized and same-class recurrence stops automatic rework. | `implementation-agent` via Harness Executor | closed | +| BLOCKER-002 | harness-runtime | Nested Codex Windows shell tool execution hung inside Implementation/Correction Codex sessions. It is mitigated for the authorized rerun by Codex CLI `0.149.1`, aligned `CODEX_HOME`, filtered WindowsApps PATH entries, smoke success with exact `CODEX_SHELL_SMOKE_OK` output, and REWORK-004 runner retention of `--disable unified_exec`. Reopen only if the same hang recurs under the exact approved envelope. | external Codex runtime / user-root decision | mitigated | +| BLOCKER-003 | dispatch-runtime | This Coordinator runtime exposed no callable `spawn_agent` tool, but root successfully performed the required Correction Agent profile dispatch. | coordinator/root tooling | closed | +| REWORK-004 | harness | Corrected: `scripts/execute.py` now passes adjacent `--disable`, `unified_exec` immediately after `codex exec`; `tests/test_execute.py` asserts this while preserving terra/xhigh routing; `corrections.md` records RED/GREEN/VERIFY and no Harness phase/source C++/CMake/reference edits. | `correction-agent` | closed | | RISK-001 | architecture | 기존 `LinearStaticAnalysis` private lifecycle은 단일 factorization/substitution과 final frame만 소유하므로 nonlinear increment/iteration/state commit을 삽입하면 ADR 경계를 위반한다. | `coordinator-agent` routing | open | | RISK-002 | scope | `Newton–Raphson`은 solution algorithm이고 geometric/material/contact nonlinearity 범위를 단독으로 결정하지 않는다. | `requirement-agent` | mitigated by DECISION-001 | | RISK-003 | contract | 현재 `Element`는 displacement-dependent residual/consistent tangent/trial state 계약이 없고 `AnalysisState`는 nonlinear history를 소유하지 않는다. | downstream formulation/architecture gates | open | @@ -193,13 +247,19 @@ | DECISION-032 | user process decision | `requirements.md`를 핵심 Stage-1 계약으로 압축하고 OQ chronology, diagnostic/path/concurrency trivia와 반복 handoff를 제거한다. Minor details는 downstream specialist convention/evidence로 정하며 approved scope/physics/tolerance/public compatibility를 바꿀 때만 사용자 결정을 다시 요청한다. | user via Coordinator | closed | | DECISION-033 | design approval | Target 363 lines, 24 canonical requirements와 24-row Matrix, approved semantic-loss 0의 compact rewrite design. | user via Coordinator | closed | | DECISION-034 | user process decision | Requirement Agent는 approved physics/scope/tolerance/authoritative-output/public compatibility를 바꾸는 essential decision만 사용자에게 묻고, specialist detail은 owning downstream stage가 repository evidence와 conventional FEM practice로 정한다. Equivalence claim은 금지한다. | user via Coordinator; `.codex/agents/requirement-agent.toml` | closed | +| DECISION-035 | user approval | User explicitly approved Stage 5 `docs/nonlinear-static-newton-raphson/io.md` SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28` and requested Implementation Planning. | user via Coordinator | closed | +| DECISION-036 | user approval | User explicitly approved the Stage 6 Implementation Planning 13-Step draft on `2026-08-24` and authorized creation of `implementation-plan.md` plus pending Harness phase files. | user via Coordinator | closed | +| DECISION-037 | user approval | User explicitly requested no-push Harness/Implementation execution for materialized phase `nonlinear-static-newton-raphson` on `2026-08-24`. | user via Coordinator | closed | +| DECISION-038 | user/root runtime approval | User/root authorized Codex CLI update, shell smoke and no-push Harness rerun. Accepted runtime envelope is Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, launch-env-only WindowsApps PATH filtering, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, no `danger-full-access`, and `--disable unified_exec`. | user/root via Coordinator | closed | +| USER-DECISION-001 | user decision | Stage 6 Implementation Planning draft Steps `0..12` were approved on `2026-08-24`; materialization is authorized for `implementation-planning-agent`. | user via Coordinator | closed | ## 6. Rework-Loop Control and Stop Condition -- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1 +- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 2 - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. +- correction_cycle_authorization: Root-authorized REWORK-004 correction returned `corrected-for-implementation-rerun`; no further correction is active. If the same nested shell hang recurs under the exact corrected runner and approved launch envelope, stop as `blocked` rather than broadening privileges. ## 7. Final Workflow Closure @@ -209,11 +269,11 @@ ## 8. No-Change Assertion -- source_code: 변경 없음 -- tests: 변경 없음 +- source_code: production solver source 변경 없음; earlier Harness repair and REWORK-004 owners modified only `scripts/execute.py` within runner scope. +- tests: production C++ tests 변경 없음; earlier Harness repair and REWORK-004 owners modified only `tests/test_execute.py` within Harness Python test scope. - CMake: 변경 없음 - reference_artifacts: 생성·수정·rename 없음 - tolerance_policies: 변경 없음 -- phase_files: 생성 없음 -- Harness: 실행하지 않음 -- feature_documents: `coordination.md`, `requirements.md`, `research.md`만 생성됨 +- phase_files: user-approved planning owner가 `phases/index.json` pending entry와 `phases/nonlinear-static-newton-raphson/index.json`, `step0.md`..`step12.md`를 materialize함; Executor attempt 2 generated `phases/nonlinear-static-newton-raphson/step0-output.json`; Step 0 remains pending and Coordinator did not edit phase files. +- Harness: Implementation Agent bounded repair와 REWORK-004는 `scripts/execute.py`와 `tests/test_execute.py`에 한정됨; REWORK-004 did not run nonlinear Harness phase, commit or push. Coordinator did not run Harness/phase/build/test; root no-push rerun is now authorized under the approved corrected envelope. +- feature_documents: 이번 coordinator update에서는 isolated worktree의 `coordination.md`만 갱신함; Correction Agent가 `docs/nonlinear-static-newton-raphson/corrections.md`를 갱신했고 `implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않음 diff --git a/docs/nonlinear-static-newton-raphson/corrections.md b/docs/nonlinear-static-newton-raphson/corrections.md new file mode 100644 index 0000000..73c8e5a --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/corrections.md @@ -0,0 +1,131 @@ +# Nonlinear Static Newton-Raphson Correction Report + +## 1. Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `docs/nonlinear-static-newton-raphson/coordination.md`; `phases/nonlinear-static-newton-raphson/step0-output.json` | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md` | +| status | `corrected-for-implementation-rerun` | +| owner_agent | `correction-agent` | +| date | `2026-08-24` | + +`implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않았으므로 현재 Coordinator failure evidence와 Executor의 `step0-output.json`을 source failure report로 사용했다. + +Sections 2-6의 Codex `0.147.0` 내용은 initial correction history이며, current REWORK-004 status와 증거는 Sections 7-9가 supersede한다. + +## 2. Failure Triage + +- classification: `harness` +- normalized classification: `harness-nested-codex-windows-shell-tool-execution-hang` +- first failed command: + + ```powershell + codex exec --json --model gpt-5.6-terra --config 'model_reasoning_effort="xhigh"' --sandbox workspace-write --dangerously-bypass-hook-trust --cd C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson - + ``` + +- failed target or test: nested shell smoke `cmd.exe /d /c echo CODEX_SHELL_SMOKE_OK` +- evidence tail: baseline diagnostic는 45초 안에 종료되지 않았다. JSONL에는 `item.started`, `type=command_execution`, `status=in_progress`가 기록됐지만 대응하는 completion event와 `CODEX_SHELL_SMOKE_OK` 출력이 없었다. 진단 root PID `11292`와 관찰된 descendant PID tree를 `taskkill /PID 11292 /T /F`로 종료한 뒤 `remainingPids=[]`를 확인했다. +- historical evidence: `step0-output.json`도 exit code `124`, stderr `Codex timed out after 1800 seconds.`를 기록했고 `Get-Date`, `cmd.exe /d /c echo test`, `exit 0` 등의 nested command가 `status=in_progress`에 머물렀다. + +## 3. Root Cause Summary + +실패 경계는 repaired Python Executor의 timeout/retry 처리나 FESA C++ 구현이 아니라 local `codex-cli 0.147.0`의 nested command execution runtime이다. 같은 worktree에서 direct PowerShell과 `cmd.exe`는 정상 실행되고, focused Harness Python test도 통과하며, runner-equivalent Codex baseline만 nested shell completion을 반환하지 않았다. + +Local CLI help는 `--disable `와 `--enable `를 문서화하고, `codex features list`는 `code_mode_host`를 `stable true`, `shell_tool`을 `stable true`, `unified_exec`를 `stable false`, `hooks`를 `stable true`로 보고했다. 다음 좁은 가설을 한 변수씩 검사했다. + +| variant | result | command completion evidence | +| --- | --- | --- | +| baseline | 45.318초 timeout 후 exact PID tree cleanup | `item.started/status=in_progress`; completion 및 echo output 없음 | +| `--disable code_mode_host` | exit `0`, 33.322초 | shell 미실행; stderr `code-mode host is disabled`; completion event 없음 | +| `--enable unified_exec` | 45.299초 timeout 후 exact PID tree cleanup | completion event 및 echo output 없음 | +| `--disable code_mode_host --enable unified_exec` | exit `0`, 25.922초 | shell 미실행; 동일한 fail-closed host-disabled error | + +따라서 `--disable code_mode_host`는 shell execution을 복구하지 않고 tool host를 fail-closed로 제거한다. `unified_exec`도 단독 또는 조합에서 실제 shell completion을 만들지 못했다. Codex 내부 결함의 더 세부 원인은 repository evidence로 확정할 수 없으며, 안전한 documented runner flag workaround는 입증되지 않았다. 이는 implementation defect, test defect 또는 CMake registration issue가 아니라 external Codex runtime blocker다. + +## 4. Correction Scope + +- changed source files: `scripts/execute.py` (`codex exec` argv에 adjacent `--disable`, `unified_exec` 추가) +- changed header files: 없음 +- changed test files: `tests/test_execute.py` (Implementation Agent command contract regression assertion 추가) +- changed CMake files: 없음 +- changed report files: `docs/nonlinear-static-newton-raphson/corrections.md` +- excluded upstream contract files: `requirements.md`, `research.md`, `formulation.md`, `numerical-review.md`, `reference-model.md`, `io.md`, `implementation-plan.md` +- excluded artifacts/policies: phase definition/index, production C++, reference inputs/CSV, `docs/TOLERANCE.md` + +초기 correction cycle에서는 safe workaround가 입증되지 않아 runner/test를 변경하지 않았다. 이후 user/root가 Codex `0.149.1`의 bounded smoke로 `--disable unified_exec` runtime envelope를 입증했고, REWORK-004에서 그 pair만 TDD로 추가했다. 기존 Harness-repair 변경과 다른 owner의 dirty-worktree 변경은 그대로 보존했다. + +## 5. Verification Evidence + +| purpose | command | result | +| --- | --- | --- | +| installed CLI | `codex --version` | exit `0`; `codex-cli 0.147.0` | +| documented options | `codex exec --help`; `codex features list` | exit `0`; `--enable/--disable`, `code_mode_host`, `unified_exec`, `shell_tool`, `hooks` 확인 | +| targeted reproduction | runner-equivalent `codex exec ... --sandbox workspace-write ...` + one echo tool request | 45초 timeout; command started, completion/output 없음; exact tree cleanup 후 remaining PID 0 | +| focused Harness Python | `uv run --with pytest python -m pytest -v -rs tests/test_execute.py` | exit `0`; 10 passed | +| full Harness Python | `uv run --with pytest python -m pytest -v -rs` | exit `1`; 23 passed, 1 failed | +| MSVC Debug build | `cmake --build .harness/build --config Debug` | exit `0`; solver/CLI/unit/integration/reference targets built | +| CTest discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | exit `0`; 214 tests discovered | +| full CTest | `ctest --test-dir .harness/build -C Debug --output-on-failure` | exit `0`; 214/214 passed | + +`.harness/config.json`은 없었다. Existing `.harness/build/CMakeCache.txt`는 `Visual Studio 18 2026`, `x64`, approved local GoogleTest/MKL/TBB/HDF5 paths를 사용하므로 Harness auto-detected build tree를 재사용했다. + +Full Python failure는 pre-existing out-of-scope contract mismatch다: `test_agent_toml_and_limited_skill_yaml_schemas_are_parseable`가 actual `xhigh`와 expected `extra high`를 비교한다. Dispatch 지시에 따라 이 test, `AGENTS.md`, agent profile을 변경하지 않았다. + +Stop hook은 Harness Step 실행을 금지한 이번 correction session에서 별도 Codex Step 종료 evidence를 생성하지 않았다. Hook entry point의 수동 실행은 project contract가 금지하므로 대신 config-resolved full MSVC build와 full CTest를 직접 실행해 결과를 위에 기록했다. + +## 6. Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-083` | Step 0 `cli-output-lease-and-derived-names` | `CORR-HARNESS-SMOKE-001` | runner-equivalent `codex exec` invoking `cmd.exe /d /c echo CODEX_SHELL_SMOKE_OK` | 없음 | workspace-write, hooks, `gpt-5.6-terra`/`xhigh`, no-push, no `danger-full-access`를 유지한 실제 shell completion과 exact echo output; 실패 | +| `FESA-REQ-NSNR-083` | Step 0 `cli-output-lease-and-derived-names` | `CORR-HARNESS-SMOKE-002` | same smoke with `--disable code_mode_host` | 없음 | shell completion 복구; 실패 (`code-mode host is disabled`) | + +Runner correction acceptance criterion이 충족되지 않았으므로 Implementation Step 0의 `NSNR-CLI-*` RED/GREEN은 시작되지 않았고 Step 0 status는 `pending`으로 유지된다. + +## 7. Handoff Recommendation + +- recommendation: Coordinator Agent를 통해 Implementation Agent에 `needs-implementation-rerun` 요청. +- corrected runner contract: nested command는 `codex exec --disable unified_exec --json ...` 순서로 실행된다. +- preserved execution contract: Coordinator가 관리하는 rerun launch environment는 Codex `0.149.1`, aligned `CODEX_HOME`, approved WindowsApps PATH filtering, `workspace-write`, project hooks, `gpt-5.6-terra`, `xhigh`, no-push, no `danger-full-access`를 유지해야 한다. +- scope boundary: 이 correction은 runner option gate만 복구했다. Harness phase, Implementation Step 0, reference comparison 또는 physics success를 주장하지 않는다. + +## 8. Stop Condition + +- repeated failure: normalized classification attempt `2`는 초기 Codex `0.147.0` failure history로 보존한다. +- external mitigation: user/root의 Codex `0.149.1` bounded smoke와 `DECISION-038`이 새 좁은 runner correction을 승인했다. +- correction result: required adjacent `--disable unified_exec` pair와 regression test가 GREEN이다. +- residual blocker: runner correction 자체 blocker는 없음. Full Python suite의 pre-existing `xhigh` actual 대 `extra high` expected mismatch는 변경하지 않았다. +- upstream ambiguity/reference artifact gap: 없음; reference artifact는 읽기/수정/생성하지 않았다. +- final stop: correction-owned edits와 검증이 끝났으므로 여기서 중단하고, phase rerun 판단과 실행은 Coordinator/Implementation Agent에 반환한다. + +## 9. REWORK-004 TDD And Verification Evidence + +### Failure and Minimal Correction + +- classification: `harness` +- implementation defect: Codex `0.149.1`에서 통과한 runtime envelope의 `--disable unified_exec` option을 `scripts/execute.py`가 nested `codex exec`에 전달하지 않았다. +- RED test: `test_invoke_codex_uses_implementation_agent_command_contract` +- minimal GREEN: command vector에서 `"codex", "exec"` 바로 뒤에 `"--disable", "unified_exec"` 두 argument만 추가했다. +- preserved behavior: `workspace-write` default/validated override, `--dangerously-bypass-hook-trust`, `gpt-5.6-terra`, `model_reasoning_effort="xhigh"`, 1800-second structured timeout, no-push default, `danger-full-access` 비사용 정책은 변경하지 않았다. + +### RED / GREEN / VERIFY + +| stage | command | exit | duration | evidence tail | +| --- | --- | ---: | ---: | --- | +| RED | `uv run --with pytest python -m pytest -v -rs tests/test_execute.py::test_invoke_codex_uses_implementation_agent_command_contract` | `1` | 1.2초 | `assert ('--disable', 'unified_exec') in adjacent_arguments`; 1 failed | +| GREEN | same targeted command | `0` | 1.1초 | 1 passed | +| focused VERIFY | `uv run --with pytest python -m pytest -v -rs tests/test_execute.py` | `0` | 1.1초 | 10 passed | +| full Harness Python | `uv run --with pytest python -m pytest -v -rs` | `1` | 1.3초 | 23 passed, 1 pre-existing failure | +| MSVC Debug build | `cmake --build .harness/build --config Debug` | `0` | 3.8초 | solver/CLI/unit/integration/reference targets built | +| CTest discovery | `ctest --test-dir .harness/build -C Debug --show-only=json-v1` | `0` | 0.7초 | 214 tests discovered | +| full CTest | `ctest --test-dir .harness/build -C Debug --output-on-failure` | `0` | 10.2초 | 214/214 passed | + +Full Python failure는 기존 `test_agent_toml_and_limited_skill_yaml_schemas_are_parseable`의 `assert 'xhigh' == 'extra high'` 한 건이다. REWORK-004의 command-contract test를 포함한 `tests/test_execute.py`는 10/10 통과하며, dispatch 경계에 따라 pre-existing mismatch를 수정하지 않았다. + +### REWORK-004 Traceability + +| requirement id | task id | test id | corrected files | acceptance criterion | +| --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-083` | Harness runner correction `REWORK-004`; blocks Step 0 `cli-output-lease-and-derived-names` | `test_invoke_codex_uses_implementation_agent_command_contract` | `scripts/execute.py`; `tests/test_execute.py` | nested Codex argv가 adjacent `--disable`, `unified_exec`를 포함하면서 Terra/xhigh routing을 보존함; passed | diff --git a/docs/nonlinear-static-newton-raphson/formulation.md b/docs/nonlinear-static-newton-raphson/formulation.md new file mode 100644 index 0000000..93be89a --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/formulation.md @@ -0,0 +1,1843 @@ +# Nonlinear Static Newton–Raphson 정식화 + +## 1. Metadata + +- feature_id: nonlinear-static-newton-raphson +- source_requirement: docs/nonlinear-static-newton-raphson/requirements.md +- source_requirement_status: approved +- source_requirement_approval_date: 2026-08-23 +- source_requirement_sha256: 910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2 +- source_research: docs/nonlinear-static-newton-raphson/research.md +- source_research_status: passed +- source_research_sha256: C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE +- status: ready-for-numerical-review +- owner_agent: formulation-agent +- date: 2026-08-23 +- formulation_scope: fixed-initial-reference Total Lagrangian, materially linear and + geometrically nonlinear original-style FESA-MITC4, Full Newton +- independence: FESA는 독립 solver이며 Abaqus, Midas 또는 다른 solver의 요소, 회전, + stabilization, 적분 또는 상태 갱신 동등성을 주장하지 않는다. + +이 문서는 Stage 3의 수학·알고리즘 계약이다. C++ API, parser, HDF5 path/schema, exact +reference artifact, benchmark blocking 분류 및 수치 검토 tolerance는 정의하지 않는다. +기존 docs/linear-static-mitc4-shell/formulation.md의 §1–14에서 승인된 node order, +initial director, local sign, MITC tying, constitutive boundary, 2 x 2 x 2 integration과 +physical recovery를 보존한다. 그 문서 §15는 gap inventory와 conditional identity로만 +사용하며 이 문서의 nonlinear 식을 대신하지 않는다. + +## 2. Scope and Assumptions + +### 2.1 Analysis boundary + +- 해석 종류는 정확히 하나의 nonlinear static step이다. +- 하중 제어는 dimensionless scalar factor \(\lambda\in[0,1]\)의 fixed increment path다. +- 각 증분은 Full Newton으로 평형을 찾는다. Modified Newton, tangent reuse, line search, + damping, cutback, retry 및 arc-length는 없다. +- 모든 residual, tangent, load-work derivative와 convergence quantity는 같은 current + trial identity에서 평가한다. +- formulation은 한 고정 initial reference configuration \(\Omega_0\)만 사용한다. + accepted increment 뒤에도 reference geometry를 재설정하지 않는다. +- inertia, mass, damping 및 time integration은 N/A다. + +### 2.2 Element and material boundary + +- Source S4와 S4R은 같은 four-node original-style FESA-MITC4를 선택한다. +- Element는 Reissner–Mindlin-type degenerated continuum shell이며, thickness stretch와 + \(E_{33}\), \(S_{33}\)은 제외한다. +- Material은 centered homogeneous isotropic linear elasticity다. +- Geometry는 large displacement와 finite rotation을 허용하지만 material applicability는 + small elastic strain이다. Material history/state variable은 없다. +- MITC4+ membrane field, reduced integration, hourglass control, EAS, physical drilling + constitutive law, follower load 및 distributed load는 포함하지 않는다. + +### 2.3 Coordinates, signs and units + +- Natural coordinates are + \((\xi,\eta,\zeta)\in[-1,1]^3\). +- Node layout is + \(1=(-1,-1)\), \(2=(+1,-1)\), \(3=(+1,+1)\), \(4=(-1,+1)\). +- \(+\zeta\) and the initial director define the positive shell face. +- Global nodal DOF order is + \([UX,UY,UZ,URX,URY,URZ]\). +- Translation and nodal force are global and have dimensions length and force. +- Rotation coordinates/corrections are dimensionless. Nodal moments have dimension + force-length. +- Constitutive strain, second Piola–Kirchhoff stress and physical shell recovery use + the fixed initial local frame at each reference midsurface location. No rotating + output frame is inserted into the material tangent. +- User input uses one consistent unit system. FESA does not infer or convert units. + +## 3. Primary Variables, DOFs and State + +### 3.1 Fixed reference data + +At node \(I\), let + +\[ +\mathbf X_I\in\mathbb R^3,\qquad +\mathbf Q_I^0= +\begin{bmatrix}\mathbf a_I^0&\mathbf b_I^0&\mathbf d_I^0\end{bmatrix} +\in SO(3) +\] + +be the initial midsurface position and the approved initial right-handed triad. +Initial directors and tangent frames are constructed exactly by the approved linear +MITC4 deterministic incident-element rules. Thickness \(t>0\), \(E>0\), and +\(-1<\nu<0.5\) are fixed. + +### 3.2 Global nonlinear coordinates + +The nodal nonlinear coordinate is + +\[ +\mathbf q_I= +\begin{bmatrix}\mathbf u_I\\\boldsymbol\phi_I\end{bmatrix} +\in\mathbb R^6. +\] + +\(\mathbf u_I\) is global midsurface displacement. \(\boldsymbol\phi_I\) is a +fixed-initial, fixed-global-basis rotation vector, and + +\[ +\mathbf R_I(\boldsymbol\phi_I) +=\exp([\boldsymbol\phi_I]_\times),\qquad +\mathbf Q_I=\mathbf R_I\mathbf Q_I^0,\qquad +\mathbf d_I=\mathbf Q_I\mathbf e_3 . +\] + +The mathematical branch is the principal exponential chart +\(\|\boldsymbol\phi_I\|<\pi\). A target or trial exactly on the non-unique +\(\pi\)-rotation branch, an ambiguous logarithm, or nonfinite rotation data fails +closed. Numerical branch-distance tolerance is owned by Numerical Review; this +formulation introduces no hidden clamp. + +The 24-vector for one element is + +\[ +\mathbf q_g= +\begin{bmatrix} +\mathbf u_1&\boldsymbol\phi_1& +\cdots& +\mathbf u_4&\boldsymbol\phi_4 +\end{bmatrix}^{T}\in\mathbb R^{24}. +\] + +Constrained and free identities are the fixed global components of this vector. + +### 3.3 Multiplicative update and retraction + +For an unchanged Newton correction +\(\Delta\boldsymbol\phi_I\), define + +\[ +\mathbf Q_I^+ +=\exp([\boldsymbol\phi_I+\Delta\boldsymbol\phi_I]_\times)\mathbf Q_I^0 +=\Delta\mathbf R_I\,\mathbf Q_I, +\] + +\[ +\boxed{ +\Delta\mathbf R_I= +\exp([\boldsymbol\phi_I+\Delta\boldsymbol\phi_I]_\times) +\exp(-[\boldsymbol\phi_I]_\times)\in SO(3).} +\] + +Thus the update is left multiplication in the spatial/global frame. The correction +is dimensionless, expressed in the fixed global basis, and is applied without a +scalar modification. The authoritative orientation is \(\mathbf Q_I\); after every +update \(\boldsymbol\phi_I\), \(\mathbf Q_I\), and \(\mathbf d_I\) must satisfy the +boxed identity. Corrections are not multiplied successively as independent +incremental rotation tensors; the fixed-reference exponential coordinate is updated +first and \(\Delta\mathbf R_I\) is then derived. Therefore a final +\(\boldsymbol\phi_I\) defines one path-independent triad inside the principal chart. + +Rodrigues' map is + +\[ +\exp([\boldsymbol\phi]_\times) +=\mathbf I+\frac{\sin\theta}{\theta}[\boldsymbol\phi]_\times ++\frac{1-\cos\theta}{\theta^2}[\boldsymbol\phi]_\times^2, +\qquad \theta=\|\boldsymbol\phi\|, +\] + +with its analytic series at \(\theta=0\). No normalization of \(\mathbf Q\) is part +of the mathematical update. A finite implementation may apply a checked +orthogonal projection only as a representation safeguard if Numerical Review +approves its invariant tolerance; it must not change residual/tangent state identity. + +### 3.4 Exact first and second rotation variations + +For a direction \(\mathbf p\), define the left Jacobian + +\[ +\mathbf J_l(\boldsymbol\phi)= +\mathbf I+ +\frac{1-\cos\theta}{\theta^2}[\boldsymbol\phi]_\times+ +\frac{\theta-\sin\theta}{\theta^3}[\boldsymbol\phi]_\times^2 . +\] + +Then the spatial infinitesimal rotation induced by the additive global-coordinate +variation \(\mathbf p\) is + +\[ +\boldsymbol\omega_{\mathbf p} +=\mathbf J_l(\boldsymbol\phi)\mathbf p, +\qquad +D\mathbf d[\mathbf p] +=\boldsymbol\omega_{\mathbf p}\times\mathbf d . +\] + +For directions \(\mathbf p,\mathbf s\), + +\[ +\boxed{ +D^2\mathbf d[\mathbf p,\mathbf s] +=D\mathbf J_l(\boldsymbol\phi)[\mathbf s]\mathbf p\times\mathbf d ++\boldsymbol\omega_{\mathbf p}\times +(\boldsymbol\omega_{\mathbf s}\times\mathbf d).} +\] + +The symmetric value is obtained by the analytically identical exchange +\(\mathbf p\leftrightarrow\mathbf s\); disagreement is an implementation error. +\(D\mathbf J_l\) is the direct derivative of the displayed analytic expression, +including scalar coefficient derivatives and the series branch. It is not omitted. + +Equivalently, all required derivatives may be evaluated through the exact Fréchet +primitives + +\[ +D\exp_{\mathbf A}[\mathbf H] +=\int_0^1 +\exp((1-s)\mathbf A)\mathbf H\exp(s\mathbf A)\,ds, +\] + +\[ +D^2\exp_{\mathbf A}[\mathbf H,\mathbf K] +=D\!\left(D\exp_{\mathbf A}[\mathbf H]\right)[\mathbf K], +\] + +where the second expression is evaluated symmetrically. These definitions, the +Rodrigues form, and the directional-derivative verification must give the same +first/second variation. + +### 3.5 Trial and committed state + +A complete state identity contains at least + +\[ +\mathcal S= +\{\lambda,\mathbf u,\boldsymbol\phi,\mathbf Q,\mathbf d, +\mathbf f_{int},\mathbf f_{ext},\mathbf r, +\text{reaction},\text{physical recovery rows}\}. +\] + +Committed and trial instances never alias. Element drilling quantities are derived +from the same trial and introduce no material history. A successful increment +atomically transfers the entire validated trial identity. Nonconvergence, nonfinite +data, invalid geometry/rotation, solve failure, recovery failure, or output failure +discards the candidate and preserves the preceding committed state. + +## 4. Strong Form and Boundary Conditions + +### 4.1 Total Lagrangian parent continuum + +On the fixed reference volume \(\Omega_0\), + +\[ +\operatorname{Div}_0\mathbf P+\mathbf B_0=\mathbf0,\qquad +\mathbf P=\mathbf F\mathbf S , +\] + +\[ +\mathbf F=\frac{\partial\mathbf x}{\partial\mathbf X},\qquad +\mathbf E=\frac12(\mathbf F^T\mathbf F-\mathbf I),\qquad +\mathbf S=\mathbb C_{ps}:\overline{\mathbf E}. +\] + +The parent boundary is split into \(\Gamma_u\cup\Gamma_t\): + +\[ +\mathbf x=\overline{\mathbf x}\quad\text{on }\Gamma_u,\qquad +\mathbf P\mathbf N_0=\overline{\mathbf T}_0\quad\text{on }\Gamma_t . +\] + +For this executable subset \(\mathbf B_0=\mathbf0\) and distributed +\(\overline{\mathbf T}_0=\mathbf0\). External work is supplied only by approved +nodal CLOAD and nodal prescribed global coordinates. The continuum natural term +documents the lineage but does not authorize pressure, edge traction, body force, +or follower loading. + +### 4.2 Translational prescribed path + +For a constrained translation component \(c\), step-start value +\(u_c^s\), factor-one absolute target \(u_c^\star\), and current factor \(\lambda\), + +\[ +\boxed{u_c(\lambda)=u_c^s+\lambda(u_c^\star-u_c^s).} +\] + +The step has no prior history in this release, but the formula preserves the +step-start identity explicitly. + +### 4.3 Finite rotational prescribed path + +For a constrained global rotation-vector component \(c\), + +\[ +\boxed{ +\phi_c(\lambda)=\phi_c^s+ +\lambda(\phi_c^\star-\phi_c^s).} +\] + +\(\boldsymbol\phi^\star\) is the factor-one absolute global rotation-vector target, +not a Newton correction. At an increment target, constrained coordinates are set +to the boxed absolute values before the first residual evaluation. Every Newton +solve then uses + +\[ +\boxed{\Delta\phi_c=0.} +\] + +Thus target advance and Newton correction are distinct. The triad path is +\(\mathbf Q(\lambda)=\exp([\boldsymbol\phi(\lambda)]_\times)\mathbf Q^0\) only for +components fixed by boundary data; free components remain solution variables. +This componentwise path is deterministic, reaches the exact source target at +\(\lambda=1\), and introduces no follower or controlled-displacement semantics. + +### 4.4 Nodal load path and drilling-moment rejection + +Approved nodal force and immutable source-moment coefficients +\(\mathbf F_I^\star,\mathbf M_{I,src}^\star\) remain fixed in global axes: + +\[ +\mathbf F_I(\lambda)=\lambda\mathbf F_I^\star,\qquad +\mathbf M_{I,src}(\lambda)=\lambda\mathbf M_{I,src}^\star . +\] + +The factor changes magnitude only. A zero aggregated nodal moment is accepted as a +separate exact-zero case. Every nonzero moment is checked against the same current +trial director used by the physical residual: + +\[ +\boxed{ +\rho_{M,I}= +\frac{|\mathbf d_I\cdot\mathbf M_{I,src}^\star|} +{\|\mathbf M_{I,src}^\star\|} +\le 10^{-12}.} +\] + +Failure at preprocessing or at any entered trial is +unsupported-drilling-load and occurs before that trial residual/tangent can be +accepted. The denominator is never clamped. This admissibility check does not +project, rotate, shorten, overwrite, or otherwise mutate the source vector; source +identity and the proportional fixed-global path remain exact. + +The shell has no physical director-parallel work channel. After admissibility, the +exact covector representing the immutable source moment on the current physical +two-DOF virtual-rotation space is + +\[ +\boxed{ +\mathbf M_{I,phys}(\mathbf q;\lambda) +=\lambda\mathbf P_I(\mathbf q)\mathbf M_{I,src}^\star,\qquad +\mathbf P_I=\mathbf I-\mathbf d_I\mathbf d_I^T.} +\] + +Thus an admitted source component within the approved \(10^{-12}\) direction band +is removed from physical work exactly and is not sent to the numerical drill +channel. \(\mathbf M_{I,phys}\) is an effective work covector, not a mutated source +load. Its state dependence is solely the restriction to the changing admissible +director-tangent space; it does not rotate the fixed-global source direction and +does not introduce follower-load semantics. Residual and tangent must include +\(D\mathbf P_I\) exactly as specified in §11.2. + +## 5. Weak or Variational Form + +Let \(\mathcal V_{24}(\lambda)\) be the admissible trial manifold satisfying the +absolute constraints and let \(\mathcal V_{24}^0\) contain variations with zero +constrained global components. The equilibrium virtual-work statement is + +\[ +\boxed{ +\delta\mathcal G(\mathbf q_g;\lambda) +=\delta\Pi_{phys} ++\delta\Pi_{drill} +-\delta W_F +-\delta W_M=0 +\quad\forall\delta\mathbf q_g\in\mathcal V_{24}^0 .} +\] + +The physical internal virtual work is + +\[ +\delta\Pi_{phys} +=\int_{\Omega_0} +\delta\overline{\mathbf e}^{T}\mathbf s\,dV_0, +\qquad +\mathbf s=\mathbf C_5\overline{\mathbf e}. +\] + +The translational dead-load work is + +\[ +W_F=\lambda\sum_I\mathbf F_I^\star\cdot\mathbf u_I . +\] + +For a virtual rotation-coordinate variation +\(\delta\boldsymbol\phi_I\), define the induced spatial rotation and its physical +director-tangent part by + +\[ +\delta\boldsymbol\vartheta_I +=\mathbf J_l(\boldsymbol\phi_I)\delta\boldsymbol\phi_I,\qquad +\delta\boldsymbol\vartheta_I^{phys} +=(\mathbf I-\mathbf d_I\mathbf d_I^T) +\delta\boldsymbol\vartheta_I +=\mathbf d_I\times\delta\mathbf d_I . +\] + +\[ +\boxed{ +\delta W_M +=\sum_I\mathbf M_{I,phys}(\mathbf q;\lambda)\cdot +\delta\boldsymbol\vartheta_I +=\lambda\sum_I\mathbf M_{I,src}^\star\cdot +\delta\boldsymbol\vartheta_I^{phys}.} +\] + +Here \(\mathbf M_{I,src}^\star\) is the immutable global source vector and +\(\mathbf M_{I,phys}=\lambda\mathbf P_I\mathbf M_{I,src}^\star\) is the exact +effective physical-work covector from §4.4. The two expressions are identical +because \(\delta\boldsymbol\vartheta_I^{phys}=\mathbf P_I +\delta\boldsymbol\vartheta_I\). Admissibility permits a source component within +the approved ratio band; it does not assert +\(\mathbf M_{I,src}^\star\cdot\mathbf d_I=0\) exactly. Projection removes that +component from physical work, and the numerical director-parallel rotation does no +external work. Configuration dependence of the generalized load arises from the +exact rotation-coordinate and projector derivatives; the immutable source vector +itself is never projected in storage, rotated, or shortened. + +The physical shell and drilling terms are conservative inside their valid charts. +An immutable constant-spatial source moment restricted to the physical tangent +space as above defines a work one-form on finite rotations, not a global scalar +rotation potential. Its exact load-work tangent is therefore generally nonsymmetric +even though it contains no follower direction update. With no applied moment, the +complete unreduced internal/drill tangent is a symmetric Hessian in exact arithmetic. +Numerical symmetry expectations and norms belong to Numerical Review. + +## 6. Discretization + +### 6.1 Bilinear interpolation + +\[ +N_I(\xi,\eta)= +\frac14(1+\xi_I\xi)(1+\eta_I\eta), +\] + +\[ +\begin{aligned} +N_1&=\tfrac14(1-\xi)(1-\eta),& +N_2&=\tfrac14(1+\xi)(1-\eta),\\ +N_3&=\tfrac14(1+\xi)(1+\eta),& +N_4&=\tfrac14(1-\xi)(1+\eta). +\end{aligned} +\] + +Mandatory algebraic checks are + +\[ +\sum_I N_I=1,\qquad +N_I(\xi_J,\eta_J)=\delta_{IJ},\qquad +\sum_I N_{I,\xi}=\sum_I N_{I,\eta}=0. +\] + +These checks apply independently of deformation. + +### 6.2 Reference and current shell geometry + +With \(z=t\zeta/2\), + +\[ +\boxed{ +\mathbf X(\xi,\eta,\zeta) +=\sum_I N_I\mathbf X_I+ +z\sum_I N_I\mathbf d_I^0,} +\] + +\[ +\boxed{ +\mathbf x(\xi,\eta,\zeta;\mathbf q_g) +=\sum_I N_I(\mathbf X_I+\mathbf u_I)+ +z\sum_I N_I\mathbf d_I.} +\] + +Straight material lines through thickness remain straight. The current director is +unit length by the rotation map. Thickness is constant and is not a state variable. + +The continuum director field used by geometry is + +\[ +\mathbf D(\xi,\eta)=\sum_I N_I\mathbf d_I . +\] + +It is bilinearly interpolated and is not normalized before entering +\(\mathbf x\), \(\mathbf g_\alpha\), strain, tying, residual, or tangent. This is +the selected original degenerated-continuum convention; silently replacing it by +\(\mathbf D/\|\mathbf D\|\) changes the kinematics. Its exact variations are simply + +\[ +D\mathbf D=\sum_I N_I D\mathbf d_I,\qquad +D^2\mathbf D=\sum_I N_I D^2\mathbf d_I. +\] + +When a unit interpolated director is needed only for a checked diagnostic/current +frame, use \(\overline{\mathbf d}=\mathbf D/\|\mathbf D\|\) after requiring +\(\|\mathbf D\|>0\). With +\(\mathbf n=\mathbf v/\|\mathbf v\|\) and +\(\mathbf P=\mathbf I-\mathbf n\mathbf n^T\), + +\[ +D\mathbf n[\mathbf p]=\frac{\mathbf P\mathbf p}{\|\mathbf v\|}, +\] + +\[ +\boxed{ +D^2\mathbf n[\mathbf p,\mathbf s] +=-\frac{ +(\mathbf n\cdot\mathbf s)\mathbf P\mathbf p+ +(\mathbf n\cdot\mathbf p)\mathbf P\mathbf s+ +\mathbf n(\mathbf p\cdot\mathbf P\mathbf s)} +{\|\mathbf v\|^2}.} +\] + +No normalized diagnostic frame feeds back into the physical constitutive law. +At every trial require + +\[ +\mathbf d_I\cdot\mathbf d_J>-1\quad(I0 +\] + +at every required tying, Gauss, center and recovery location. Thus an exactly +opposed nodal pair or a degenerate interpolated director fails closed rather than +choosing a replacement axis. Scale-aware proximity tolerances, if required, belong +to Numerical Review. + +Define + +\[ +\mathbf G_\alpha=\mathbf X_{,\alpha},\qquad +\mathbf g_\alpha=\mathbf x_{,\alpha},\qquad +\alpha\in\{\xi,\eta,\zeta\}. +\] + +Constant translation is reproduced exactly. For any proper rigid +\(\mathbf R\) and translation \(\mathbf c\), + +\[ +\mathbf x_I=\mathbf R\mathbf X_I+\mathbf c,\qquad +\mathbf Q_I=\mathbf R\mathbf Q_I^0 +\] + +gives \(\mathbf g_\alpha=\mathbf R\mathbf G_\alpha\) and zero physical strain. + +## 7. Kinematics and the Nonlinear 24-to-20 Map + +### 7.1 Fixed-reference strain + +\[ +\mathbf F=\mathbf g_\alpha\otimes\mathbf G^\alpha,\qquad +\mathbf G^\alpha\cdot\mathbf G_\beta=\delta^\alpha_\beta, +\] + +\[ +\boxed{ +E_{\alpha\beta} +=\frac12(\mathbf g_\alpha\cdot\mathbf g_\beta +-\mathbf G_\alpha\cdot\mathbf G_\beta).} +\] + +This is Green–Lagrange strain. Second Piola–Kirchhoff stress is its +work-conjugate stress. + +### 7.2 Exact physical director chart + +Let + +\[ +\mathbf c_I=\mathbf d_I^0\times\mathbf d_I,\qquad +s_I=\|\mathbf c_I\|,\qquad +c_I=\mathbf d_I^0\cdot\mathbf d_I. +\] + +For \(c_I>-1\), define the minimal swing vector + +\[ +\boxed{ +\boldsymbol\chi_I= +\begin{cases} +\mathbf0,&s_I=0,\ c_I=1,\\[1mm] +\dfrac{\operatorname{atan2}(s_I,c_I)}{s_I}\mathbf c_I, +&s_I>0 . +\end{cases}} +\] + +\(\boldsymbol\chi_I\cdot\mathbf d_I^0=0\) and +\(\exp([\boldsymbol\chi_I]_\times)\mathbf d_I^0=\mathbf d_I\). +The antipodal state \(c_I=-1\) is not a unique two-DOF director chart and fails +closed. + +Define the two physical rotation coordinates + +\[ +\boldsymbol\chi_I^{2}= +\begin{bmatrix} +\mathbf a_I^0\cdot\boldsymbol\chi_I\\ +\mathbf b_I^0\cdot\boldsymbol\chi_I +\end{bmatrix}\in\mathbb R^2 +\] + +and + +\[ +\boxed{ +\mathbf q_{20}=\boldsymbol\Phi(\mathbf q_g) += +\begin{bmatrix} +\mathbf u_1&\boldsymbol\chi_1^2& +\cdots& +\mathbf u_4&\boldsymbol\chi_4^2 +\end{bmatrix}^{T}\in\mathbb R^{20}.} +\] + +This map discards only the rotation about the director gauge. It is an exact finite +map, not the unresolved linear projection from the earlier gap inventory. + +### 7.3 Map Jacobian and Hessian + +Define + +\[ +\mathbf A(\mathbf q_g) +=D\boldsymbol\Phi(\mathbf q_g) +\in\mathbb R^{20\times24}, +\qquad +\mathbf H_a^\Phi(\mathbf q_g) +=D^2\Phi_a(\mathbf q_g) +\in\mathbb R^{24\times24}. +\] + +The translation blocks are identity and have zero Hessian. Rotation blocks are +obtained by the exact chain + +\[ +\boldsymbol\phi +\xrightarrow{\exp} +\mathbf d +\xrightarrow{\text{minimal swing}} +\boldsymbol\chi +\xrightarrow{(\mathbf a^0,\mathbf b^0)} +\boldsymbol\chi^2 . +\] + +For implementation, first use §3.4 for +\(D\mathbf d,D^2\mathbf d\), then differentiate +\(\mathbf c=\mathbf d^0\times\mathbf d\), +\(s=\|\mathbf c\|\), \(c=\mathbf d^0\cdot\mathbf d\), and +\(\alpha=\operatorname{atan2}(s,c)\). The exact primitives are + +\[ +D\|\mathbf v\|[\mathbf p] +=\frac{\mathbf v\cdot\mathbf p}{\|\mathbf v\|}, +\] + +\[ +D^2\|\mathbf v\|[\mathbf p,\mathbf s] +=\frac{\mathbf p\cdot\mathbf s}{\|\mathbf v\|} +-\frac{(\mathbf v\cdot\mathbf p)(\mathbf v\cdot\mathbf s)} +{\|\mathbf v\|^3}, +\] + +\[ +D\operatorname{atan2}(y,x)[p] +=\frac{x\,Dy[p]-y\,Dx[p]}{x^2+y^2}, +\] + +with the direct derivative of this last expression for the mixed second variation. +The analytic \(s\rightarrow0,c\rightarrow1\) series must be used; neither first nor +second derivative may be obtained by normalizing a zero cross product. + +At the undeformed state, + +\[ +\boxed{ +\mathbf A_0=\mathbf T_p,} +\] + +where \(\mathbf T_p\) is the approved linear 20-by-24 physical transform, and + +\[ +D\boldsymbol\chi_I^2[\delta\boldsymbol\phi_I] += +\begin{bmatrix} +(\mathbf a_I^0)^T\\ +(\mathbf b_I^0)^T +\end{bmatrix} +\delta\boldsymbol\phi_I . +\] + +The matrices \(\mathbf H_a^\Phi\) are generally nonzero away from the linear state. +They are required in the global tangent. + +### 7.4 First and second strain variations + +For a physical coordinate \(q_{20,A}\), define + +\[ +\mathbf h_A=\frac{\partial\mathbf x}{\partial q_{20,A}}, +\qquad +\mathbf h_{AB}= +\frac{\partial^2\mathbf x} +{\partial q_{20,A}\partial q_{20,B}}. +\] + +Then + +\[ +\boxed{ +E_{\alpha\beta,A} +=\frac12( +\mathbf h_{A,\alpha}\cdot\mathbf g_\beta+ +\mathbf g_\alpha\cdot\mathbf h_{A,\beta}),} +\] + +\[ +\boxed{ +\begin{aligned} +E_{\alpha\beta,AB} +=\frac12(& +\mathbf h_{AB,\alpha}\cdot\mathbf g_\beta+ +\mathbf g_\alpha\cdot\mathbf h_{AB,\beta}\\ +&+\mathbf h_{A,\alpha}\cdot\mathbf h_{B,\beta} ++\mathbf h_{B,\alpha}\cdot\mathbf h_{A,\beta}). +\end{aligned}} +\] + +Director-coordinate blocks retain the exact first and second derivative of +\(\exp([\boldsymbol\chi]_\times)\mathbf d^0\). Translation-translation +\(\mathbf h_{AB}\) is zero, but the quadratic gradient products remain and generate +stress-dependent geometric stiffness. + +## 8. MITC4 Tying and Local Engineering Measures + +### 8.1 Tying locations + +\[ +T_{\xi-}=(0,-1,0),\quad +T_{\xi+}=(0,+1,0),\quad +T_{\eta-}=(-1,0,0),\quad +T_{\eta+}=(+1,0,0). +\] + +The first pair supplies \(E_{\xi\zeta}\) and the second pair supplies +\(E_{\eta\zeta}\). + +### 8.2 Nonlinear assumed shear + +\[ +\boxed{ +\overline E_{\xi\zeta}(\xi,\eta) +=\frac{1-\eta}{2}E_{\xi\zeta}^{DI}(T_{\xi-}) ++\frac{1+\eta}{2}E_{\xi\zeta}^{DI}(T_{\xi+}),} +\] + +\[ +\boxed{ +\overline E_{\eta\zeta}(\xi,\eta) +=\frac{1-\xi}{2}E_{\eta\zeta}^{DI}(T_{\eta-}) ++\frac{1+\xi}{2}E_{\eta\zeta}^{DI}(T_{\eta+}).} +\] + +All in-plane components remain direct. The same linear projection operator is +applied to the strain and both variations: + +\[ +\overline{\mathbf E}=\mathcal P_{MITC}\mathbf E,\qquad +D\overline{\mathbf E}=\mathcal P_{MITC}D\mathbf E,\qquad +D^2\overline{\mathbf E}=\mathcal P_{MITC}D^2\mathbf E . +\] + +Tying geometry/directors and the trial identity must be identical for residual and +tangent. Direct shear in any one of the three is prohibited. + +### 8.3 Fixed reference local frame + +At each reference midsurface location, construct the approved initial frame +\((\mathbf e_1^0,\mathbf e_2^0,\mathbf e_3^0)\). Transform the assumed tensor into +that frame and define + +\[ +\boxed{ +\overline{\mathbf e}= +\begin{bmatrix} +E_{11}&E_{22}&2E_{12}&2E_{13}&2E_{23} +\end{bmatrix}^{T}.} +\] + +Let + +\[ +\mathbf B_A=\frac{\partial\overline{\mathbf e}} +{\partial q_{20,A}}\in\mathbb R^5,\qquad +\mathbf G_{AB}= +\frac{\partial^2\overline{\mathbf e}} +{\partial q_{20,A}\partial q_{20,B}}\in\mathbb R^5 . +\] + +The fixed frame has no trial derivative. A rotating recovery frame, if ever +defined downstream, cannot be substituted into this constitutive calculation. + +## 9. Constitutive Contract + +Let + +\[ +G=\frac{E}{2(1+\nu)},\qquad +\kappa_s=\frac56, +\] + +\[ +\mathbf C_{ps}= +\frac{E}{1-\nu^2} +\begin{bmatrix} +1&\nu&0\\ +\nu&1&0\\ +0&0&(1-\nu)/2 +\end{bmatrix}, +\] + +\[ +\boxed{ +\mathbf C_5= +\begin{bmatrix} +\mathbf C_{ps}&\mathbf0\\ +\mathbf0&\kappa_sG\mathbf I_2 +\end{bmatrix}.} +\] + +The second Piola–Kirchhoff engineering stress vector is + +\[ +\boxed{ +\mathbf s= +\begin{bmatrix} +S_{11}&S_{22}&S_{12}&S_{13}&S_{23} +\end{bmatrix}^{T} +=\mathbf C_5\overline{\mathbf e}.} +\] + +\(\mathbf C_T=\mathbf C_5\) is constant, symmetric and positive definite for the +approved material range. This is a St. Venant–Kirchhoff-type shell restriction: +material response is linear in Green–Lagrange strain and is not evidence for large +material strain validity. There are no constitutive updates or state variables. + +## 10. Objective Numerical Drilling Contract + +### 10.1 Element corotation + +At the element center, form + +\[ +\mathbf J_0^c= +\begin{bmatrix}\mathbf G_\xi&\mathbf G_\eta&\mathbf G_\zeta\end{bmatrix}_{(0,0,0)}, +\qquad +\mathbf j^c= +\begin{bmatrix}\mathbf g_\xi&\mathbf g_\eta&\mathbf g_\zeta\end{bmatrix}_{(0,0,0)}, +\] + +\[ +\mathbf F_c=\mathbf j^c(\mathbf J_0^c)^{-1}. +\] + +Require finite \(\det\mathbf F_c>0\). Its right polar decomposition is + +\[ +\mathbf F_c=\mathbf R_e\mathbf U_e,\qquad +\mathbf R_e\in SO(3),\quad +\mathbf U_e=(\mathbf F_c^T\mathbf F_c)^{1/2}\succ0 . +\] + +For a superposed rigid motion, +\(\mathbf F_c^+=\mathbf R\mathbf F_c\) and +\(\mathbf R_e^+=\mathbf R\mathbf R_e\). + +### 10.2 Objective drill angle + +The nodal total triad rotation is + +\[ +\mathbf R_I=\mathbf Q_I(\mathbf Q_I^0)^T . +\] + +Remove the element corotation: + +\[ +\mathbf C_{eI}=\mathbf R_e^T\mathbf R_I. +\] + +Let \(\mathbf y_{eI}=\mathbf C_{eI}\mathbf d_I^0\). Construct the minimal swing +\(\mathbf S_{eI}\) that maps \(\mathbf d_I^0\) to \(\mathbf y_{eI}\) using the +same swing formula as §7.2, and define + +\[ +\mathbf T_{eI}=\mathbf S_{eI}^T\mathbf C_{eI}. +\] + +\(\mathbf T_{eI}\mathbf d_I^0=\mathbf d_I^0\), so it is a twist about the initial +director. With \(\operatorname{vex}([\mathbf v]_\times)=\mathbf v\), + +\[ +s_{\gamma,I}= +\frac12\mathbf d_I^0\cdot +\operatorname{vex}(\mathbf T_{eI}-\mathbf T_{eI}^T), +\qquad +c_{\gamma,I}=\frac{\operatorname{tr}\mathbf T_{eI}-1}{2}, +\] + +\[ +\boxed{ +\gamma_{eI}=\operatorname{atan2}(s_{\gamma,I},c_{\gamma,I}).} +\] + +The vector +\(\boldsymbol\gamma_e=[\gamma_{e1},\ldots,\gamma_{e4}]^T\in\mathbb R^4\) +contains numerical coordinates only. Antipodal swing or the non-unique twist +branch at \(\pm\pi\) fails closed. + +For +\(\mathbf x=\mathbf R\mathbf X+\mathbf c\) and +\(\mathbf Q_I=\mathbf R\mathbf Q_I^0\), +\(\mathbf R_e=\mathbf R\), \(\mathbf C_{eI}=\mathbf I\), and +\(\boldsymbol\gamma_e=\mathbf0\). Therefore finite rigid motion creates no +drilling energy. + +### 10.3 Fixed scale and potential + +Compute the approved linear physical +\(\mathbf K_{20}^0\) once from the initial reference element. Let +\(\mathcal R_+\) contain only its eight finite positive director-tangent rotational +diagonals. Require \(\mathcal R_+\ne\varnothing\), then fix + +\[ +\boxed{ +k_{ref,e}=\min\mathcal R_+,\qquad +k_{d,e}=10^{-3}k_{ref,e}.} +\] + +\(k_{d,e}\) has force-length units and remains immutable for all increments and +iterations. It is not recomputed from a trial or committed tangent, so its residual +and Hessian have no hidden scale derivative. + +\[ +\boxed{ +\Pi_{drill}^e=\frac12 k_{d,e} +\boldsymbol\gamma_e^T\boldsymbol\gamma_e.} +\] + +It is not physical shell strain energy and creates no physical strain, stress, +resultant, or drilling output. + +### 10.4 Exact drill residual and Hessian + +Define + +\[ +\mathbf D_\gamma= +D\boldsymbol\gamma_e\in\mathbb R^{4\times24}, +\qquad +\mathbf H_I^\gamma=D^2\gamma_{eI}\in\mathbb R^{24\times24}. +\] + +Then + +\[ +\boxed{ +\mathbf r_{drill}^e +=k_{d,e}\mathbf D_\gamma^T\boldsymbol\gamma_e,} +\] + +\[ +\boxed{ +\mathbf K_{drill}^e +=k_{d,e}\left( +\mathbf D_\gamma^T\mathbf D_\gamma+ +\sum_{I=1}^4\gamma_{eI}\mathbf H_I^\gamma\right).} +\] + +Both derivatives include \(\mathbf R_e\), nodal exponential maps, swing removal and +atan2. A frozen-frame or secant drill tangent is prohibited. + +For exact polar derivatives, write +\(\delta\mathbf F=\mathbf R_e\mathbf A\), +\(\delta\mathbf R_e=\mathbf R_e\boldsymbol\Omega\), where +\(\boldsymbol\Omega^T=-\boldsymbol\Omega\). Solve + +\[ +\boxed{ +\boldsymbol\Omega\mathbf U_e+\mathbf U_e\boldsymbol\Omega +=\mathbf A-\mathbf A^T,} +\] + +and set +\(\delta\mathbf U_e=\mathbf A-\boldsymbol\Omega\mathbf U_e\). +For mixed directions \(p,s\), define + +\[ +\mathbf A_p=\mathbf R_e^T\mathbf F_{c,p},\qquad +\mathbf A_{p,s}=-\boldsymbol\Omega_s\mathbf A_p+ +\mathbf R_e^T\mathbf F_{c,ps}, +\] + +and differentiate this Sylvester equation: + +\[ +\boldsymbol\Omega_{ps}\mathbf U_e+ +\mathbf U_e\boldsymbol\Omega_{ps} +=\mathbf A_{p,s}-\mathbf A_{p,s}^T +-\boldsymbol\Omega_p\mathbf U_{e,s} +-\mathbf U_{e,s}\boldsymbol\Omega_p , +\] + +\[ +\mathbf R_{e,ps} +=\mathbf R_e(\boldsymbol\Omega_s\boldsymbol\Omega_p+ +\boldsymbol\Omega_{ps}). +\] + +The exchange \(p\leftrightarrow s\) must agree. Applying the norm, swing and atan2 +derivative primitives from §7.3 completes exact +\(\mathbf D_\gamma,\mathbf H_I^\gamma\). + +At the initial state, a pure nodal drill direction +\(\delta\boldsymbol\phi_I=\gamma_I\mathbf d_I^0\), with zero translations and +zero physical swing, gives the approved \(k_{d,e}\mathbf I_4\) action. General +deformation also contains the objective corotation coupling required to preserve +the six physical rigid modes. + +## 11. Element Residual and Same-Trial Tangent + +### 11.1 Physical 20-coordinate equations + +\[ +\Pi_{phys}^e +=\frac12\int_{\Omega_0^e} +\overline{\mathbf e}^T\mathbf C_5\overline{\mathbf e}\,dV_0. +\] + +The physical residual and tangent are + +\[ +\boxed{ +r_{20,A}^{phys} +=\int_{\Omega_0^e}\mathbf B_A^T\mathbf s\,dV_0,} +\] + +\[ +\boxed{ +K_{20,AB}^{mat} +=\int_{\Omega_0^e} +\mathbf B_A^T\mathbf C_5\mathbf B_B\,dV_0,} +\] + +\[ +\boxed{ +K_{20,AB}^{geo} +=\int_{\Omega_0^e} +\mathbf s^T\mathbf G_{AB}\,dV_0,} +\] + +\[ +\mathbf r_{20}^{phys}\in\mathbb R^{20},\qquad +\mathbf K_{20}^{phys} +=\mathbf K_{20}^{mat}+\mathbf K_{20}^{geo} +\in\mathbb R^{20\times20}. +\] + +The geometric term includes the exact director Hessian and the quadratic +Green–Lagrange terms. It is not a separately guessed initial-stress matrix. + +### 11.2 Fixed-spatial nodal load in physical coordinates + +In the element equations below, +\(\mathbf F_I^\star,\mathbf M_{I,src}^\star\) denote a deterministic +source-ordered element load share whose incident-element sum is the single +aggregated nodal CLOAD. Equivalently the identical nodal contribution may be +assembled once outside element kernels. It must never be copied in full to every +incident element. Define the per-unit-load-factor effective physical covector + +\[ +\mathbf M_{I,phys}^\star(\mathbf q) +:=\mathbf P_I(\mathbf q)\mathbf M_{I,src}^\star, +\qquad +\mathbf M_{I,phys}(\mathbf q;\lambda) +=\lambda\mathbf M_{I,phys}^\star(\mathbf q). +\] + +For nodal physical swing coordinates +\(\chi_{I,a}^2,\ a\in\{1,2\}\), define + +\[ +\mathbf L_{I,a} +=\mathbf d_I\times +\frac{\partial\mathbf d_I}{\partial\chi_{I,a}^2} +\in\mathbb R^3, +\qquad +m_{I,a}^{20} +=\mathbf M_{I,phys}^\star\cdot\mathbf L_{I,a} +=\mathbf M_{I,src}^\star\cdot\mathbf L_{I,a}. +\] + +Insert these two entries per node, and zeros in translation positions, into +\(\mathbf m_{20}^{M}(\mathbf q_{20})\in\mathbb R^{20}\). +Since \(\mathbf d_I\cdot\mathbf L_{I,a}=0\), the two displayed forms of +\(m_{I,a}^{20}\) are exactly identical even when the admitted source has a small +director component. Its exact physical-chart derivative is + +\[ +\begin{aligned} +K_{I,ab}^{M,20} +&=\frac{\partial\mathbf M_{I,phys}^\star} +{\partial\chi_{I,b}^2}\cdot\mathbf L_{I,a} ++\mathbf M_{I,phys}^\star\cdot +\frac{\partial\mathbf L_{I,a}}{\partial\chi_{I,b}^2}\\ +&=\mathbf M_{I,src}^\star\cdot\left( +\frac{\partial\mathbf d_I}{\partial\chi_{I,b}^2} +\times +\frac{\partial\mathbf d_I}{\partial\chi_{I,a}^2} ++ +\mathbf d_I\times +\frac{\partial^2\mathbf d_I} +{\partial\chi_{I,a}^2\partial\chi_{I,b}^2} +\right). +\end{aligned} +\] + +The first line explicitly contains +\(\partial\mathbf M_{I,phys}^\star/\partial\chi_{I,b}^2 +=(\partial\mathbf P_I/\partial\chi_{I,b}^2) +\mathbf M_{I,src}^\star\). The second line is the algebraically identical +immutable-source form obtained by differentiating +\(\mathbf M_{I,src}^\star\cdot\mathbf L_{I,a}\); therefore the projector derivative +must not be dropped when the first form is used. + +All cross-node and translation derivatives are zero. In general +\(\mathbf K_{20}^{M}\) need not be symmetric; this is the exact derivative of a +constant-spatial source-moment work one-form restricted to physical swing space. + +Let +\(\mathbf f_{24}^{F,\star}\in\mathbb R^{24}\) be the translational dead-force +selection vector. The element external generalized vector and its exact derivative +are + +\[ +\boxed{ +\mathbf f_{ext}^e +=\lambda\left( +\mathbf f_{24}^{F,\star} ++\mathbf A^T\mathbf m_{20}^{M}\right),} +\] + +\[ +\boxed{ +\mathbf K_{ext}^{M,e} +=\lambda\left[ +\mathbf A^T\mathbf K_{20}^{M}\mathbf A ++\sum_{a=1}^{20}m_{20,a}^{M}\mathbf H_a^\Phi +\right].} +\] + +As an independent exact global-coordinate identity, the per-unit-load-factor nodal +rotational block is + +\[ +\mathbf f_{\phi,I}^{M,\star} +=\mathbf J_l(\boldsymbol\phi_I)^T +\mathbf P_I\mathbf M_{I,src}^\star +=\mathbf J_l(\boldsymbol\phi_I)^T\mathbf M_{I,phys}^\star, +\qquad +\mathbf P_I=\mathbf I-\mathbf d_I\mathbf d_I^T, +\] + +\[ +D\mathbf f_{\phi,I}^{M,\star}[\mathbf p] +=D\mathbf J_l(\boldsymbol\phi_I)[\mathbf p]^T +\mathbf P_I\mathbf M_{I,src}^\star ++\mathbf J_l(\boldsymbol\phi_I)^T +D\mathbf P_I[\mathbf p]\mathbf M_{I,src}^\star, +\] + +\[ +D\mathbf P_I[\mathbf p] +=-\left( +D\mathbf d_I[\mathbf p]\mathbf d_I^T+ +\mathbf d_I D\mathbf d_I[\mathbf p]^T\right). +\] + +Let \(\mathbf f_{24}^{M,\star}\) contain these four nodal rotational blocks and +zero translation blocks. Virtual-work covariance of the exact map gives + +\[ +\boxed{ +\mathbf A^T\mathbf m_{20}^{M}=\mathbf f_{24}^{M,\star}, +\qquad +D(\mathbf A^T\mathbf m_{20}^{M})[\mathbf p] +=\left(\mathbf A^T\mathbf K_{20}^{M}\mathbf A ++\sum_{a=1}^{20}m_{20,a}^{M}\mathbf H_a^\Phi\right)\mathbf p +=D\mathbf f_{24}^{M,\star}[\mathbf p].} +\] + +Thus the physical-chart and global-coordinate forms are the same residual +covector and the same derivative of the §5 work one-form. Both include the +projector derivative; neither changes the immutable source identity nor creates +follower-load direction updates or a drilling load channel. + +### 11.3 Complete 24-coordinate equations + +The element residual is + +\[ +\boxed{ +\mathbf r_e= +\mathbf A^T\mathbf r_{20}^{phys} ++\mathbf r_{drill}^e +-\lambda\left( +\mathbf f_{24}^{F,\star} ++\mathbf A^T\mathbf m_{20}^{M}\right) +\in\mathbb R^{24}.} +\] + +The exact same-trial algorithmic tangent is + +\[ +\boxed{ +\begin{aligned} +\mathbf K_{T,e} +=&\ \mathbf A^T\mathbf K_{20}^{phys}\mathbf A\\ +&+\sum_{a=1}^{20}r_{20,a}^{phys}\mathbf H_a^\Phi ++\mathbf K_{drill}^e\\ +&-\lambda\left[ +\mathbf A^T\mathbf K_{20}^{M}\mathbf A ++\sum_{a=1}^{20}m_{20,a}^{M}\mathbf H_a^\Phi +\right] +\in\mathbb R^{24\times24}. +\end{aligned}} +\] + +The first line contains mapped material and Green–Lagrange geometric terms. The +second line contains physical coordinate-map curvature and the objective drill +gradient/Hessian. The last two lines are the complete fixed-spatial source-moment +work-conjugacy derivative, including the effective-work projector derivative, +rotation-coordinate derivative and map-Hessian term. Fixed-global nodal force has +no configuration derivative. + +No term may be evaluated from a committed or previous-iteration state while another +term uses the current trial. In particular, the following same-trial identities +are mandatory: + +\[ +\mathbf K_{T,e}=D\mathbf r_e,\qquad +\mathbf K_T=D\mathbf r,\qquad +\mathbf r=\sum_e\mathcal A_e^T\mathbf r_e . +\] + +### 11.4 Global equations and reactions + +Assemble element contributions and nodal load shares in stable source order: + +\[ +\mathbf r(\mathbf q;\lambda) +=\mathbf f_{int}(\mathbf q) +-\mathbf f_{ext}(\mathbf q;\lambda), +\qquad +\mathbf K_T=D_{\mathbf q}\mathbf r. +\] + +At a trial that satisfies its prescribed coordinates, Full Newton on free +coordinates is + +\[ +\boxed{ +\mathbf K_{ff}^{(k)}\Delta\mathbf q_f^{(k)} +=-\mathbf r_f^{(k)},\qquad +\Delta\mathbf q_c^{(k)}=\mathbf0.} +\] + +The tangent is freshly factorized and solved once for every entered iteration. +A valid \(0\times0\) free system is a trivial solve, not singular. + +The full residual is preserved. Its constrained entries are generalized reactions +conjugate to global \((\mathbf u,\boldsymbol\phi)\); free entries are equilibrium +evidence. Translation entries are spatial forces. For balance or global physical +moment reporting, convert a rotational generalized covector by + +\[ +\boxed{ +\mathbf m_{sp,I} +=\mathbf J_l(\boldsymbol\phi_I)^{-T}\mathbf r_{\phi,I}.} +\] + +This conversion is applied consistently to internal, external and reaction +covectors; it does not alter the Newton equations. + +## 12. Mapping and Numerical Integration + +### 12.1 Reference Jacobian and derivative transformation + +\[ +\mathbf J_0= +\begin{bmatrix}\mathbf G_\xi&\mathbf G_\eta&\mathbf G_\zeta\end{bmatrix}, +\qquad +J_0=\det\mathbf J_0, +\] + +\[ +dV_0=J_0\,d\xi\,d\eta\,d\zeta,\qquad +\nabla_0(\cdot)=(\cdot)_{,\alpha}\otimes\mathbf G^\alpha . +\] + +Every derivative transformation uses the inverse/contravariant basis of this fixed +reference Jacobian. The current mapping + +\[ +\mathbf j= +\begin{bmatrix}\mathbf g_\xi&\mathbf g_\eta&\mathbf g_\zeta\end{bmatrix}, +\qquad j=\det\mathbf j +\] + +is not the integration measure but must remain finite and positive to exclude local +inversion. + +### 12.2 Required validation locations + +Validate finite data, nonzero surface area, finite \(J_0>0\), and finite +\(j>0\) at: + +- all eight volume integration points; +- all four midsurface MITC tying points; +- the element center used by drilling corotation; +- every bottom/middle/top recovery point before commit. + +Also require finite reciprocal bases, nonzero interpolated director, valid fixed +local frame, \(\det\mathbf F_c>0\), SPD polar stretch, valid swing/twist branches, +and \(Q^TQ=I,\det Q=+1\). A failed point is not omitted, averaged, clamped, or +replaced. + +### 12.3 Quadrature + +Use tensor-product Gauss points + +\[ +\xi,\eta,\zeta\in +\left\{-\frac1{\sqrt3},+\frac1{\sqrt3}\right\},\qquad +w_\xi=w_\eta=w_\zeta=1. +\] + +Thus each element uses four midsurface by two thickness points, eight volume +evaluations. The following are integrated at all eight points with the same +reference \(J_0w\): + +- physical internal residual; +- material tangent; +- geometric tangent; +- physical strain-energy and physical recovery thickness moments. + +The MITC tying values are evaluated at the four \(\zeta=0\) tying locations and +used for both thickness points. The objective drill potential is an element-level +four-coordinate numerical term and is not multiplied by volume quadrature. + +S4 and S4R use this identical rule. One-point integration, reduced/selective +integration, source-selected hourglass behavior, and higher-order production +quadrature are prohibited. + +## 13. Output Recovery + +Only accepted committed states are recoverable authoritative frames. No trial +Newton state is an authoritative result. + +### 13.1 Nodal kinematics and reactions + +At each source node: + +- displacement \([U1,U2,U3]=\mathbf u_I\), global, length; +- rotation \([UR1,UR2,UR3]=\boldsymbol\phi_I\), fixed-initial global rotation-vector + components, dimensionless; +- committed \(\mathbf Q_I\in SO(3)\) and \(\mathbf d_I=\mathbf Q_I\mathbf e_3\) as + the kinematic state identity; +- translation reaction from constrained full residual entries, global force; +- rotational generalized reaction and its spatial conversion from §11.4, + force-length. + +For unambiguous recovery, let +\(\mathbf C_{u,I},\mathbf C_{\phi,I}\in\mathbb R^{3\times3}\) be diagonal +selectors with one on a prescribed global component and zero otherwise. With the +accepted full-residual blocks +\(\mathbf r_{u,I},\mathbf r_{\phi,I}\in\mathbb R^3\), define + +\[ +\boxed{ +\mathbf F_I^{react}:=\mathbf C_{u,I}\mathbf r_{u,I} +\in\mathbb R^3, +\qquad +\mathbf m_{\phi,I}^{react}:=\mathbf C_{\phi,I}\mathbf r_{\phi,I} +\in\mathbb R^3,} +\] + +\[ +\boxed{ +\mathbf M_I^{react} +:=\mathbf J_l(\boldsymbol\phi_I)^{-T}\mathbf m_{\phi,I}^{react} +\in\mathbb R^3.} +\] + +\(\mathbf F_I^{react}\) has force units and is work-conjugate to +\(\delta\mathbf u_I\). The generalized covector +\(\mathbf m_{\phi,I}^{react}\) and spatial reaction moment +\(\mathbf M_I^{react}\) have force-length units and satisfy +\(\mathbf m_{\phi,I}^{react}\cdot\delta\boldsymbol\phi_I +=\mathbf M_I^{react}\cdot\delta\boldsymbol\vartheta_I\). +Unselected free residual components remain equilibrium evidence and are not +relabelled as reactions. The symbol \(\mathbf R_I\) remains reserved exclusively +for the rotation matrix defined in §§3.2 and 10.2. + +Exact HDF5 projection is I/O Definition ownership. This section fixes the quantity, +coordinate and unit meaning only. + +### 13.2 Integration-point physical strain and stress + +At each four midsurface Gauss locations and both thickness Gauss points recover +\(\overline{\mathbf e}\) and \(\mathbf s\) from the exact accepted state, same +MITC tying, fixed reference frame and material used by residual/tangent. + +Generalized strains are thickness moments: + +\[ +\boldsymbol\epsilon_0 +=\frac1t\int_{-t/2}^{t/2} +\begin{bmatrix}E_{11}&E_{22}&2E_{12}\end{bmatrix}^T dz, +\] + +\[ +\boldsymbol\kappa +=\frac{12}{t^3}\int_{-t/2}^{t/2} +z\begin{bmatrix}E_{11}&E_{22}&2E_{12}\end{bmatrix}^T dz, +\] + +\[ +\boldsymbol\gamma_0 +=\frac1t\int_{-t/2}^{t/2} +\begin{bmatrix}2E_{13}&2E_{23}\end{bmatrix}^T dz . +\] + +Their order is + +\[ +[E11,E22,G12,K11,K22,K12,G13,G23]. +\] + +Membrane/shear strain is dimensionless and curvature has \(1/\text{length}\). + +### 13.3 Section resultants and stresses + +\[ +\mathbf N=\int_{-t/2}^{t/2} +\begin{bmatrix}S_{11}&S_{22}&S_{12}\end{bmatrix}^T dz, +\] + +\[ +\mathbf M=\int_{-t/2}^{t/2} +z\begin{bmatrix}S_{11}&S_{22}&S_{12}\end{bmatrix}^T dz, +\qquad +\mathbf Q_s=\int_{-t/2}^{t/2} +\begin{bmatrix}S_{13}&S_{23}\end{bmatrix}^T dz . +\] + +The order remains + +\[ +[N11,N22,N12,M11,M22,M12,Q13,Q23]. +\] + +\(\mathbf N,\mathbf Q_s\) have force/length units and \(\mathbf M\) has force +units. Positive \(z\) and positive bending sign are the approved linear convention. +At \(z=-t/2,0,+t/2\), recover only \([S11,S22,S12]\) as direct evaluations. +\(S_{33}=0\) is documented but not emitted. + +There is no nodal extrapolation/averaging and no numerical drill stress, resultant, +energy ratio, or output. Exact element, natural-coordinate, thickness-position, +frame and source identity remain attached to every physical row. + +### 13.4 Equilibrium identities + +At an accepted state, + +\[ +\mathbf r_f=\mathbf0 +\] + +in the exact equation; numerical acceptance tolerance is downstream. Define the +applied physical load resultants at the accepted state by + +\[ +\mathbf F_I^{appl}(\lambda):=\lambda\mathbf F_I^\star +\in\mathbb R^3, +\qquad +\mathbf M_I^{appl}(\mathbf q;\lambda) +:=\mathbf M_{I,phys}(\mathbf q;\lambda) +=\lambda\mathbf P_I\mathbf M_{I,src}^\star +\in\mathbb R^3. +\] + +Here \(\mathbf F_I^{appl}\) has force units and +\(\mathbf M_I^{appl}\) has force-length units. For a fixed global origin +\(\mathbf X_o\), physical resultant evidence uses current nodal positions +\(\mathbf x_I=\mathbf X_I+\mathbf u_I\): + +\[ +\boxed{ +\mathbf e_F +=\sum_I(\mathbf F_I^{appl}+\mathbf F_I^{react}) +\in\mathbb R^3\ \text{[force]},} +\] + +\[ +\boxed{ +\mathbf e_M=\sum_I[ +(\mathbf x_I-\mathbf X_o)\times +(\mathbf F_I^{appl}+\mathbf F_I^{react}) ++\mathbf M_I^{appl}+\mathbf M_I^{react}] +\in\mathbb R^3\ \text{[force-length]}.} +\] + +The balance uses the exact effective physical-work moment, while the immutable +source \(\mathbf M_{I,src}^\star\) remains unchanged for source identity and the +fixed-global load path. Its removed director component is neither a physical +balance contribution nor a numerical drill load. +The objective drilling potential contributes self-equilibrated nodal forces/moments +and is included in full residual reactions; it has no separate physical output. +Balance acceptance tolerance is owned by Numerical Review. + +## 14. Newton and State Algorithm Pseudocode + +~~~text +preprocess in stable source order: + validate source S4/S4R mapping, material, section, node order and initial geometry + construct approved initial nodal triads Q0 and directors d0 + aggregate immutable fixed-global nodal CLOAD sources and validate initial moment rho_M + validate all reference Gauss/tying/center/recovery mappings + compute initial linear physical K20_0 for each element + select k_ref from finite positive physical tangent-rotation diagonals + freeze k_d = 1e-3 * k_ref for the entire analysis + +initialize: + committed = exact step-start state at factor 0 + intended factors follow the approved fixed increment and final shortening + +for each intended factor lambda in deterministic order: + trial = deep copy(committed) + set every constrained translation and rotation coordinate to its absolute path value + keep the preceding committed free coordinates as the initial free guess + + for iteration k = 1..100: + derive every Q = Exp(phi^) * Q0 and d = Q * e3 from this trial + validate finite state, principal charts, current geometry and source-moment rho_M + + for each element in stable source order: + evaluate one trial identity at all Gauss/tying/center locations + form MITC Green-Lagrange strain and exact first/second variations + form r20_phys, K20_mat and K20_geo + form exact Phi Jacobian A and all map Hessians H_Phi + form polar corotation, objective gamma, D_gamma and H_gamma + form r_drill and exact K_drill + form fixed-force and projected physical-moment work plus exact P/J_l/A derivatives + form complete r_e and K_T_e from §11.3 + + deterministically assemble full r and K_T + restrict to the stable free coordinate order + freshly factorize K_ff for this iteration + solve K_ff * Delta_q_f = -r_f; set Delta_q_c = 0 + reject any nonfinite residual, tangent, factorization or correction + + evaluate all four inclusive convergence gates from: + current same-trial free residual, internal force and external force + fresh same-iteration free correction + current trial incremental solution relative to step-start committed state + emit exactly one deterministic diagnostic summary for entered iteration k + + if all four gates pass: + recover all physical rows from this unchanged current trial + validate complete finite candidate and state/output identities + atomically commit displacement, phi, Q, d, factor, forces, reaction and rows + create exactly one accepted-frame candidate identity + exit the iteration loop + + if k == 100: + discard trial and fail without iteration 101, cutback or retry + + apply the complete fresh correction unchanged: + u <- u + Delta_u + phi <- phi + Delta_phi + Q_new <- Exp((phi_new)^) * Q0 = Delta_R * Q_old + continue with a new same-trial evaluation + +on any increment/recovery/output failure: + discard the complete trial/candidate + preserve prior committed state and prior authoritative final result + perform no replacement increment or hidden solver fallback +~~~ + +### 14.1 Four convergence channels + +Let free translation and rotation-coordinate subvectors carry superscripts \(u\) +and \(\phi\). Residual channels use + +\[ +\eta_R^u= +\frac{\|\mathbf r_f^u\|_\infty} +{\max(\|\mathbf f_{int,f}^u\|_\infty, +\|\mathbf f_{ext,f}^u\|_\infty)}, +\] + +\[ +\eta_R^\phi= +\frac{\|\mathbf r_f^\phi\|_\infty} +{\max(\|\mathbf f_{int,f}^\phi\|_\infty, +\|\mathbf f_{ext,f}^\phi\|_\infty)} +\] + +when the matching denominator is nonzero. They pass iff +\(\eta_R^u\le10^{-2}\) and \(\eta_R^\phi\le10^{-2}\). +An exact-zero denominator instead passes iff the numerator is at most +\(10^{-3}\) model-consistent force or \(10^{-3}\) model-consistent force-length. + +Let + +\[ +\Delta\mathbf q_{inc} +=\mathbf q_{trial}-\mathbf q_{step-start}. +\] + +Correction channels use + +\[ +\eta_\Delta^u= +\frac{\|\Delta\mathbf u_f\|_\infty} +{\|\Delta\mathbf u_{inc,f}\|_\infty}, +\qquad +\eta_\Delta^\phi= +\frac{\|\Delta\boldsymbol\phi_f\|_\infty} +{\|\Delta\boldsymbol\phi_{inc,f}\|_\infty} +\] + +for nonzero denominators and pass iff each is \(\le10^{-2}\). An exact-zero +denominator instead passes iff the fresh numerator is at most \(10^{-3}\) length +or \(10^{-3}\) dimensionless rotation. Empty free channels have exact-zero +numerator/denominator and pass their typed zero-scale rule. + +All four gates are combined by logical AND. Constrained coordinates are excluded. +These are approved solver-convergence values, not external-reference tolerances. + +## 15. Verification Identities + +The following are formulation identities whose numerical norms/tolerances are set +by Numerical Review. + +### 15.1 Linear limit + +At \(\mathbf q=\mathbf0\), stress-free reference: + +\[ +\mathbf A_0=\mathbf T_p,\qquad +\mathbf r_{20}^{phys}=\mathbf0,\qquad +\mathbf K_{20}^{geo}=\mathbf0, +\] + +\[ +\mathbf K_{phys}^{24} +=\mathbf T_p^T\mathbf K_{20}^{linear}\mathbf T_p. +\] + +The nonlinear Green–Lagrange/MITC physical strain, stress, resultants and recovery +reduce to the approved linear MITC4 signs, component orders and 2 x 2 x 2 rule. +A pure drill basis reduces to \(k_d\mathbf I_4\). Objective corotation adds only +the coupling required to make finite rigid motion drill-free and contributes +neither physical recovery nor stress. + +### 15.2 Objectivity and six rigid modes + +For any \(\mathbf R\in SO(3)\), \(\mathbf c\in\mathbb R^3\), + +\[ +\mathbf x^+=\mathbf R\mathbf x+\mathbf c,\qquad +\mathbf Q_I^+=\mathbf R\mathbf Q_I +\] + +implies + +\[ +\overline{\mathbf E}^+=\overline{\mathbf E},\quad +\Pi_{phys}^+=\Pi_{phys},\quad +\boldsymbol\gamma_e^+=\boldsymbol\gamma_e,\quad +\Pi_{drill}^+=\Pi_{drill}. +\] + +At a stress-free reference with no loads, three translations and three proper +rigid rotations produce zero residual and zero energy. After objective drill +regularization, an isolated valid element has exactly these six physical rigid +modes; pure numerical drill is not an additional zero mode. + +### 15.3 Tangent consistency + +For a finite valid trial and deterministic direction \(\mathbf p\), + +\[ +\boxed{ +\mathbf K_T(\mathbf q)\mathbf p +=D\mathbf r(\mathbf q)[\mathbf p].} +\] + +The directional comparison must exercise separately and together: + +- material term; +- Green–Lagrange geometric term; +- \(\mathbf A^T\mathbf K_{20}\mathbf A\); +- \(\sum r_{20,a}\mathbf H_a^\Phi\); +- fixed-spatial source-moment projector, rotation-coordinate and map-Hessian terms; +- objective drill gradient and exact Hessian. + +The two perturbed states share the same fixed reference, load factor and committed +base. Perturbation schedule and tolerance are Numerical Review ownership. + +### 15.4 Symmetry, equilibrium and state + +- With no applied nodal moment, the complete unreduced physical/drill tangent is + symmetric in exact arithmetic. With a fixed-spatial nodal moment, the exact + dead-moment work tangent is generally nonsymmetric and must not be symmetrized. +- Element and assembled internal actions satisfy virtual-work covariance under + stable scatter/assembly. +- Accepted free residual is equilibrium evidence; constrained full residual is + reaction. +- Global resultant force and moment identities in §13.4 include nodal couples and + current force arms. +- Every committed factor has one accepted frame; no failed trial changes the + preceding \(\mathbf u,\boldsymbol\phi,\mathbf Q,\mathbf d\), force, reaction or + recovery identity. + +### 15.5 Patch and recovery checks + +- partition of unity, Kronecker delta and derivative-sum identities; +- constant membrane, bending, shear and twist continuation from the linear limit; +- direct/tied shear component identity and sign; +- bottom/middle/top stress and section-resultant thickness-moment checks; +- regular, rigidly rotated and admissibly distorted patches; +- no physical strain/stress/resultant change from pure numerical drill; +- stable source, element, Gauss, section and component ordering. + +## 16. Numerical Risks + +| risk | consequence | formulation control / downstream evidence | +| --- | --- | --- | +| Rigid-body mode loss | artificial force/energy | objective physical and drill potentials; exactly six physical rigid modes | +| Patch-test failure | inconsistent interpolation/sign | direct membrane/bending plus identical MITC projection of strain and two variations | +| Tangent asymmetry/inconsistency | degraded or failed Full Newton | exact material, geometric, map, drill Hessians and exact dead-moment work derivative; directional derivative review | +| Indefinite tangent | valid near-buckling state or numerical failure | do not require positive definiteness globally; distinguish expected physical indefiniteness from singular/malformed tangent | +| Hourglass / zero-energy mode | singular element | no reduced integration; 2 x 2 x 2 full rule; objective drill removes only numerical drill modes | +| Transverse-shear locking | overly stiff thin response | canonical MITC tying; thickness/mesh characterization | +| Membrane locking | overly stiff curved/distorted original MITC4 | documented known limitation; do not claim MITC4+ performance | +| Volumetric locking | not applicable to approved plane-stress shell | no 3-D incompressible claim; material range remains \(\nu<0.5\) | +| Director/swing antipode | non-unique physical chart | fail closed at \(d^0\cdot d=-1\); no silent axis choice | +| Exponential/log branch | non-unique global UR target/state | principal \(\|\phi\|<\pi\); downstream branch tolerance | +| Drill twist branch | discontinuous numerical potential | fail closed at non-unique \(\pm\pi\) twist | +| Nonobjective drilling | artificial rigid energy | polar element corotation and exact potential Hessian | +| State-dependent drill scale | missing scale derivative/nondeterminism | freeze initial approved \(k_d\); no trial recomputation | +| Director-parallel applied moment | physical work mixed with drill | immutable-source current-trial fail-closed ratio; exact physical-work projection; no drill channel | +| Moment derivative omission | inconsistent residual/tangent | immutable \(M_{src}^\star\), exact projector/coordinate/map derivative, no follower direction | +| Reversed/singular Jacobian | invalid basis, sign or inverted shell | \(J_0>0\), \(j>0\), \(\det F_c>0\) at every required location | +| Distortion/warpage | conditioning and membrane locking | exact point inventory; no omitted/averaged failed location | +| Nonfinite trial | corrupted state/output | reject before solve acceptance or commit | +| Constraint/target confusion | wrong load path or reaction | absolute path applied before iteration; constrained Newton correction exactly zero | +| Mixed units in convergence | false pass/fail | force/moment and translation/rotation channels remain separate | +| Determinism loss | irreproducible reference/evidence | stable source order, local buffers, fixed reduction and diagnostic order | + +## 17. Requirement and Research Traceability + +| requirement / gap | formulation closure | +| --- | --- | +| FESA-REQ-NSNR-003 | §§2, 6–10: original-style MITC4, homogeneous isotropic materially linear TL shell | +| FESA-REQ-NSNR-041 | §§2, 6–9, 12: one fixed initial reference, Green–Lagrange / second-Piola pair | +| FESA-REQ-NSNR-074 | §3: 6 global DOF, dimensionless correction, committed/trial \(Q,d\), multiplicative update | +| FESA-REQ-NSNR-006 | §§11, 14: complete same-trial residual/tangent and fresh Full Newton solve | +| FESA-REQ-NSNR-007/069/070 | §14.1: four typed inclusive gates and constrained exclusion | +| FESA-REQ-NSNR-008/014 | §14: finite data, iterations 1..100, unchanged correction, no fallback | +| FESA-REQ-NSNR-046/048 | §§4, 14: one proportional factor and fixed-step lifecycle | +| FESA-REQ-NSNR-018 | §§4.4, 5, 11.2: immutable fixed-global source coefficients, exact tangent-space work covector/derivative and no follower direction | +| FESA-REQ-NSNR-063 | §§4.2–4.3: factor-one absolute target and zero constrained Newton correction | +| FESA-REQ-NSNR-011 | §§3.5, 14: separate trial and atomic complete commit/rollback | +| FESA-REQ-NSNR-019 | §§11.4, 13.1, 13.4, 14: deterministic full residual, dimensioned reaction covectors and force/moment balance | +| FESA-REQ-NSNR-030 | §15: linear limit, tangent, equilibrium, objectivity and rollback identities | +| O-ROT-01 | §§3.2–3.4: fixed-reference exponential coordinate; exact left-spatial multiplicative update and derivatives | +| O-ROT-02 | §§3, 6–8, 12: nodal triad/director, exact director interpolation, point frame/branch validation | +| O-MAP-01 | §§7, 11: exact \(\Phi:\mathbb R^{24}\to\mathbb R^{20}\), \(A\), \(H^\Phi\), complete map curvature | +| O-DRILL-01 | §10: objective polar-corotated twist potential, frozen scale, exact residual/Hessian, six rigid modes | +| O-DRILL-02 | §§4.4, 5, 10, 11.2: current-director source admissibility, exact physical-work projection and no drill load channel | +| O-MOM-01 | §§5, 11.2–11.3: immutable fixed-spatial source, projected physical swing covector, exact work derivative and no follower direction | +| O-BC-01 | §§3.2–3.3, 4.2–4.3, 14: absolute component path, exact multiplicative triad update, \(\Delta q_c=0\) | + +Theory basis follows research sources S1/S6 for fixed-reference nonlinear +continuum-based MITC shell and tying/integration, S2–S5 for finite rotation manifold +and exact potential derivatives, and S7 for same-state Full Newton. Local wiki +cross-checks were [[Total Lagrangian Shell Formulation]], +[[Green-Lagrange Strain Linearization]], [[MITC4 Shell Element]], +[[MITC Shell Kinematics]], [[Continuum Mechanics Based Four-Node Shell Element]], +[[Assumed Transverse Shear Strain Interpolation]], and +[[Nonlinear Finite Element Analysis]]. Project requirements and approved repository +contracts take precedence over those navigation pages. + +## 18. Open Issues and Downstream Handoff + +### 18.1 Formulation closures + +O-ROT-01, O-ROT-02, O-MAP-01, O-DRILL-01, O-DRILL-02, O-MOM-01 and O-BC-01 +are closed by the explicit equations and fail-closed boundaries in this document. +No placeholder derivation remains for implementation of their residual or tangent. + +### 18.2 Numerical Review-owned decisions + +The following remain intentionally open to Numerical Review and do not alter this +formulation: + +- O-TOL-01: scale-aware tolerances for tangent derivative, symmetry, objectivity, + triad invariants, equilibrium, branch proximity and Jacobian validity; +- O-REF-01/O-REF-02: exact stored nonlinear input/CSV and independent-source + readiness; +- O-BENCH-01: exact blocking large-response benchmark and quantities; +- O-STEP-01: endpoint arithmetic and fixed increment adequacy without cutback; +- O-MMS-01: whether shell MMS remains nonblocking. + +Numerical Review must independently check dimensions, signs, exact derivative +identities, the polar-corotation drill construction, six rigid modes, prescribed +rotation path, moment rejection, tangent symmetry/consistency, locking limitations, +and benchmark traversability. This status is ready-for-numerical-review, not +numerically approved and not a downstream implementation authorization. + +### 18.3 Boundary of later stages + +- Exact HDF5 datasets, log representation, parser/semantic validation and public CLI + behavior remain I/O Definition ownership. +- Exact reference artifacts, comparison families and tolerance application remain + Numerical Review/reference contract ownership under docs/TOLERANCE.md. +- C++ type/API/file ownership, sparse implementation and tests remain later planning + and implementation ownership. +- No Abaqus, Nastran or other reference solver execution, artifact creation, + artifact modification, or internal-equivalence claim is authorized by this + document. diff --git a/docs/nonlinear-static-newton-raphson/implementation-plan.md b/docs/nonlinear-static-newton-raphson/implementation-plan.md new file mode 100644 index 0000000..fa1c14b --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/implementation-plan.md @@ -0,0 +1,252 @@ +# Nonlinear Static Newton-Raphson Implementation Plan + +> For Harness workers: this plan is an approved Stage 6 planning artifact. It authorizes planning files only. It does not authorize `scripts/execute.py`, C++ implementation, build, CTest, reference solver execution, or evidence-document creation. + +**Goal:** `nonlinear-static-newton-raphson` 기능을 C++17/MSVC/CMake/CTest TDD 순서로 구현하고, 승인된 nonlinear MITC4 Newton-Raphson 절차, HDF5 schema v1, log lifecycle, shellNL/shell reference comparison을 검증한다. + +**Architecture:** App layer가 argv 검증, lexical output path derivation, move-only `OutputWriteLease`, log open/close와 final HDF5 writer 호출 순서를 소유한다. 입력 parse/map은 정확히 한 번 수행하고, `StepDefinition::ProcedureKind()`로 linear와 nonlinear procedure executor를 분리한다. `LinearStaticAnalysis`의 기존 private lifecycle에는 nonlinear 조건문을 넣지 않고, 기존 linear numerical/HDF5 의미는 repository-wide output name/log lifecycle 변경만 제외하고 보존한다. + +**Tech Stack:** C++17, MSVC on Windows, CMake, CTest, GoogleTest, Intel oneAPI MKL/TBB, HDF5, Abaqus `.inp` approved subset, Python 3 Harness scripts. + +**Spec:** `docs/nonlinear-static-newton-raphson/{requirements,research,formulation,numerical-review,reference-model,io}.md` + +## Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| status | `approved-planning-files-materialized` | +| owner_agent | `implementation-planning-agent` | +| date | `2026-08-24` | +| approval | User approved the final 13-Step draft on `2026-08-24`; Coordinator recorded `DECISION-036`. | +| source_requirement | `docs/nonlinear-static-newton-raphson/requirements.md` | +| source_research | `docs/nonlinear-static-newton-raphson/research.md` | +| source_formulation | `docs/nonlinear-static-newton-raphson/formulation.md` | +| source_numerical_review | `docs/nonlinear-static-newton-raphson/numerical-review.md` | +| source_reference_models | `docs/nonlinear-static-newton-raphson/reference-model.md` | +| source_io_definition | `docs/nonlinear-static-newton-raphson/io.md` | + +## Approved Upstream Hashes + +| document | SHA-256 | +| --- | --- | +| `requirements.md` | `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` | +| `research.md` | `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` | +| `formulation.md` | `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` | +| `numerical-review.md` | `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01` | +| `reference-model.md` | `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3` | +| `io.md` | `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28` | + +## Readiness Check + +- Upstream document status: Stage 1 requirements approved, Stage 2 research passed, Stage 3 formulation ready for numerical review and approved downstream, Stage 4 numerical/reference review passed for I/O definition, Stage 5 I/O definition approved. +- Missing decisions: none. +- Missing required comparison files: none for declared blocking/reference families. +- Planning can proceed: yes. +- `.harness/config.json`: absent during planning inspection. Each Step must recheck at execution time and use it first if it appears. + +## Global Constraints + +- Use `RED -> observed failure -> minimal GREEN -> focused VERIFY -> full CTest` in every implementation Step. +- C++ production edits require related C++ tests in the same Step. +- Do not edit requirements, research, formulation, numerical review, reference-model, I/O, tolerance, or reference artifacts. +- Do not run Abaqus, Nastran, or any reference solver. +- Do not create `implementation-report.md`, `build-test.md`, or `reference-comparison.md` before Step 12 produces actual command evidence. +- Do not run Harness from this planning approval. `scripts/execute.py` requires a separate explicit request. +- Implementation and Harness execution remain unauthorized by this materialized plan until the user separately requests Executor execution. +- Preserve source label/instance identity, deterministic row order, deterministic diagnostics, finite checks, and docs/TOLERANCE.md exactly. +- Preserve `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. For shellNL, preserve constrained `RF1/RF2`, `RF3`, physical spatial `RM1/RM2` blocking, and exclude `RM3` plus stress from numeric comparison. + +## Repository Seam Map + +| area | current seam | implementation direction | +| --- | --- | --- | +| CLI/app | `src/fesa/app/fesa_application.cpp` currently accepts `[--output ]` and constructs `LinearStaticAnalysis`. | Add output path derivation and `OutputWriteLease`, reject any argv token containing `--output`, own log/HDF5 lifecycle. | +| Analysis request | `include/fesa/analysis/analysis.h` contains `input_path` and `output_path`. | Add `log_path`; Step 10 introduces prepared analysis flow for single parse/map and delayed HDF5 finalization. | +| Linear lifecycle | `LinearStaticAnalysis::Run()` currently parses/maps and writes HDF5 inside `RecoverAndWrite()`. | Refactor into `PrepareAnalysisInput`, `LinearStaticProcedureExecutor`, and final writer call after log close; keep linear numerical behavior. | +| Domain | `StaticStepDefinition` in `include/fesa/model/model_types.h`; `StepDefinition` in `include/fesa/model/domain.h`. | Store procedure identity, `NLGEOM`, raw four `*STATIC` values and provenance. Do not store derived factor sequence or PRESELECT state. | +| Parser mapping | `src/fesa/io/abaqus/domain_mapping_context.cpp`, `step_definition_mapper.cpp`. | Accept nonlinear static subset, warning no-op PRESELECT, reject unsupported procedure fail-closed. | +| MITC4 | `include/fesa/elements/mitc4_shell.h`, `src/fesa/elements/mitc4_shell.cpp` are linear small-rotation. | Add separate nonlinear MITC4 files with `Create(...)` from four nodes, four initial frames, `ShellSection`, and `LinearElasticMaterial`; element kernels compute internal residual/tangent/recovery only. | +| Loads/control | Current loads are assembled for linear static RHS. | Step 5 owns global-once fixed CLOAD external vector `f_ext` and exact external load tangent `K_ext`, including projected moment `J_l`/map-Hessian terms, with no incident-element multiplication. Step 5 also owns exact convergence constants: relative `1.0e-2`, zero-scale `1.0e-3` with channel-specific units. Step 10 forms `r = f_int - f_ext` and `K_T = K_int - K_ext`. | +| Source identity | `SourceEntityId { instance_name, source_label, source_label_text }` and `EntityIndex` exist in `include/fesa/core/source_identity.h`; nodes are stored in stable Domain order. | Step 8 baseline uses both `EntityIndex` and full `SourceEntityId`, requires one node baseline per Domain node in stable internal order, rejects label-only or mismatched identities, and preserves identity into HDF5/reference mapping. | +| Solver | `MklPardisoSolver` uses SPD `mtype=2` and upper-triangle copy. | Preserve unchanged; add `TangentSolver` and MKL unsymmetric full CSR `mtype=11`. | +| Results writer | `ResultsWriter` is the backend-neutral linear writer; `Hdf5ResultsWriter` writes schema-v0 single-frame linear output. | Add `NonlinearResultsWriter` backend-neutral boundary and `NonlinearHdf5ResultsWriter` schema-v1 implementation with delayed finalization after log close. | +| Tests | `fesa_unit_tests`, `fesa_integration_tests`, `fesa_reference_tests` use executable-wide labels. | Add focused test sources and use `ctest -R` regex; do not globally relabel existing tests as nonlinear. | + +## Work Breakdown + +| Step | name | dependency | primary responsibility | +| ---: | --- | --- | --- | +| 0 | `cli-output-lease-and-derived-names` | none | CLI output derivation, `--output` substring rejection, RAII output lease, app-owned log/HDF5 lifecycle entry. | +| 1 | `nonlinear-static-domain-contract` | 0 | Domain/parser semantic contract for `NLGEOM=YES`, raw `*STATIC`, PRESELECT warning no-op. | +| 2 | `finite-rotation-state` | 1 | SO(3) finite rotation state, left Jacobian, branch/invariant validation. | +| 3 | `nonlinear-mitc4-kinematics-and-recovery` | 1,2 | TL MITC4 nonlinear kinematics and recovery rows. | +| 4 | `nonlinear-mitc4-residual-and-tangent` | 2,3 | Same-trial internal residual and internal consistent tangent with recovery. | +| 5 | `load-boundary-path-and-convergence-gates` | 1-4 | Fixed factor path, proportional load/BC path, global-once fixed-load `f_ext`/`K_ext` with approved subtraction signs, `rho_M`, typed four-channel convergence with constants owned by evaluator. | +| 6 | `backend-neutral-tangent-solver` | 4 | Separate nonsymmetric tangent solver boundary and MKL adapter. | +| 7 | `newton-iteration-log-writer` | 0,5 | Exact 39-field Newton text log writer. | +| 8 | `nonlinear-state-commit-rollback` | 3-7 | Factor-zero baseline construction with `EntityIndex` plus `SourceEntityId`, trial/committed nonlinear state, accepted frames, rollback/preservation. | +| 9 | `nonlinear-hdf5-schema-v1-writer` | 8 | Nonlinear HDF5 schema v1 writer using `std::vector`. | +| 10 | `prepared-analysis-flow-and-full-procedure` | 0-9 | Single parse/map prepared analysis flow, separate linear/nonlinear executors, delayed writer finalization. | +| 11 | `reference-comparison-gate` | 0-10 | shellNL nonlinear and shell linear real-input reference comparison. | +| 12 | `execution-closure-and-evidence-docs` | 0-11 | Fresh MSVC evidence, deterministic repeat/reference audit, actual-output evidence docs. | + +## TDD Test Plan + +| test id family | RED assertion scope | Step | +| --- | --- | --- | +| `NSNR-CLI-*` | `--output` substring first-token rejection, lexical result/log names, no-output-change proof, lease lifetime. | 0 | +| `NSNR-IO-*` | `NLGEOM=YES`, raw `*STATIC`, `NLGEOM=NO` regression, PRESELECT warning no-op, unsupported procedure diagnostics. | 1 | +| `NSNR-ROT-*` | finite rotation invariants, `J_l`, branch margin, director update. | 2 | +| `NSNR-ELEM-KIN-*` | nonlinear MITC4 creation inputs, TL shell kinematics, fixed-size four-GP recovery rows, degeneracy fail-closed, linear limit. | 3 | +| `NSNR-ELEM-TAN-*` | same-trial internal residual/tangent, directional derivative, objectivity, symmetry only for internal/no-external cases. | 4 | +| `NSNR-CTRL-*` | load factor path, absolute boundary path, global-once fixed loads and load tangent, moment admissibility, typed four convergence gates with `relative`/`zero-scale` branches and non-injectable exact thresholds/units. | 5 | +| `NSNR-SOLVER-*` | nonsymmetric tangent solve, 0x0, nonfinite/failure translation, SPD solver unchanged. | 6 | +| `NSNR-LOG-*` | serializer-owned 39-field UTF-8/LF/TAB Newton log from explicit stage/failure/channel records and fail-closed write/flush/close. | 7 | +| `NSNR-STATE-*` | factor-zero baseline creation with stable node order and full source identity, trial/committed separation, accepted frame order, full schema-v1 state inventory, finite atomic commit, rollback. | 8 | +| `NSNR-HDF5-*` | `NonlinearResultsWriter` boundary, schema v1 metadata/model/frame datasets, factor-zero metadata, atomic finalization. | 9 | +| `NSNR-PROC-*` | full procedure orchestration, single parse/map, log close before HDF5, deterministic repeat. | 10 | +| `NSNR-REF-*` | original artifact snapshot, temp input copy run, HDF5-to-original-CSV identity mapping, tolerance, classification, report data. | 11 | +| `NSNR-EVID-*` | fresh evidence docs and diff/hash/warning audits from actual command outputs. | 12 | + +## CMake And CTest Plan + +- Add C++ sources to `src/fesa/CMakeLists.txt` under existing `fesa_solver`. +- Add unit tests to `fesa_unit_tests`, integration tests to `fesa_integration_tests`, reference tests to `fesa_reference_tests`. +- Preserve current executable-wide labels. Use focused regex such as `ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure`. +- If scoped per-test labels are introduced, the Step that introduces the mechanism must test it and avoid changing labels for unrelated discovered tests. +- Configure/build/test commands: + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +## Data Flow Contract + +1. CLI receives `fesa.exe `. +2. App scans all argv tokens left-to-right. The first token containing case-sensitive substring `--output` fails with one `cli-usage` diagnostic before path resolution, parse/map, analysis, lease, log, or HDF5. +3. App derives `_results.h5` and `_log.txt` beside the lexically normalized user-addressed `.inp`. +4. App acquires move-only `OutputWriteLease` and retains it until all log and HDF5 work ends. +5. App opens/truncates the log, then `PrepareAnalysisInput(input_path)` parses/maps once into `Domain`. +6. Procedure executor receives injected `ParallelFor` plus `LinearSolver` or `TangentSolver` and computes a fully validated linear or nonlinear state without opening HDF5. Nonlinear assembly forms `r = f_int - f_ext` and `K_T = K_int - K_ext` from Step 4 internal quantities and Step 5 global-once external quantities. Nonlinear state construction preserves each node's stable `EntityIndex` and full `SourceEntityId`; source label alone is never a row identity. +7. App closes the log successfully before invoking injected `ResultsWriter` or `NonlinearResultsWriter`. +8. HDF5 is the authoritative solver output. CSV views are comparison/debug artifacts only. + +## Reference Inventory + +| path | role | rows | SHA-256 | +| --- | --- | ---: | --- | +| `reference/shellNL/shellNL.inp` | nonlinear input | input | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| `reference/shellNL/shellNL displacements.csv` | required displacement CSV | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| `reference/shellNL/shellNL reactions.csv` | required reaction CSV | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| `reference/shellNL/shellNL stresses.csv` | nonblocking inventory artifact | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| `reference/shell/shell.inp` | linear input | input | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | +| `reference/shell/shell displacements.csv` | required displacement CSV | 49 | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | +| `reference/shell/shell reactions.csv` | nonblocking inventory artifact | 49 | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | +| `reference/shell/shell stresses.csv` | nonblocking inventory artifact | 288 | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | + +Blocking and warning families: + +| family | components | rows | disposition | +| --- | --- | ---: | --- | +| `linear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | blocking | +| `linear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | warning-only | +| `nonlinear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | blocking | +| `nonlinear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | warning-only | +| `nonlinear.reaction_inplane_force` | `RF1,RF2`, constrained nodes | 48 | blocking | +| `nonlinear.reaction_transverse_force` | `RF3`, constrained nodes | 24 | blocking | +| `nonlinear.reaction_physical_moment` | `RM1,RM2`, constrained nodes | 48 | blocking | + +Constrained node labels for shellNL reactions: `1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33`. + +Exact shellNL `Frame`: `Increment 10: Step Time = 1.000`. + +Step 11 must not run original reference input paths directly. It snapshots exact original artifact inventory, copies input bytes unchanged into a unique build-local temp case directory, runs `FesaApplication` on the copied `.inp`, consumes copied-sibling `_results.h5` and `_log.txt`, compares generated HDF5 to original read-only CSVs, and then verifies original reference directory inventory, bytes, timestamps, and hashes are unchanged. HDF5 source path identity matches the copied user-addressed input; source content identity matches the approved input hash. + +## Acceptance Traceability Matrix + +| requirement | Steps | test ids | +| --- | --- | --- | +| `FESA-REQ-NSNR-001` | 1,10 | `NSNR-IO-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-003` | 1,3,4,10 | `NSNR-IO-*`, `NSNR-ELEM-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-041` | 1,3,10 | `NSNR-IO-*`, `NSNR-ELEM-KIN-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-074` | 2,8,10 | `NSNR-ROT-*`, `NSNR-STATE-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-006` | 4,6,10 | `NSNR-ELEM-TAN-*`, `NSNR-SOLVER-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-007` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-069` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-070` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-008` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-014` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-046` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-048` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-018` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-063` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-016` | 1,5 | `NSNR-IO-*`, `NSNR-CTRL-*` | +| `FESA-REQ-NSNR-011` | 8,9,10 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-019` | 4,8,10 | `NSNR-ELEM-TAN-*`, `NSNR-STATE-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-020` | 1 | `NSNR-IO-*` | +| `FESA-REQ-NSNR-021` | 8,9,10 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-024` | 7,10 | `NSNR-LOG-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-083` | 0,10,12 | `NSNR-CLI-*`, `NSNR-PROC-*`, `NSNR-EVID-*` | +| `FESA-REQ-NSNR-026` | 8,10,11,12 | `NSNR-STATE-*`, `NSNR-PROC-*`, `NSNR-REF-*`, `NSNR-EVID-*` | +| `FESA-REQ-NSNR-030` | 2,3,4,5,6,7,8,9,10,11 | `NSNR-ROT-*`, `NSNR-ELEM-*`, `NSNR-CTRL-*`, `NSNR-SOLVER-*`, `NSNR-LOG-*`, `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*`, `NSNR-REF-*` | +| `FESA-REQ-NSNR-034` | 11 | `NSNR-REF-*` | + +## Numerical Review Coverage + +| category | Steps | +| --- | --- | +| linear-limit reduction | 3,4,10,11 | +| rotation invariants and branch margin | 2,8,10 | +| tangent directional derivative schedule | 4 | +| no-moment tangent symmetry | 4 | +| finite rigid objectivity | 3,4 | +| patch/sign recovery | 3,4 | +| load/boundary path and `rho_M` | 5,10 | +| Newton factor/iteration lifecycle | 5,7,10 | +| four convergence gates | 5,7,10 | +| commit/rollback/determinism | 8,10,11,12 | + +## Validation Commands + +Each Step must: + +1. Recheck `.harness/config.json`. If present, use the configured Harness build/test commands. +2. If absent, use: + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Focused CTest commands are written explicitly in each `stepN.md`. + +Harness Python validation is not in scope unless a Step changes Harness Python behavior, hook behavior, or agent configuration. + +## Risks And Downstream Handoff + +- Main implementation risk: current `LinearStaticAnalysis` owns parse/map and HDF5 write internally. Step 10 must refactor through prepared analysis flow so log close precedes HDF5 finalization for both linear and nonlinear runs. +- Main numerical risk: nonlinear MITC4 tangent and finite rotation derivatives must pass internal derivative/objectivity tests before reference comparison can be meaningful. +- Main backend risk: nonlinear tangent can be nonsymmetric. Preserve SPD `MklPardisoSolver` unchanged and add separate `TangentSolver`. +- Handoff to Implementation Agent through Coordinator: execute Steps 0..12 in order, one current Step at a time, with RED observed failure evidence before GREEN implementation, then focused/full CTest. Final reference gate is Step 11; evidence-document closure is Step 12. + +## Open Issues + +None. + +## Plan Approval Boundary + +The user-approved plan and pending phase files do not authorize Harness execution. `scripts/execute.py nonlinear-static-newton-raphson` requires a separate explicit user request. diff --git a/docs/nonlinear-static-newton-raphson/io.md b/docs/nonlinear-static-newton-raphson/io.md new file mode 100644 index 0000000..08070f9 --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/io.md @@ -0,0 +1,808 @@ +# Nonlinear Static Newton-Raphson I/O Definition + +## 1. Metadata + +- feature_id: `nonlinear-static-newton-raphson` +- source_requirement: `docs/nonlinear-static-newton-raphson/requirements.md` +- source_requirement_sha256: `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` +- source_research: `docs/nonlinear-static-newton-raphson/research.md` +- source_research_sha256: `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` +- source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` +- source_formulation_sha256: `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` +- source_numerical_review: `docs/nonlinear-static-newton-raphson/numerical-review.md` +- source_numerical_review_sha256: `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01` +- source_reference_model: `docs/nonlinear-static-newton-raphson/reference-model.md` +- source_reference_model_sha256: `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3` +- repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/PRD.md`, + `docs/ARCHITECTURE.md`, `docs/ADR.md`, `docs/TOLERANCE.md` +- status: `ready-for-coordinator-review` +- owner_agent: `io-definition-agent` +- date: `2026-08-23` +- authoritative_output: input sibling `_results.h5` +- diagnostic_log: input sibling `_log.txt` +- hdf5_schema_version: `1` + +이 문서는 승인된 Stage 5 I/O 계약만 정의한다. Parser, writer, comparison tool의 +C++ API나 파일 소유권은 정의하지 않는다. FESA는 Abaqus와 독립적인 solver이며, +아래 `.inp` subset과 reference CSV mapping은 Abaqus full compatibility, Abaqus +`S4/S4R` 내부 알고리즘, 적분, stabilization, 상태 갱신 또는 output recovery +동등성을 주장하지 않는다. + +FEM wiki 근거는 `Abaqus Input File Syntax`, +`Abaqus Output Database and Results Files`, +`Abaqus General and Linear Perturbation Steps`, +`Abaqus Initial and Boundary Conditions`, +`Abaqus Loads and Predefined Fields`, +`Abaqus Beam and Shell Section Definitions`를 사용했다. 이 근거는 keyword/data/comment +line, model/history data, output request, step/load/boundary/section 용어를 정렬하기 +위한 보조 근거이며, 승인된 FESA 요구조건과 정식화가 우선한다. + +## 2. Abaqus Input Scope + +- input_format: Abaqus input file (`.inp`) +- supported Abaqus documentation source/version: 프로젝트 연구 bundle 및 local FEM + wiki에 보존된 Abaqus 2024 input syntax/output vocabulary. 저장된 nonlinear reference + input은 Abaqus/CAE Learning Edition 2024 생성물이다. +- supported_analysis: no-prior-history baseline에서 시작하는 정확히 하나의 source + `*STEP, NLGEOM=YES`와 하나의 nonlinear `*STATIC` procedure. +- internal_element_formulation: source `S4`와 `S4R` 모두 materially linear, + geometrically nonlinear Total Lagrangian `FESA-MITC4`에 매핑한다. +- ordinary_unit_system: 사용자가 일관되게 선택한 미지정 단위계. FESA는 단위 추론이나 + 변환을 수행하지 않는다. +- compatibility_disclaimer: 이 문서가 명시한 keyword 위치, parameter, data-line arity, + validation rule, output mapping만 지원 범위다. + +`supported`는 syntax가 parsing되고 feature semantic model에 매핑된다는 뜻이다. +`unsupported`는 명확한 diagnostic으로 거부한다. `ignored-with-warning`은 syntax와 +소속 data line을 소비하고 warning을 남기지만 Domain, AnalysisModel, nonlinear +procedure, mandatory HDF5 output 또는 reference comparison 의미를 바꾸지 않는다. +`requires-user-decision` 항목은 없다. + +| keyword | policy | allowed location | required parameters and data grammar | semantic mapping | unsupported behavior | +| --- | --- | --- | --- | --- | --- | +| `*HEADING` | supported | optional top-level first keyword | parameter 없음; 다음 keyword 전까지 text row 0개 이상 | raw heading을 source metadata로 보존 | parameter, nested location, 두 번째 heading은 input error | +| `*INCLUDE` | unsupported | anywhere | 허용 data/parameter grammar 없음 | file traversal 또는 include expansion 없음 | `unsupported-keyword`; 참조 파일을 열지 않음 | +| `*PART` / `*END PART` | supported | top-level model block | `NAME=` 필수; `*END PART` data 없음 | part-local node, element, set, shell section scope | unclosed, nested, duplicate, data-bearing close는 input error | +| `*NODE` | supported | part scope | 각 row `node_label,x,y,z`; parameter 없음 | 양의 source node label과 finite global Cartesian coordinate | arity 오류, duplicate label, nonfinite value, dangling later reference는 input/model error | +| `*NSET` | supported | part 또는 assembly scope | `NSET=` 필수; optional `GENERATE`; assembly scope는 `INSTANCE=` 필수; explicit labels 또는 `first,last,increment` | deterministic node-set membership | mixed-instance set, invalid generate row, duplicate set name, empty set, dangling member는 input error | +| `*ELEMENT` | supported | part scope | `TYPE=S4` 또는 `TYPE=S4R`; 각 row `element_label,n1,n2,n3,n4` | four-node source shell connectivity; source type 보존; internal type `FESA-MITC4` | 다른 element type은 `unsupported-element-formulation`; repeated node, arity 오류, dangling node, mixed element model은 error | +| `*ELSET` | supported | part 또는 assembly scope | `ELSET=` 필수; optional `GENERATE`; assembly scope는 `INSTANCE=` 필수; `*NSET`과 같은 row rule | deterministic element-set membership | mixed-instance set, invalid generate row, duplicate set name, empty set, dangling member는 input error | +| `*MATERIAL` | supported | top-level model data | `NAME=` 필수; data 없음 | 정확히 하나의 supported isotropic `*ELASTIC` 소유 | duplicate material, missing/duplicate elasticity, 다른 material behavior는 input error | +| `*ELASTIC` | supported | current `*MATERIAL` scope | 정확히 한 row `E,nu`; parameter 없음 | homogeneous isotropic linear elasticity; `G=E/(2(1+nu))` 파생 | extra field/row, dependency/temperature data, nonfinite value, `E<=0`, `nu<=-1`, `nu>=0.5`는 error | +| `*SHELL SECTION` | supported | part scope | `ELSET=`와 `MATERIAL=` 필수; 정확히 한 row `thickness[,integration_points]` | centered homogeneous single-layer shell section | composite/layer data, offset, orientation, controls, variable thickness, missing reference, conflicting assignment, nonpositive thickness는 error | +| `*ASSEMBLY` / `*END ASSEMBLY` | supported | 정확히 하나의 top-level assembly | `NAME=` 필수; `*END ASSEMBLY` data 없음 | identity-instance scope와 assembly-level set scope | nested/duplicate assembly, instance transform data, unmatched close는 input error | +| `*INSTANCE` / `*END INSTANCE` | supported | assembly scope | `NAME=`, `PART=` 필수; transform data 없음 | named identity copy; 같은 part의 multiple identity instances 허용 | duplicate/dangling instance 또는 translation/rotation data는 unsupported input | +| `*BOUNDARY` | supported | top-level model data 또는 sole step의 `*STATIC` 뒤 | parameter 없음; 각 row `target,first_dof,last_dof[,value]`; omitted value는 exact zero | common load-factor path의 factor-one absolute global DOF target; DOF `1..6` | amplitude, local coordinate system, invalid range/arity, unresolved target, nonfinite value, conflicting expanded value는 error | +| `*CLOAD` | supported | sole step의 `*STATIC` 뒤 | parameter 없음; 각 row `target,dof,magnitude`; DOF `1..6` | load factor로만 scale되는 fixed-global dead nodal force/moment source | amplitude/follower/local load, invalid arity/DOF, unresolved target, nonfinite magnitude, drilling-direction aggregate moment는 error | +| `*DLOAD` | unsupported | anywhere | 허용 data/parameter grammar 없음 | distributed/body/pressure/edge/follower load object를 만들지 않음 | load-like usage는 `unsupported-distributed-load`; 그 외는 `unsupported-keyword` | +| `*STEP` / `*END STEP` | supported for nonlinear selector | 정확히 하나의 top-level history block | optional `NAME`; `NLGEOM=YES` 필수; `*END STEP` data 없음 | canonical nonlinear step identity `Step-1` | zero/multiple/mixed/unclosed/nested step 또는 non-`YES` nonlinear selector는 nonlinear increment 전 실패 | +| `*STATIC` | supported nonlinear procedure | sole step의 첫 procedure keyword | 정확히 한 row `initial_increment,time_period,minimum_increment,maximum_increment`; 네 값 모두 finite positive; `time_period`는 endpoint `1.0` identity | 첫 값은 fixed increment `h`; 세 번째/네 번째 값은 unused compatibility source; factors는 one 미만 ordinal multiple 뒤 exact factor one | missing/extra rows/fields, nonpositive/nonfinite field, endpoint가 `1.0`이 아니면 `invalid-nonlinear-static-data` | +| `*OUTPUT` | ignored-with-warning | sole step의 `*STATIC` 뒤 | 정확히 `FIELD, VARIABLE=PRESELECT` 또는 `HISTORY, VARIABLE=PRESELECT`; `FIELD`/`HISTORY`는 value 없는 flag이고 둘 중 하나만 필요; `VARIABLE`은 정확히 한 번 필요; duplicate, both flags, missing `VARIABLE`, 다른 value, extra parameter는 input error | stored reference의 `*Output, field, variable=PRESELECT`와 `*Output, history, variable=PRESELECT`를 warning no-op으로 수용; FESA mandatory output을 select/suppress할 수 없음 | output request는 FESA output을 바꾸지 않음; malformed parameter set은 `invalid-keyword-parameter` | +| `*NODE OUTPUT` | ignored-with-warning | active allowlisted `*OUTPUT` scope | parameter와 다음 keyword 전 variable data를 소비 | legacy nodal request `U`, `RF` 등을 수용 | HDF5 selection, history output, empty synthetic dataset을 만들지 않음 | +| `*ELEMENT OUTPUT` | ignored-with-warning | active allowlisted `*OUTPUT` scope | parameter와 다음 keyword 전 variable data를 소비 | legacy element request `S` 등을 수용 | extrapolated stress, averaging, comparison projection을 만들지 않음 | +| `*PREPRINT` | ignored-with-warning | top-level | parameter를 보존 후 무시; data 불필요 | generator control syntax 수용 | semantic object 없음 | +| `*RESTART` | ignored-with-warning | sole step | parameter를 보존 후 무시; restart state/data 없음 | legacy restart request syntax 수용 | restart write/read/continue 없음 | +| `*CONTACT OUTPUT` | ignored-with-warning | active allowlisted `*OUTPUT` scope | parameter와 다음 keyword 전 data를 소비 | legacy contact-output request syntax만 수용 | contact model/output 없음 | + +`*ORIENTATION`, `*TRANSFORM`, amplitudes, follower loads, pressure, gravity, body +force, edge load, `*DLOAD`, composite shell definitions, shell section offsets, +material nonlinearity, density, temperature dependency, contact, MPC, penalty, multiple +steps, restarts, submodels, transforms, nested assemblies와 위 표에 없는 모든 +model-affecting keyword는 fail-closed unsupported input이다. 저장 또는 future linear +shell input의 `NLGEOM=NO`는 `docs/linear-static-mitc4-shell/io.md`가 계속 관할한다. +이 feature bundle에서 해당 linear case는 `shell-s4-linear-limit` regression reference일 +뿐 nonlinear response evidence가 아니다. + +## 3. Syntax Policy + +- Keyword line은 optional leading whitespace 뒤 `*`로 시작한다. Comment line은 `**`로 + 시작하며 semantic effect가 없다. +- Keyword name, parameter name, supported enumerated value, named-reference lookup은 + ASCII case-insensitive다. Raw source spelling은 diagnostic/report display용으로 + 보존한다. +- Data line과 keyword parameter field는 comma-separated다. 주변 whitespace는 parsing + 전에 trim한다. 필수 field가 비어 있거나, 허용되지 않은 trailing field가 있거나, + numeric token이 malformed이면 input error다. +- 승인된 empty data-field 의미는 `*BOUNDARY` 네 번째 value 생략뿐이며 exact zero로 + 매핑한다. `*SHELL SECTION`의 optional second field는 생략 가능하고, 존재하면 positive + base-10 integer여야 한다. +- Continuation line, physical-line continuation, multiline name, quoted case-sensitive + name, parameter substitution, include file은 unsupported다. 각 logical keyword/data row는 + 한 physical line에 완결되어야 한다. +- 이 feature는 public numeric Abaqus line-length compatibility limit를 정의하지 않는다. + 승인 input은 single-line ASCII record이며, 읽을 수 없는 physical line은 implicit + continuation 없이 parsing 실패다. +- Keyword, parameter, set/material/part/instance name, numeric label의 input text는 + ASCII로 취급한다. HDF5 string output은 UTF-8이지만 non-ASCII source label/name은 + 이 feature 계약 밖이다. +- Node label, element label, explicit set member는 positive base-10 integer다. Source + label은 text와 numeric identity로 보존한다. Stable internal index는 diagnostic 또는 + comparison row에서 source identity를 대체할 수 없다. +- 모든 real-valued input은 finite `double`로 parse되어야 한다. `NaN`, `Inf`, overflow, + nonfinite underflow, locale-dependent numeric format은 reject한다. +- Model data와 history data는 개념적으로 분리한다. Mesh, set, material, section, + coordinate, initial shell frame은 model data다. Step, procedure, boundary, load, + output request는 history data다. +- 어떤 keyword에도 속하지 않는 standalone data 또는 active keyword block 밖의 data는 + input error다. Output-request variable data는 allowlisted output keyword에 종속될 때만 + no-op으로 소비한다. +- 모든 parsed keyword, parameter, data row, semantic entity는 normalized file path, + 1-based line, raw keyword spelling, source identity까지 추적 가능해야 한다. + +## 4. Model Data Mapping + +### 4.1 Stable Source Identity and Ordering + +Identity-instance expansion 뒤 source node와 source element의 stable identity는 다음과 +같다. + +```text +SourceEntityId { instance_name, source_label } +``` + +Name lookup은 case-insensitive지만 raw spelling은 보존한다. Stable internal ID는 input +part declaration order, instance declaration order, part-local entity declaration order로 +부여한다. Hash iteration, thread scheduling, set spelling, CSV row order는 source identity, +internal row order, diagnostic order 또는 result row order를 바꾸면 안 된다. + +### 4.2 Nodes, Elements and Sets + +- `*NODE`는 finite global Cartesian initial midsurface coordinate `[X,Y,Z]`로 매핑하며 + unit dimension은 `length`다. +- `*ELEMENT, TYPE=S4/S4R`는 ordered four-node shell connectivity `[1,2,3,4]`로 매핑한다. + Natural corner 순서는 `(-1,-1)`, `(+1,-1)`, `(+1,+1)`, `(-1,+1)`이며 connectivity를 + 조용히 reverse하지 않는다. +- Source type `S4` 또는 `S4R`는 metadata로 보존한다. 두 type 모두 같은 internal + `FESA-MITC4` formulation, `2 x 2 x 2` integration, nonlinear state path를 선택한다. + Source `S4R`는 reduced integration, hourglass control 또는 Abaqus `S4R` internal + behavior를 활성화하지 않는다. +- `*NSET`과 `*ELSET`은 explicit row order를 보존한다. `GENERATE`는 inclusive + `first,last,increment` 순서로 expand한다. Assembly-scope set은 하나의 `INSTANCE`만 + 참조할 수 있고 mixed instance는 허용하지 않는다. +- Set membership은 Domain commit 전에 source identity로 resolve한다. 같은 scope의 + duplicate set definition, dangling member, invalid generate range는 analysis 전 실패한다. + +### 4.3 Material, Section, Coordinates and Units + +- `*MATERIAL`과 `*ELASTIC`은 finite `E>0`, `-10`를 갖는 centered homogeneous shell layer로 매핑한다. Optional source + integration-point 값은 syntax compatibility로만 보존하며 quadrature, recovery, output, + reference comparison에 영향을 주지 않는다. +- Initial nodal director와 right-handed triad는 instance expansion 뒤 승인된 linear MITC4 + deterministic incident-element rule로 파생한다. 이 값들은 model data이며 모든 increment의 + fixed initial reference를 정의한다. +- 필수 geometry check는 finite coordinate, valid four-node topology, 모든 Gauss/tying/ + center/recovery location의 positive reference Jacobian, non-opposed incident normals, + valid reciprocal bases, valid initial frames를 포함한다. +- `.inp` 단위는 user-consistent unspecified다. HDF5는 `length`, `force`, `force*length`, + `force/length`, `force/length^2`, `1` 같은 unit dimension string만 기록하고 SI를 쓰거나 + 추론하지 않는다. + +## 5. History Data Mapping + +### 5.1 Step and Procedure + +Nonlinear procedure는 정확히 하나의 source step이 `*STEP, NLGEOM=YES`를 포함하고 그 +안에 정확히 하나의 supported `*STATIC` data row가 있을 때만 선택한다. Semantic step +name은 canonical `Step-1`이다. Raw source step name은 provenance로만 보존한다. + +Nonlinear `*STATIC` data row의 의미는 다음과 같다. + +- `initial_increment`는 fixed positive load-factor increment `h`다. +- `time_period`는 endpoint `1.0`과 정확히 같은 identity여야 한다. +- `minimum_increment`와 `maximum_increment`는 positive finite source value여야 하지만 + cutback, growth, retry, stopping, convergence, output cadence에는 사용하지 않는다. +- Intended factor identity는 `1.0`보다 작은 ordinal `j*h` 값들을 만든 뒤, 마지막에 exact + assigned factor `1.0` 하나를 붙여 만든다. Cumulative `lambda += h`, tolerance-based + duplicate endpoint detection, growth, cutback, retry는 금지한다. +- `reference/shellNL/shellNL.inp`의 성공 run에서 expected intended/accepted factor sequence는 + `0.1,0.2,...,1.0`이다. + +Factor zero는 no-prior-history step-start committed baseline이다. Accepted frame은 committed +increment와 일대일 대응해야 하므로 factor zero는 accepted HDF5 frame이 아니다. Factor zero는 +다음 metadata/model dataset으로만 projection한다. + +- `factor_zero_is_frame=0` +- `factor_zero_load_factor=0.0` +- `/model/prescribed_displacement_start`와 initial state의 step-start displacement 및 + rotation-vector component +- `/model/shell/nodal_frame`과 `/model/shell/nodal_director`의 step-start triad/director +- zero scaled `*CLOAD` contribution과 step-start boundary value + +### 5.2 Boundary Conditions + +`*BOUNDARY` target resolution은 direct node label 또는 node set을 허용한다. Expanded row는 +stable source-node identity와 DOF order `1..6`를 사용한다. + +| DOF | component | unit dimension | nonlinear path meaning | +| ---: | --- | --- | --- | +| 1 | `UX` / CSV `U1` | length | factor-one absolute global displacement target | +| 2 | `UY` / CSV `U2` | length | factor-one absolute global displacement target | +| 3 | `UZ` / CSV `U3` | length | factor-one absolute global displacement target | +| 4 | `URX` / CSV `UR1` | dimensionless rotation | factor-one absolute fixed-initial global rotation-vector target | +| 5 | `URY` / CSV `UR2` | dimensionless rotation | factor-one absolute fixed-initial global rotation-vector target | +| 6 | `URZ` / CSV `UR3` | dimensionless rotation | factor-one absolute fixed-initial global rotation-vector target | + +Step 앞 row와 sole step 내부 row는 모두 같은 semantic step의 factor-one target으로 매핑한다. +Cross-step propagation은 없다. Load factor `lambda`에서 current constrained value는 +`q_start + lambda * (q_target - q_start)`다. Current release에는 prior history가 없으므로 +ordinary start value는 승인된 start-state dataset에 명시된 값을 제외하고 zero다. +Constrained Newton correction component는 exact zero다. + +### 5.3 Concentrated Loads + +`*CLOAD` target resolution은 boundary와 같다. 같은 node/DOF로 resolve되는 여러 row는 source +order로 factor-one global load coefficient에 누적한다. Factor `lambda`에서 magnitude는 +`lambda`만 곱한다. + +| DOF | source component | unit dimension | nonlinear meaning | +| ---: | --- | --- | --- | +| 1 | `F1` | force | fixed-global dead nodal force | +| 2 | `F2` | force | fixed-global dead nodal force | +| 3 | `F3` | force | fixed-global dead nodal force | +| 4 | `M1` | force*length | fixed-global source nodal moment admitted only through physical director-tangent work | +| 5 | `M2` | force*length | fixed-global source nodal moment admitted only through physical director-tangent work | +| 6 | `M3` | force*length | fixed-global source nodal moment admitted only through physical director-tangent work | + +Nonzero aggregated nodal moment `M_src`마다 preprocessing과 모든 entered trial state에서 +`abs(dot(d,M_src))/norm(M_src) <= 1e-12`를 denominator clamping 없이 만족해야 한다. +실패하면 `unsupported-drilling-load`다. Source moment vector는 fixed global coordinate에 +남으며 FESA는 rejected moment component를 회전, 축소, 변형하거나 numerical drilling channel로 +보내지 않는다. + +### 5.4 Output Requests + +Abaqus output request keyword는 `ignored-with-warning` compatibility syntax로만 수용한다. +이 keyword들은 history output을 켜지 않고, frame cadence를 제어하지 않으며, mandatory FESA +HDF5 dataset을 select, suppress, rename할 수 없다. Trial Newton state는 HDF5 field/history +output이 아니다. Per-iteration evidence는 `_log.txt`에 diagnostic text로만 기록한다. + +## 6. Internal Model Contract + +이 section은 semantic field를 정의하며 C++ API를 정의하지 않는다. + +- Node record: stable internal node ID, `SourceEntityId`, finite global coordinate, + initial director, initial right-handed triad, source location. +- Element record: stable internal element ID, `SourceEntityId`, preserved source type + `S4` 또는 `S4R`, internal formulation `FESA-MITC4`, ordered four-node connectivity, + resolved section/material identity, source location. +- Set record: case-insensitive set name, source scope, optional source instance, + deterministic expanded source members, stable internal member IDs. +- Material record: case-insensitive material name, finite `E`, finite `nu`, derived `G`, + source location, homogeneous isotropic materially linear identity. +- Section record: source `ELSET`, resolved material, positive thickness, optional ignored + source integration-point field, centered single-layer identity. +- Boundary record: source target, expanded node identities, DOF range, finite factor-one + absolute target values, step-start values, source location, conflict status. +- Load record: source target, expanded node identities, DOF, finite factor-one source + magnitude, deterministic aggregate value, dead fixed-global load identity. +- Step record: raw source name, canonical `Step-1`, `NLGEOM=YES` nonlinear procedure + identity, fixed increment `h`, endpoint `1.0`, unused third/fourth `*STATIC` values, + intended factor sequence, output-request no-op inventory. +- State contract: committed state와 trial state는 alias될 수 없다. 완전하게 수렴한 + candidate만 displacement, rotation vector, `Q`, director, load factor, frame identity, + internal/external force, residual/reaction, physical recovery row를 commit한다. Failed + trial, nonconvergence, nonfinite data, solve failure, recovery failure 또는 output failure는 + prior committed state와 prior authoritative final result를 보존한다. +- Output request record: keyword, parameter, variable row, source location은 warning + diagnostic용으로만 보존한다. Solver 또는 HDF5 selection effect는 없다. + +Source identity와 internal index identity는 diagnostics, HDF5 row order, reference +comparison 전체에서 구분해야 한다. CSV의 element-label order는 solver identity가 아니며 +`(instance, source_label)` key를 대체하지 않는다. + +## 7. Output HDF5 Schema + +### 7.1 Public Output Names, Log and Lifecycle + +승인된 public CLI shape는 다음 하나뿐이다. + +```powershell +fesa.exe +``` + +CLI는 input path 해석보다 먼저 argv token을 왼쪽에서 오른쪽으로 scan한다. 어떤 token이든 +case-sensitive exact literal substring `--output`을 포함하면, `--output`, `--output=...`, +`--output-path`, prefix/suffix form을 모두 포함해 usage failure다. 이 failure는 input path +resolution, parsing, Analysis construction, derived-result path ownership, HDF5 candidate, +log creation/truncation, output finalization 전 exit code `2`로 끝난다. Stderr에는 ordered +diagnostic 하나만 쓴다. + +```text +severity=error code=cli-usage argument_index= argument= message=literal --output is not supported +``` + +여러 token이 `--output`을 포함해도 첫 matching token만 보고 위 diagnostic 하나만 낸다. +Literal `--output`에 대한 compatibility alias나 deprecation window는 없다. `--output`을 +포함하지 않는 다른 unknown option은 별도 `unrecognized-option` usage diagnostic을 유지할 수 +있다. + +Input/output lexical identity는 다음 순서로 정의한다. + +1. 단일 input path token이 relative path이면 invocation CWD를 lexical base로 붙인다. +2. `.`와 `..` component만 lexically normalize한다. Symlink, junction, short-name, + case-preserving target path는 resolve하지 않는다. +3. Normalized user-addressed final filename의 마지막 extension이 case-insensitive `.inp`가 + 아니면 input usage failure다. +4. ``은 마지막 extension 하나만 제거한 basename이다. 앞선 dot과 basename case는 + 보존한다. 예: `Beam.Model.INP` -> `Beam.Model_results.h5`, + `Beam.Model_log.txt`. +5. Derived outputs는 normalized user-addressed input path의 sibling이다. + +- result final: `/_results.h5` +- log final/live file: `/_log.txt` + +File-vs-directory collision과 same-derived-pair concurrency는 output ownership 문제다. +`_log.txt`가 directory 또는 truncate 불가능한 non-regular path이면 log create/open/ +truncate failure다. `_results.h5`가 directory이면 HDF5 output collision으로 fail-closed +한다. 같은 derived pair를 목표로 하는 concurrent invocation은 same-directory +implementation-private lock을 nonblocking exclusive ownership으로 먼저 획득해야 한다. Lock +획득 실패 또는 lock path의 directory collision은 exit code `6`의 output-busy failure이며 +best-effort fatal stderr diagnostic 하나를 시도하고 log/HDF5를 변경하지 않는다. Lock holder +하나만 log truncate, HDF5 candidate, final replace를 시도한다. Candidate filename은 +public contract가 아니지만 반드시 same-directory, +implementation-private, exclusive-create collision-safe여야 하며 실패한 candidate는 +authoritative output이 아니다. + +HDF5 result lifecycle과 log lifecycle은 의도적으로 비대칭이다. + +- `_log.txt`는 CLI usage validation, lexical output derivation, single-writer lock + 획득 뒤 replace/truncate된다. Create/open/truncate failure는 Analysis 전 exit code `6`으로 + abort하며, best-effort fatal stderr diagnostic 하나를 시도한다. +- Log write/flush failure는 즉시 abort한다. Solver는 retry, fallback, continue 또는 result + commit을 하지 않는다. Prior authoritative HDF5는 보존하고, 이미 flush된 live-log prefix는 + rollback하지 않는다. Failed write 뒤 남은 partial trailing line은 authoritative iteration + record가 아니며 tooling은 LF-terminated complete record만 parsing한다. +- Log close는 successful analysis/recovery 뒤, 그리고 HDF5 candidate open/write/final replace + 전 수행한다. Close failure는 result commit을 block하고 exit code `6`으로 끝낸다. +- `_results.h5`는 sibling candidate가 완전히 write, flush, close, reopen, schema-check된 + 뒤 atomic move/replace에 성공한 경우에만 authoritative다. +- HDF5 failure는 exit code `6`을 반환하고 가능한 경우 prior valid final을 보존하며 current-run + log를 rollback하지 않는다. HDF5 failure는 log close 성공 뒤 발생하므로 current log는 닫힌 + current-run audit으로 남는다. + +Newton iteration log는 UTF-8 no BOM, LF-terminated text file이다. Header, trailer, BOM, CRLF는 +없다. Entered Newton iteration마다 physical line 하나만 기록하고, 각 line은 fixed field order의 +TAB-separated `label=value` record다. Per-iteration stderr duplication은 정확히 0개다. 각 +iteration record는 다음 iteration 진입 전 또는 return 전 flush되어야 한다. + +Non-Newton procedure 또는 Newton iteration에 진입하기 전 끝난 controlled failure는 iteration +record를 fabricate하지 않는다. 같은 open/truncate/failure lifecycle을 적용하되 successful +non-Newton run의 `_log.txt` content는 zero-byte empty file이다. Pre-Newton controlled +failure도 entered iteration이 없으면 iteration record가 없는 log file만 남긴다. + +고정 field order는 다음과 같다. + +| order | label | value contract | +| ---: | --- | --- | +| 1 | `record` | literal `newton-iteration` | +| 2 | `schema` | literal `nsnr-log-v1` | +| 3 | `increment` | entered increment identity, `uint64` | +| 4 | `target_factor` | finite round-trip numeric load factor | +| 5 | `iteration` | entered Newton iteration identity `1..100` | +| 6 | `last_completed_stage` | enum stage completed before outcome; `none` allowed | +| 7 | `failing_stage` | `none` for completed gate records, otherwise failing stage enum | +| 8 | `residual_force_channel` | literal `residual_force` or `not-evaluated(reason)` | +| 9 | `residual_force_numerator_norm` | `||r_f^u||_inf` or `not-evaluated(reason)` | +| 10 | `residual_force_denominator_scale` | `max(||f_int,f^u||_inf,||f_ext,f^u||_inf)` or `not-evaluated(reason)` | +| 11 | `residual_force_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 12 | `residual_force_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | +| 13 | `residual_force_threshold_unit` | `1`, `force`, or `not-evaluated(reason)` | +| 14 | `residual_force_pass` | `0`, `1`, or `not-evaluated(reason)` | +| 15 | `residual_moment_channel` | literal `residual_moment` or `not-evaluated(reason)` | +| 16 | `residual_moment_numerator_norm` | `||r_f^phi||_inf` or `not-evaluated(reason)` | +| 17 | `residual_moment_denominator_scale` | `max(||f_int,f^phi||_inf,||f_ext,f^phi||_inf)` or `not-evaluated(reason)` | +| 18 | `residual_moment_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 19 | `residual_moment_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | +| 20 | `residual_moment_threshold_unit` | `1`, `force*length`, or `not-evaluated(reason)` | +| 21 | `residual_moment_pass` | `0`, `1`, or `not-evaluated(reason)` | +| 22 | `correction_translation_channel` | literal `correction_translation` or `not-evaluated(reason)` | +| 23 | `correction_translation_numerator_norm` | `||Delta u_f||_inf` fresh correction or `not-evaluated(reason)` | +| 24 | `correction_translation_denominator_scale` | `||Delta u_inc,f||_inf` from current trial relative to step start or `not-evaluated(reason)` | +| 25 | `correction_translation_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 26 | `correction_translation_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | +| 27 | `correction_translation_threshold_unit` | `1`, `length`, or `not-evaluated(reason)` | +| 28 | `correction_translation_pass` | `0`, `1`, or `not-evaluated(reason)` | +| 29 | `correction_rotation_channel` | literal `correction_rotation` or `not-evaluated(reason)` | +| 30 | `correction_rotation_numerator_norm` | `||Delta phi_f||_inf` fresh correction or `not-evaluated(reason)` | +| 31 | `correction_rotation_denominator_scale` | `||Delta phi_inc,f||_inf` from current trial relative to step start or `not-evaluated(reason)` | +| 32 | `correction_rotation_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 33 | `correction_rotation_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | +| 34 | `correction_rotation_threshold_unit` | `1`, `1`, or `not-evaluated(reason)` | +| 35 | `correction_rotation_pass` | `0`, `1`, or `not-evaluated(reason)` | +| 36 | `combined_pass` | logical AND of four pass fields, or `not-evaluated(reason)` | +| 37 | `transition` | `accept`, `update`, `fail`, or `not-evaluated(reason)` | +| 38 | `outcome` | `accepted`, `continue`, `nonconverged`, or `failed` | +| 39 | `diagnostic_code` | `none` or approved diagnostic code | + +Completed gate record는 `failing_stage=none`이고 네 channel의 identity, numerator/norm, +denominator/scale, branch, typed threshold, pass를 모두 finite 또는 enum value로 노출한다. +Denominator가 exact zero이면 branch는 `zero-scale`이고 typed threshold는 residual force +`1e-3 force`, residual moment `1e-3 force*length`, correction translation `1e-3 length`, +correction rotation `1e-3 dimensionless`다. Denominator가 nonzero이면 branch는 `relative`이고 +threshold는 dimensionless `1e-2`다. Empty free channel은 numerator와 denominator가 exact zero인 +`zero-scale` branch로 평가한다. + +Early failure record는 entered iteration 하나에 대응한다. 이미 계산된 earlier fields는 실제 +finite value를 기록하고, 실패 stage 뒤의 모든 later field는 `not-evaluated(reason)`을 기록한다. +Not-evaluated field에 zero, pass `0`, pass `1`, fabricated denominator 또는 fabricated +threshold를 쓰면 안 된다. `last_completed_stage`와 `failing_stage`는 stage enum을 사용하며 +recommended enum은 `iteration-entered`, `trial-state`, `load-boundary`, `residual`, +`tangent`, `factorization`, `correction`, `convergence-gates`, `update`, `recovery`, +`commit`, `log-write`, `log-flush`, `none`이다. + +Numeric value는 locale-independent C-locale decimal point를 사용하고 finite IEEE-754 `double` +round-trip이 가능해야 한다. `NaN`, `Inf`, localized comma, thousands separator, raw whitespace는 +금지한다. String value는 raw TAB/LF/CR/control byte/backslash를 포함할 수 없으며 `\\`, `\t`, +`\n`, `\r`, `\0`, `\xHH` escape를 사용한다. Record order는 increment, target factor, +iteration 순서로 deterministic해야 한다. + +Schema version `1`의 모든 mandatory HDF5 dataset은 contiguous, uncompressed dataset이다. +Chunking, compression filter, extendible dataset, trial-history group은 이 release 계약에 없다. + +### 7.2 Metadata and Common Dataset Attribute Rules + +`results.h5` schema가 authoritative solver output이다. 실제 final filename은 Section 7.1의 +`_results.h5`다. 모든 string은 UTF-8이다. 모든 physical real dataset은 IEEE-754 +float64를 사용한다. Stable ID는 별도 명시가 없으면 unsigned 64-bit integer다. + +`/metadata` group의 required attributes는 다음과 같다. + +| attribute | required value or meaning | +| --- | --- | +| `schema_version` | `1` | +| `feature_id` | `nonlinear-static-newton-raphson` | +| `solver_version` | executing solver version string | +| `source_input_identity` | lexical normalized user-addressed input path and content identity string; symlink/junction target resolution 없음 | +| `unit_system_label` | `user-consistent-unspecified` | +| `coordinate_convention` | `global-cartesian; shell-local=fixed-initial-reference; positive-thickness=+zeta` | +| `analysis_procedure` | `nonlinear-static-full-newton` | +| `internal_formulation` | `FESA-MITC4-total-lagrangian` | +| `integration_rule` | `2x2x2-gauss; mitc4-edge-midpoint-shear` | +| `step_name` | `Step-1` | +| `frame_indexing` | `accepted-increment-order-zero-based` | +| `factor_zero_is_frame` | `0` | +| `factor_zero_load_factor` | `0.0` | + +모든 numeric model/result dataset은 다음 required attributes를 가진다. + +- `schema_version=1` +- `component_names` +- `component_unit_dimensions` +- `coordinate_system` +- `location` + +Accepted-frame result dataset은 추가로 다음 attributes를 가진다. + +- `step_name=Step-1` +- `frame_index=` +- `increment_index=` +- `load_factor=` +- `is_factor_one=<0|1>` + +### 7.3 Model Datasets + +| dataset path | shape and dtype | row identity / fields | required attributes and ordering | +| --- | --- | --- | --- | +| `/model/nodes` | `[node_count]` compound | `internal_node_id:uint64`, `instance_name:utf8`, `source_label:utf8`, `coordinates:float64[3]` | internal ID ascending; `coordinate_system=global-cartesian`, `component_unit_dimensions=length,length,length`, `location=nodal-reference` | +| `/model/elements` | `[element_count]` compound | `internal_element_id:uint64`, `instance_name:utf8`, `source_label:utf8`, `source_element_type:utf8`, `internal_formulation:utf8`, `node_internal_ids:uint64[4]`, `shell_section_internal_id:uint64`, `material_internal_id:uint64` | internal element ID ascending; `formulation=FESA-MITC4-total-lagrangian` | +| `/model/shell/materials` | `[material_count]` compound | `internal_material_id:uint64`, `name:utf8`, `E:float64`, `nu:float64` | declaration order; `component_unit_dimensions=force/length^2,1`, `location=model-material` | +| `/model/shell/sections` | `[section_count]` compound | `internal_section_id:uint64`, `source_file:utf8`, `source_line:uint64`, `source_elset:utf8`, `material_internal_id:uint64`, `thickness:float64` | declaration order; `component_unit_dimensions=length`, `location=model-shell-section`, `layering=centered-single-layer` | +| `/model/shell/nodal_director` | `[node_count,3]` float64 | `/model/nodes` row; `[D1,D2,D3]` | initial director; `coordinate_system=global-cartesian`, `location=nodal-initial-director`, units `1,1,1` | +| `/model/shell/nodal_frame` | `[node_count,3,3]` float64 | `/model/nodes` row; axis row `[A,B,D]`, global component column `[X,Y,Z]` | initial right-handed triad; `coordinate_system=global-cartesian`, `location=nodal-initial-frame`, units `1,1,1` | +| `/model/nodal_constraint_mask` | `[node_count,6]` uint8 | `/model/nodes` row; DOF `[UX,UY,UZ,URX,URY,URZ]` | `0=free`, `1=constrained`; constrained reaction comparison identity의 authority | +| `/model/prescribed_displacement_start` | `[node_count,6]` float64 | same row/DOF order | factor-zero start values; units `[length x3,1 x3]`, `load_factor=0.0` | +| `/model/prescribed_displacement_target` | `[node_count,6]` float64 | same row/DOF order | factor-one absolute target values; units `[length x3,1 x3]`, `load_factor=1.0` | +| `/model/shell/midsurface_locations` | `[4,2]` float64 | location rows `GP1..GP4`; columns `[XI,ETA]` | `coordinate_system=shell-natural`; `(-g,-g),(+g,-g),(+g,+g),(-g,+g)`, `g=1/sqrt(3)` | +| `/model/shell/section_positions` | `[3]` float64 | rows `[BOTTOM,MIDDLE,TOP]`; values `[-1,0,+1]` | `coordinate_system=shell-natural`; physical `z=t*zeta/2`; Abaqus section-point identity가 아님 | + +### 7.4 Accepted Frame Table + +Successful nonlinear run 뒤 `/steps/Step-1/accepted_frames`는 mandatory다. + +| path | shape and dtype | fields | required meaning | +| --- | --- | --- | --- | +| `/steps/Step-1/accepted_frames` | `[frame_count]` compound | `frame_index:uint64`, `increment_index:uint64`, `load_factor:float64`, `iteration_count:uint64`, `is_factor_one:uint8` | committed increment마다 한 row; `frame_index`는 `` group name과 같음; load factor는 strictly increasing; 마지막 row는 `load_factor=1.0`, `is_factor_one=1` | + +`frame_count`는 committed increment 수이며 successful run에서는 하나 이상이다. Factor-one +row는 정확히 하나다. Factor zero는 이 dataset에 row를 갖지 않고 `/frames/0` 특별 의미도 +갖지 않는다. + +### 7.5 Accepted Frame Result Datasets + +`/steps/Step-1/accepted_frames.frame_index = `마다 아래 dataset들이 +`/steps/Step-1/frames//` 아래 mandatory다. + +| quantity | exact dataset path | shape | row identity and component order | units / coordinates / location | +| --- | --- | --- | --- | --- | +| committed displacement and rotation vector | `/steps/Step-1/frames//nodal/displacement` | `[node_count,6]` float64 | `/model/nodes` row; `[UX,UY,UZ,URX,URY,URZ]` | `[length,length,length,1,1,1]`; global Cartesian translations and fixed-initial global rotation-vector components; nodal | +| committed triad | `/steps/Step-1/frames//nodal/triad` | `[node_count,3,3]` float64 | node row; axis row `[A,B,D]`, global component column `[X,Y,Z]` | dimensionless; global Cartesian; committed `Q`; director는 row `D` | +| committed director | `/steps/Step-1/frames//nodal/director` | `[node_count,3]` float64 | node row; `[D1,D2,D3]` | dimensionless; global Cartesian; triad axis `D`와 같아야 함 | +| generalized internal force | `/steps/Step-1/frames//nodal/generalized_internal_force` | `[node_count,6]` float64 | node row; `[FI1,FI2,FI3,MI_PHI1,MI_PHI2,MI_PHI3]` | `[force x3,force*length x3]`; work-conjugate to `[u,phi]`; nodal | +| generalized external force | `/steps/Step-1/frames//nodal/generalized_external_force` | `[node_count,6]` float64 | node row; `[FE1,FE2,FE3,ME_PHI1,ME_PHI2,ME_PHI3]` | `[force x3,force*length x3]`; work-conjugate to `[u,phi]`; approved physical moment projection 후 fixed-global dead loads; nodal | +| generalized residual | `/steps/Step-1/frames//nodal/generalized_residual` | `[node_count,6]` float64 | node row; `[RU1,RU2,RU3,RPHI1,RPHI2,RPHI3]` | `[force x3,force*length x3]`; nonlinear solution coordinate의 full assembled `f_int-f_ext`; nodal | +| reaction / physical residual projection | `/steps/Step-1/frames//nodal/reaction` | `[node_count,6]` float64 | node row; `[RF1,RF2,RF3,RM1,RM2,RM3]` | `[force x3,force*length x3]`; global; constrained entry는 physical reaction, free entry는 same-state equilibrium evidence; rotational columns는 `J_l(phi)^(-T)` spatial moment conversion | +| shell local frame | `/steps/Step-1/frames//element/shell/local_frame` | `[element_count,4,3,3]` float64 | element row, midsurface location row `GP1..GP4`, axis row `[E1,E2,E3]`, global component column `[X,Y,Z]` | dimensionless; physical recovery용 fixed-initial shell local frame; rotating Abaqus output frame이 아님 | +| generalized strain | `/steps/Step-1/frames//element/shell/generalized_strain` | `[element_count,4,8]` float64 | element row, `GP1..GP4`; `[E11,E22,G12,K11,K22,K12,G13,G23]` | `[1,1,1,1/length,1/length,1/length,1,1]`; fixed-reference shell local; midsurface | +| section resultant | `/steps/Step-1/frames//element/shell/section_resultant` | `[element_count,4,8]` float64 | element row, `GP1..GP4`; `[N11,N22,N12,M11,M22,M12,Q13,Q23]` | `[force/length x3,force x3,force/length x2]`; fixed-reference shell local; midsurface | +| in-plane stress | `/steps/Step-1/frames//element/shell/stress` | `[element_count,4,3,3]` float64 | element row, `GP1..GP4`, section position `[BOTTOM,MIDDLE,TOP]`, component `[S11,S22,S12]` | `force/length^2`; fixed-reference shell local; direct bottom/middle/top evaluation | +| physical strain energy | `/steps/Step-1/frames//global/energy` | `[1]` float64 | `[PHYSICAL_STRAIN_ENERGY]` | `force*length`; deterministic element reduction; numerical drilling stabilization 제외 | +| global equilibrium | `/steps/Step-1/frames//global/equilibrium` | `[6]` float64 | `[FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3]` | `[force x3,force*length x3]`; global Cartesian; moment about global origin `[0,0,0]`, current force arms와 spatial physical nodal moments 사용 | + +Trial Newton state, iteration history, line search, cutback attempt, damping, automatic +stabilization, numerical drilling stress, drilling energy ratio, `S33`, `S13`, `S23`, +nodal stress extrapolation, element-corner stress, averaged stress, Abaqus integration-point +number에 대한 HDF5 dataset은 만들지 않는다. + +### 7.6 Diagnostics Dataset + +`/diagnostics`는 mandatory이며 row가 0개일 수 있다. + +| path | shape and dtype | fields | required meaning | +| --- | --- | --- | --- | +| `/diagnostics` | `[diagnostic_count]` compound | `severity:utf8`, `code:utf8`, `file:utf8`, `line:uint64`, `keyword:utf8`, `entity_identity:utf8`, `message:utf8` | CLI/input/model/solver/output deterministic diagnostics; ignored keyword warning도 success file에 보존 | + +Diagnostic order는 source file declaration order, 1-based line, stable entity identity, +diagnostic code, discovery order를 순서대로 사용한다. Source가 없는 CLI/solver/output +diagnostic은 explicit empty source field를 사용한다. + +### 7.7 Output Failure and Atomic Finalization + +Writer는 log close 성공 뒤에만 final file과 같은 directory에 implementation-private temporary +HDF5 candidate를 만든다. Candidate는 metadata, model datasets, accepted-frame table, 모든 +accepted-frame dataset, diagnostics를 모두 쓰고, shape, attribute, finite value, source +identity, row order를 검증한다. Checked HDF5 close와 read-only reopen/self-check가 성공한 +뒤에만 final `_results.h5`를 replace/create한다. 실패한 candidate는 제거하거나 +non-authoritative implementation-private artifact로만 남긴다. Controlled failure는 incomplete +final result를 노출하면 안 된다. HDF5 failure는 이미 닫힌 current-run log를 rollback하지 않는다. + +## 8. FESA HDF5 to Reference CSV Comparison Mapping + +Comparison tooling은 FESA `results.h5` schema와 exact read-only Abaqus CSV artifact만 읽는다. +CSV는 FESA output이 아니다. HDF5에서 추출한 deterministic CSV view는 debugging/reporting +보조물로만 둘 수 있다. + +### 8.1 Declared Cases and Artifacts + +| case id | role | exact path | comparison disposition | +| --- | --- | --- | --- | +| `shellnl-s4-final` | nonlinear input | `reference/shellNL/shellNL.inp` | required source input | +| `shellnl-s4-final` | displacement CSV | `reference/shellNL/shellNL displacements.csv` | required comparison | +| `shellnl-s4-final` | reaction CSV | `reference/shellNL/shellNL reactions.csv` | constrained nodes/components only required comparison | +| `shellnl-s4-final` | stress CSV | `reference/shellNL/shellNL stresses.csv` | optional read-only inspection/order evidence only | +| `shell-s4-linear-limit` | linear control input | `reference/shell/shell.inp` | existing linear MITC4 contract의 required regression input | +| `shell-s4-linear-limit` | displacement CSV | `reference/shell/shell displacements.csv` | required regression comparison | +| `shell-s4-linear-limit` | reaction CSV | `reference/shell/shell reactions.csv` | optional read-only inspection only | +| `shell-s4-linear-limit` | stress CSV | `reference/shell/shell stresses.csv` | optional read-only inspection/order evidence only | + +Reference artifact file은 workflow에서 rename, rewrite, normalize, zero-clamp, repair, +regenerate하지 않는다. + +### 8.2 Accepted-State and Frame Mapping + +- `shellnl-s4-final`은 accepted factor-one HDF5 frame만 비교한다. 해당 frame은 + `/steps/Step-1/accepted_frames`에서 `is_factor_one=1`이고 `load_factor=1.0`인 unique row다. + 그 `frame_index`가 `/steps/Step-1/frames/`를 선택한다. +- Required `shellNL` CSV row는 exact `Frame` value + `Increment 10: Step Time = 1.000`만 가져야 하며, 이는 accepted factor-one state로 + 논리 매핑한다. Required row에 다른 `Frame` 값이 있으면 schema mismatch다. +- `shell-s4-linear-limit` CSV에는 `Frame` column이 없으며 + `docs/linear-static-mitc4-shell/io.md`의 existing linear MITC4 final frame + `/steps/Step-1/frames/0`에 매핑한다. +- Trial Newton state, iteration log line, optional stress inventory row는 reference row가 + 아니다. + +### 8.3 Nodal Displacement Projection + +Required logical key는 다음과 같다. + +```text +(case_id, accepted_state, canonical_instance_name, source_node_label, component) +``` + +두 case 모두 instance `PART-1-1`에서 node label `1..49`가 정확히 한 번씩 필요하다. +Instance matching은 case-insensitive로 수행하되 report에는 raw spelling을 보존한다. + +| CSV column | comparison component | nonlinear HDF5 source | linear regression HDF5 source | +| --- | --- | --- | --- | +| `U-U1` | `U1` | `nodal/displacement` column `UX` | `nodal/displacement` column `UX` | +| `U-U2` | `U2` | `nodal/displacement` column `UY` | `nodal/displacement` column `UY` | +| `U-U3` | `U3` | `nodal/displacement` column `UZ` | `nodal/displacement` column `UZ` | +| `UR-UR1` | `UR1` | `nodal/displacement` column `URX` | `nodal/displacement` column `URX` | +| `UR-UR2` | `UR2` | `nodal/displacement` column `URY` | `nodal/displacement` column `URY` | +| `UR-UR3` | `UR3` | `nodal/displacement` column `URZ` | `nodal/displacement` column `URZ` | + +`U1/U2/U3`는 blocking이다. `UR1/UR2/UR3`는 두 case 모두 warning-only다. UR warning +exceedance는 blocking verdict를 바꾸지 않는다. + +### 8.4 Nonlinear Constrained Reaction Projection + +Reaction comparison은 `shellnl-s4-final`에만 적용하며 input boundary mask의 constrained node +중 아래 24개 node에만 적용한다. + +```text +1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33 +``` + +승인 input에서 이 24개 node는 여섯 global DOF가 모두 constrained다. Comparator는 required +HDF5 reaction row eligibility를 CSV zero value가 아니라 `/model/nodal_constraint_mask`와 +source node identity에서 도출한다. + +| CSV columns | logical family | HDF5 source | disposition | +| --- | --- | --- | --- | +| `RF-RF1`, `RF-RF2` | `nonlinear.reaction_inplane_force` | factor-one `/nodal/reaction` columns `RF1,RF2` | blocking | +| `RF-RF3` | `nonlinear.reaction_transverse_force` | factor-one `/nodal/reaction` column `RF3` | blocking | +| `RM-RM1`, `RM-RM2` | `nonlinear.reaction_physical_moment` | factor-one `/nodal/reaction` columns `RM1,RM2`; `J_l(phi)^(-T)` 변환 뒤 spatial physical moment | blocking | +| `RM-RM3` | excluded | comparison projection 없음 | blocking 및 warning-only family에서 제외 | + +Raw generalized rotation-coordinate residual column은 Abaqus `RM` CSV column과 직접 비교하지 +않는다. + +### 8.5 Comparison Families + +External tolerance source는 정확히 `docs/TOLERANCE.md`다. 별도 absolute floor, `max(1,S)` +clamp, row averaging, source-order matching, component calibration, zero clamp는 허용하지 +않는다. + +| family id | case | components | required row count | units / coordinates | disposition | +| --- | --- | --- | ---: | --- | --- | +| `linear.translation` | `shell-s4-linear-limit` | `U1,U2,U3` on nodes `1..49` | 147 | length / global | blocking regression | +| `linear.rotation` | `shell-s4-linear-limit` | `UR1,UR2,UR3` on nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | +| `nonlinear.translation` | `shellnl-s4-final` | `U1,U2,U3` on nodes `1..49` | 147 | length / global | blocking | +| `nonlinear.rotation` | `shellnl-s4-final` | `UR1,UR2,UR3` on nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | +| `nonlinear.reaction_inplane_force` | `shellnl-s4-final` | `RF1,RF2` on constrained nodes | 48 | force / fixed-initial global plane | blocking | +| `nonlinear.reaction_transverse_force` | `shellnl-s4-final` | `RF3` on constrained nodes | 24 | force / fixed-initial global transverse | blocking | +| `nonlinear.reaction_physical_moment` | `shellnl-s4-final` | `RM1,RM2` on constrained nodes | 48 | force*length / global spatial | blocking | + +Reference-model read-only scale audit value는 다음과 같다. + +| family id | `S=max(abs(reference))` | `0.01*S` | +| --- | ---: | ---: | +| `linear.translation` | `2.37408203e-5` | `2.37408203e-7` | +| `linear.rotation` | `7.60725743e-6` | `7.60725743e-8` | +| `nonlinear.translation` | `2.37408203e-5` | `2.37408203e-7` | +| `nonlinear.rotation` | `7.60725743e-6` | `7.60725743e-8` | +| `nonlinear.reaction_inplane_force` | `1.91663182` | `1.91663182e-2` | +| `nonlinear.reaction_transverse_force` | `1.17769805e4` | `1.17769805e2` | +| `nonlinear.reaction_physical_moment` | `1.95418418e4` | `1.95418418e2` | + +### 8.6 Row Prechecks + +아래 조건 중 하나라도 거짓이면 comparator는 tolerance 계산 전에 실패한다. + +1. Exact declared input path와 required CSV path가 존재하고 readable이다. +2. Reference CSV header는 surrounding whitespace trim 뒤 필요한 column을 가진다. +3. `shellnl-s4-final` required row는 exact approved `Frame` value만 포함한다. +4. HDF5 metadata, model rows, accepted-frame table, factor-one frame, required result dataset이 + 문서화된 shape, component name, finite value를 가진다. +5. Wide CSV row는 이 문서의 component mapping으로 component row로 expand한다. +6. Required source wide key와 expanded component key는 unique하다. Duplicate reference 또는 + HDF5 key는 실패다. +7. 각 declared family에서 FESA와 reference projected key set은 정확히 같아야 한다. Missing row와 + extra row는 모두 실패다. +8. 모든 required numeric value는 finite다. Nonfinite HDF5 또는 CSV value는 tolerance 전 실패다. +9. `shellNL` reaction row는 constrained mask와 exact 24-node list에서 선택한다. Free-node CSV + row는 inventory only이며 zero reaction target으로 해석하지 않는다. +10. Required row를 omit, synthesize, average, substitute identity로 sort, normalize, zero-clamp, + repair하지 않는다. + +### 8.7 Stress CSV Disposition + +Optional stress CSV identity는 다음과 같다. + +```text +(case_id, accepted_state, instance, element_label, + element_corner_node_label, section_surface, component) +``` + +현재 stress CSV는 element-corner node row와 `SPOS/SNEG` section surface에서 `S-S11`, +`S-S22`, `S-S33`, `S-S12`를 포함하며, 저장된 ascending element-label block `1..36` 순서를 +갖는다. FESA HDF5는 `GP1..GP4`와 `BOTTOM/MIDDLE/TOP`에서 direct `[S11,S22,S12]`만 emit한다. + +따라서 두 case의 stress CSV는 optional read-only inspection 및 order evidence only다. HDF5 +comparison projection, `S33` synthesis, nodal extrapolation, corner averaging, Gauss-to-corner +matching, element-label-order identity는 없다. + +## 9. Validation Rules + +| validation area | required pass condition | failure class | +| --- | --- | --- | +| CLI usage | input path 정확히 하나; 어떤 argv token에도 exact literal substring `--output` 없음; matching 시 path resolution/parsing/Analysis/log/HDF5 전 `cli-usage` stderr diagnostic 정확히 1개 | usage, exit `2` | +| keyword inventory | keyword가 supported, explicit diagnostic의 unsupported, 또는 exact ignored-with-warning allowlist 중 하나 | input, exit `3` | +| syntax | ASCII keyword/data grammar, comma fields, finite numeric tokens, continuation/include 없음 | input, exit `3` | +| nesting/cardinality | part/assembly/instance/step이 닫힘; nonlinear procedure는 정확히 하나의 `NLGEOM=YES` step | input, exit `3` | +| source identity | scope 내 duplicate name/label 없음; 모든 reference resolved; instance identity unique | input, exit `3` | +| set expansion | explicit/generated set이 deterministic expand되고 하나의 supported scope/instance에 머묾 | input, exit `3` | +| shell element | only `S4/S4R`; 네 개의 distinct resolved nodes; mixed element model 없음; source type metadata 보존 | input/model, exit `3` 또는 `4` | +| material and section | single isotropic elastic material, centered homogeneous positive-thickness shell section, element마다 정확히 하나의 assignment | input/model, exit `3` 또는 `4` | +| geometry and coordinates | finite global coordinates, positive reference/current validity checks, required location마다 valid directors/triads/branches | model 또는 solver trial failure, exit `4` 또는 `5` | +| boundary | DOF `1..6`, resolved finite targets, factor-one absolute meaning, conflicting expanded value 없음 | input, exit `3` | +| load | resolved finite `CLOAD`, stable aggregation, fixed-global dead path, unsupported `DLOAD`/follower/distributed load 없음 | input/model, exit `3` 또는 `4` | +| aggregate moment | exact-zero case 또는 preprocessing 및 모든 entered trial에서 `rho_M<=1e-12` | model/solver, exit `4` 또는 `5` | +| nonlinear static data | 네 positive finite values, endpoint `1.0`, fixed increment sequence with final exact factor one | input, exit `3` | +| Newton iteration | iteration identity `1..100`; iteration `100` acceptance 가능; iteration `101` 없음; line search/cutback/retry/fallback 없음 | solver, exit `5` | +| convergence channels | residual force, residual moment, correction translation, correction rotation이 모두 inclusive `<=` rule 또는 typed zero-scale threshold 통과 | solver, exit `5` | +| nonfinite data | required residual, tangent, correction, state, load, recovery, output value가 acceptance 전 finite | solver/output, exit `5` 또는 `6` | +| commit/rollback | complete converged candidate만 commit; failure는 prior committed state와 prior authoritative final HDF5 보존 | solver/output, exit `5` 또는 `6` | +| HDF5 schema | exact paths, shapes, attributes, schema version, row identities, finite values, accepted-frame table, diagnostics; final replace는 log close success 뒤에만 허용 | output, exit `6` | +| log | UTF-8 no BOM, LF, TAB-separated fixed `label=value` schema; entered Newton iteration마다 record 하나; no per-iteration stderr duplication; no-Newton procedure는 zero-byte empty log; open/write/flush/close fail-closed | output, exit `6` | +| reference rows | exact required artifacts, headers, row keys, component keys, finite values, factor-one frame mapping | reference precheck | +| tolerance | exact `docs/TOLERANCE.md` family-scale row/RMS policy; blocking/warning disposition 보존 | reference verification | + +Downstream test가 다뤄야 하는 approved diagnostic code는 다음을 포함한다. + +| code | class | meaning | +| --- | --- | --- | +| `cli-usage` | usage/2 | argv token이 exact literal substring `--output`을 포함하며 pre-input/pre-log/pre-output failure 하나를 stderr에 기록 | +| `unrecognized-option` | usage/2 | `--output` substring을 포함하지 않는 다른 unsupported option | +| `malformed-keyword` | input/3 | keyword 또는 parameter grammar invalid | +| `invalid-keyword-location` | input/3 | keyword가 approved scope 밖에 위치 | +| `invalid-keyword-parameter` | input/3 | parameter missing, duplicate, empty 또는 subset 밖 | +| `unsupported-keyword` | input/3 | `*INCLUDE` 포함 approved subset 밖 keyword | +| `unsupported-distributed-load` | input/3 | `*DLOAD`, pressure, gravity, body, edge, follower load 요청 | +| `duplicate-entity` | input/3 | source identity가 scope 안에서 duplicate | +| `unresolved-reference` | input/3 | connectivity, set, instance, section, material, load, boundary target dangling | +| `unsupported-element-formulation` | input/3 | shell feature에서 source element type이 `S4` 또는 `S4R`가 아님 | +| `unsupported-mixed-element-model` | input/3 | shell과 non-shell product semantics 혼합 | +| `invalid-shell-connectivity` | input/3 | shell connectivity arity, duplicate node 또는 resolved node identity invalid | +| `unsupported-shell-section-option` | input/3 | composite/layer/offset/orientation/variable-thickness section 의미 등장 | +| `invalid-shell-material` | model/4 | material value가 finite `E,nu` bound 위반 | +| `invalid-shell-thickness` | model/4 | shell thickness nonfinite 또는 nonpositive | +| `invalid-shell-geometry` | model/4 | shell geometry, reference Jacobian 또는 topology invalid | +| `opposed-incident-normal` | model/4 | averaging 전 incident normal pair가 nonpositive | +| `invalid-shell-director` | model/4 | nodal/interpolated director, triad 또는 branch validity 실패 | +| `invalid-shell-jacobian` | model/4 | required Gauss/tying/center/recovery point의 basis/Jacobian invalid | +| `unsupported-drilling-load` | model/4 또는 solver/5 | aggregate nodal moment가 current-director admissibility 위반 | +| `invalid-nonlinear-static-data` | input/3 | `*STATIC` row arity, finite/positive check 또는 endpoint-one identity 실패 | +| `unsupported-analysis-procedure` | input/3 | supported nonlinear static source step으로 매핑되지 않음 | +| `nonfinite-newton-data` | solver/5 | required residual, tangent, correction 또는 trial state nonfinite | +| `tangent-factorization-failed` | solver/5 | entered iteration의 fresh tangent factorization 실패 | +| `correction-solve-failed` | solver/5 | fresh Newton correction solve 실패 | +| `nonlinear-nonconvergence` | solver/5 | iteration `100` 완료 후 네 convergence channel이 모두 통과하지 않음 | +| `invalid-accepted-state` | solver/5 | converged candidate recovery/state identity가 commit 전 실패 | +| `log-output-failure` | output/6 | required live log create/open/truncate, write, flush 또는 close 실패 | +| `output-busy` | output/6 | same derived pair single-writer lock을 획득하지 못했거나 lock path collision 발생 | +| `hdf5-output-failure` | output/6 | candidate HDF5 write, schema validation 또는 atomic finalization 실패 | + +## 10. Open Issues and Downstream Handoff + +Open issues blocking Implementation Planning: 없음. + +Downstream handoff to Implementation Planning Agent through Coordinator: + +- Public CLI/output naming migration을 보존한다: `fesa.exe `, + lexical sibling `_results.h5`, `_log.txt`, 그리고 exact literal substring + `--output`을 포함하는 모든 argv token의 pre-input/pre-log/pre-output exit `2`와 정확히 + 하나의 `cli-usage` stderr diagnostic. +- Supported/unsupported/ignored keyword row와 nonlinear `*STATIC` rule을 parser + acceptance/rejection test로 변환한다. +- Stored reference grammar인 `*Output, field, variable=PRESELECT`와 + `*Output, history, variable=PRESELECT`를 duplicate/extra parameter 없이 + `ignored-with-warning`으로 수용하고, output request가 FESA output을 바꾸지 못함을 test한다. +- `NLGEOM=YES`가 nonlinear procedure를 선택하고 `shell` `NLGEOM=NO` case가 기존 linear + MITC4 contract의 regression으로 남는지 test한다. +- HDF5 schema version `1`을 위 accepted-frame schema 그대로 구현한다. Factor-zero non-frame + handling, unique factor-one frame selection, triad/director projection, no + compression/chunking, no trial-state HDF5 history를 포함한다. +- 비대칭 lifecycle을 보존한다. Log는 usage validation, lexical path derivation, single-writer + lock 뒤 live current-run audit이고, log create/open/truncate는 Analysis 전 abort, write/flush는 + 즉시 abort, close failure는 HDF5 commit을 block한다. HDF5 final은 log close와 candidate + self-check 성공 뒤에만 replace하며 failure는 prior valid final과 current log를 손상하지 않는다. +- Newton log parser/schema test는 UTF-8 no BOM, LF, physical TAB-separated fixed + `label=value` field order, finite round-trip numerics, escaping, completed-gate four-channel + metrics, early-failure `not-evaluated(reason)`, no-Newton zero-byte log, zero per-iteration + stderr duplication, flush-before-next/return을 포함한다. +- Exact CSV paths, trimmed headers, exact `shellNL` `Frame` value, source node/component + identity, constrained reaction mask, missing/extra/duplicate rows, nonfinite values를 + tolerance 전에 precheck한다. +- Declared family에는 `docs/TOLERANCE.md`만 적용한다. `U`는 blocking, `UR`은 warning-only, + `RF1/RF2`, `RF3`, physical spatial `RM1/RM2`는 blocking으로 유지하고 `RM3`와 모든 stress + CSV value는 제외한다. +- Optional stress CSV는 read-only inventory/order evidence only로 유지한다. Nodal stress + extrapolation, corner averaging, `S33` synthesis, element-label-order matching을 추가하지 + 않는다. +- Final HDF5 projection, parser diagnostics, schema tests, reference comparison tests, + log lifecycle tests는 Coordinator를 통해 전달한다. 이 문서만으로 parser, C++ API, + reference artifact, comparison-result, physics, release 변경을 승인하지 않는다. diff --git a/docs/nonlinear-static-newton-raphson/numerical-review.md b/docs/nonlinear-static-newton-raphson/numerical-review.md new file mode 100644 index 0000000..2477962 --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/numerical-review.md @@ -0,0 +1,188 @@ +# Nonlinear Static Newton-Raphson 수치 검토 + +## 1. Metadata and source formulation + +- feature_id: `nonlinear-static-newton-raphson` +- source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` +- source_formulation_status: `ready-for-numerical-review` +- source_formulation_sha256: `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` +- source_requirements: `docs/nonlinear-static-newton-raphson/requirements.md` +- source_requirements_sha256: `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` +- source_research: `docs/nonlinear-static-newton-raphson/research.md` +- source_research_sha256: `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` +- repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/TOLERANCE.md` +- related_linear_contracts: `docs/linear-static-mitc4-shell/numerical-review.md`, + `docs/linear-static-mitc4-shell/reference-model.md` +- status: `pass-for-io-definition` +- owner_agent: `numerical-review-agent` +- date: `2026-08-23` + +이 검토는 정식화를 수학 및 수치 알고리즘 계약으로만 검토했다. C++ API, HDF5 schema, +implementation plan, reference solver 실행, reference artifact 생성/수정은 수행하지 않았다. + +## 2. Review Verdict + +- verdict: `pass-for-io-definition` +- reason: 승인 정식화는 fixed-initial-reference Total Lagrangian MITC4, finite rotation + state, nonlinear `24 -> 20` map, objective drilling, fixed-global load work, + same-trial residual/tangent, Full Newton convergence, recovery와 state commit/rollback + 의미를 구현 가능한 수치 계약으로 닫고 있다. 차원, 부호, DOF 순서, 적분, reaction + 의미 또는 reference identity와 충돌하는 blocking defect는 확인되지 않았다. +- reference readiness: `reference/shellNL` 및 `reference/shell`의 선언 파일과 CSV는 + 읽을 수 있고 row identity/precheck/tolerance 계약을 정의할 수 있다. +- boundary: 이 verdict는 I/O Definition 진입 허가이며 implementation, reference comparison + pass, physics evaluation 또는 release readiness 승인이 아니다. + +`reference/shellNL`은 `nlgeom=YES`와 factor-one final frame을 갖는 저장 reference로 사용할 수 +있지만, 주요 `U3`와 stress 값은 선형 `reference/shell`과 거의 같다. 관찰된 nonlinear 신호는 +주로 약한 in-plane coupling이다(`RF1/RF2` 최대 약 `1.9166`, `U1/U2` 최대 약 +`1.29e-11`). 따라서 이 CSV 세트만으로 finite-rotation objectivity, exact tangent, +rollback 또는 큰 변위 benchmark를 통과했다고 판단하지 않는다. 해당 항목은 아래의 +blocking internal tests로 분리한다. + +## 3. Critical Findings + +### Confirmed defects + +없음. Formulation Agent 또는 Research Agent로 즉시 되돌릴 confirmed numerical defect는 없다. + +### Numerical risks requiring downstream evidence + +- `shellNL`의 stored reference는 geometric nonlinearity가 켜진 최종 상태 비교에는 충분하지만 + response amplitude가 작아 finite-rotation/tangent/objectivity 검증을 대신하지 못한다. +- Abaqus stress CSV는 `(instance, element label, element-corner node label, + section point, component)` identity로 완전하지만 FESA의 approved Gauss-location direct + bottom/middle/top recovery와 location이 다르다. Current stored order는 element label + `1..36` ascending block이며 이를 바꾸지 않는다. Nodal extrapolation/averaging을 만들지 + 않고 stress CSV는 comparison family에서 제외한다. +- External `UR` comparison은 기존 MITC4 정책에 따라 `warning-only`다. Rotation/director + correctness는 `Q`, `d`, branch, objectivity invariant tests에서 blocking으로 확인해야 한다. + +### Open questions + +현재 I/O Definition 진입을 막는 open question은 없다. Large-response public benchmark, +MMS, broader locking/distortion characterization은 유용하지만 승인된 Stage 4 pass 조건은 아니다. + +## 4. Numerical Risk Assessment + +| risk label | assessment | required control / downstream evidence | +| --- | --- | --- | +| `rigid_body_modes` | 물리/internal/drill energy가 finite rigid motion에서 objective해야 하며 pure drill만 regularized 되어야 한다. | finite rigid translation/rotation superposition에서 strain, stress, physical energy, drill gamma, residual을 blocking invariant로 확인한다. | +| `patch_test` | Green-Lagrange direct strain과 MITC tied shear가 같은 trial geometry와 같은 first/second variation을 써야 한다. | membrane, bending, twist, transverse-shear patch를 linear limit와 finite valid trial perturbation에서 각각 확인한다. | +| `symmetry` | applied nodal moment가 없으면 physical/drill tangent는 exact arithmetic에서 symmetric이다. Fixed-spatial moment work tangent는 일반적으로 nonsymmetric이다. | no-moment case만 scaled symmetry check 대상으로 두고, moment case를 임의 symmetrization하지 않는다. | +| `positive_definiteness` | nonlinear tangent는 load state, compression, near-buckling에서 indefinite일 수 있다. Positive definiteness는 일반 gate가 아니다. | stress-free constrained linear limit의 nonsingular solve와 singular negative case를 분리하고, factorization failure를 숨기지 않는다. | +| `hourglass` | S4/S4R 모두 `2 x 2 x 2` full integration이므로 one-point reduced hourglass path는 승인 범위 밖이다. | source type으로 reduced/selective integration 또는 hourglass stabilization을 선택하지 않는 unit/integration test가 필요하다. | +| `shear_locking` | MITC shear tying은 transverse-shear locking을 완화하지만 모든 thin-shell mesh에서 locking-free를 보장하지 않는다. | patch/reference evidence를 blocking으로 두고 broader thin/thick convergence는 nonblocking characterization으로 둔다. | +| `volumetric_locking` | approved plane-stress shell, St. Venant-Kirchhoff-type material restriction에서는 `N/A`다. | 3-D incompressible material 또는 `nu >= 0.5` 의미로 확장하지 않는다. | +| `membrane_locking` | original-style MITC4는 curved/distorted nonlinear meshes에서 membrane locking 위험이 남는다. | known limitation으로 기록한다. MITC4+ 성능 또는 Abaqus S4/S4R internal equivalence를 주장하지 않는다. | +| `distortion` | positive Jacobian이라도 severe distortion/warpage는 conditioning과 stress accuracy를 악화할 수 있다. | 모든 Gauss/tying/center/recovery location의 finite, positive predicate를 fail-closed로 적용한다. 추가 quality cutoff는 요구하지 않는다. | +| `singular_jacobian` | `J0 <= 0`, `j <= 0`, invalid reciprocal basis, invalid polar stretch는 residual/tangent를 무효화한다. | failed location을 omit/average/clamp/repair하지 않고 model/trial failure로 처리한다. | +| `conditioning` | thin shells, small fixed drill scale, near-mechanism constraints는 Kff conditioning을 악화시킬 수 있다. | scaled matrix diagnostics만 사용하고 solver regularization/fallback으로 singularity를 숨기지 않는다. | +| `convergence` | Full Newton은 same-trial consistent tangent에 의존한다. No line search/cutback이므로 difficult step은 deterministic nonconvergence가 될 수 있다. | NSNR-069/070 four-channel gates, iteration `1..100`, nonfinite rejection, no hidden retry를 integration tests로 고정한다. | + +## 5. Consistency Checks + +| check | result | evidence | +| --- | --- | --- | +| units and dimensions | `pass` | Translation/force, rotation/moment, stress/resultant dimensions are separated. Convergence channels keep force, force-length, length and dimensionless rotation separate. | +| signs and residual convention | `pass` | Global residual is `f_int - f_ext`; constrained full residual is reaction and free residual is equilibrium evidence. Fixed-global dead force has no configuration derivative. | +| DOF ordering and free/constrained assumptions | `pass` | Per-node global order is `[UX, UY, UZ, URX, URY, URZ]`; Newton solve uses stable free coordinates with `Delta q_c = 0`. Valid `0 x 0` free system is trivial success. | +| coordinate transforms | `pass` | `Q=Exp(phi^)Q0`, left-spatial update, `J_l` variation, physical swing map and spatial reaction moment conversion are explicitly defined. | +| kinematic operator / B matrix | `pass` | Green-Lagrange strain, MITC shear projection and both first/second variations use the same trial identity. | +| constitutive contract | `pass` | Constant symmetric `C5` maps engineering Green-Lagrange strain to second Piola-Kirchhoff stress; no material history is introduced. | +| Jacobian rules | `pass` | Fixed reference `J0` is integration measure; current `j` and `det F_c` are validity checks. Failed locations are not skipped. | +| integration policy | `pass` | S4 and S4R share four midsurface Gauss points times two thickness points; reduced/selective integration is prohibited. | +| residual/tangent consistency | `pass` | Complete tangent includes material, geometric, map-Hessian, objective drill Hessian and fixed-spatial moment work derivative terms. | +| tangent symmetry expectation | `pass` | Symmetric only for conservative no-applied-moment case; generally nonsymmetric moment tangent must remain unsymmetrized. | +| output locations | `pass-with-handoff` | Nodal U/UR/RF/RM and shell stress/resultant logical quantities are defined; exact HDF5 projection remains I/O-owned. Current nodal SPOS/SNEG stress CSV는 Gauss direct recovery와 일대일 대응하지 않으므로 external numerical comparison은 N/A다. | + +## 6. Verification Readiness + +### Blocking internal numerical tests + +Implementation Planning shall carry these as feature-required tests before any reference-comparison success claim: + +Mixed translation/rotation 검사는 fixed-reference characteristic length +`L=max(||X_I-X_J||)`와 node block `Dq=diag(L I3,I3)`를 사용한다. Tangent test direction은 +`||p_hat||inf=1`, perturbation은 `q +/- h Dq p_hat`으로 두고 +`h={1e-3,3e-4,1e-4,3e-5,1e-5,3e-6,1e-6,3e-7}` 전부를 검사한다. Roundoff plateau 전 +최소 두 interval에서 centered-difference observed order `>=1.5`이고 한 interior point가 +scaled error `<=1e-6`여야 한다. Single-`h` 우연 통과는 허용하지 않는다. + +1. Linear limit: at stress-free `q=0`, nonlinear element residual/tangent/recovery reduce to approved linear MITC4 signs, `2 x 2 x 2` integration and physical/drill split. +2. Rotation state invariants: every committed/trial `Q` satisfies `||Q^T Q-I||_F <= 1e-12`, + `|det(Q)-1| <= 1e-12`, and `d=Q e3`. Global/swing/twist `pi` branch angular margin은 + `sqrt(epsilon_double)`, 약 `1.4901161193847656e-8` rad보다 커야 한다. +3. Tangent directional derivative: compare `Dq^T K_T Dq p_hat` with the central + residual derivative under the schedule above in separated force and moment channels. + Zero analytical directions require exact-zero construction and scaled absolute error + `<=1e-10`; nonfinite metric은 허용하지 않는다. +4. No-moment tangent symmetry: after work-conjugate congruence `Dq^T K_T Dq`, no-applied-moment + tangent scaled Frobenius symmetry error `<=1e-12`; applied fixed-spatial moment cases are checked for + exact derivative consistency, not symmetry. +5. Finite rigid objectivity: superposed finite rigid motion leaves physical strain/stress, + physical energy, drill gamma/energy and internal residual at scaled `<=1e-10` levels. +6. Patch/sign recovery: membrane, bending, twist and transverse shear patch states preserve + component order and bottom/top stress signs. + Analytical strain/resultant/stress error is relative `<=1e-9`. +7. Load and boundary path: fixed-global force/moment source identity, `rho_M <= 1e-12` + rejection/projection, absolute factor-one boundary path and zero constrained Newton + correction are tested independently. +8. Newton lifecycle: factor identities use ordinal `j*h` values strictly below one, + followed by one exact assigned `1.0`; cumulative `lambda += h`와 tolerance-based duplicate + endpoint는 금지한다. For `shellNL` the expected intended factors are `0.1, 0.2, ..., + 1.0`. Iterations are `1..100`, pass at `100` is allowed, iteration `101` is forbidden. +9. Convergence gates: NSNR-069/070 four-channel inclusive `<=` rules, typed zero-scale + `1e-3` thresholds and nonfinite rejection are tested without adding energy or line-search gates. +10. Commit/rollback and determinism: failed trial, recovery, solve or output does not mutate + the prior committed state or prior authoritative final result; row/diagnostic order is stable. + +### Downstream reference comparisons + +The required stored-reference cases and logical quantities are defined in +`docs/nonlinear-static-newton-raphson/reference-model.md`. + +- `shellnl-s4-final` is the primary nonlinear external reference at accepted factor one. +- `shell-s4-linear-limit` is the read-only linear-limit/reference-identity regression for the + same S4 mesh. Current stress element-label ordering is inventoried without becoming a + comparison quantity. + +External comparison uses only accepted-state quantities and `docs/TOLERANCE.md`. Missing, +extra, duplicate or nonfinite required rows fail before tolerance. The comparison result itself +is Implementation Agent ownership. + +## 7. Required Revisions + +### Formulation Agent + +None before I/O Definition. The current formulation is numerically sufficient for the I/O +contract. Current source element/node SPOS/SNEG stress CSV에 맞추기 위한 extrapolation, +averaging 또는 새 recovery 의미는 추가하지 않는다. + +### Research Agent + +None before I/O Definition. Public large-response benchmarks and shell MMS remain useful future +evidence, but the current Stage 4 gate does not require another research pass. + +### I/O Definition Agent + +Define parser/semantic/HDF5/log projection for the logical quantities and row identities in +`reference-model.md`. Preserve the split between blocking internal nonlinear tests and external +stored reference comparison; do not claim Abaqus internal equivalence. + +## 8. Downstream Handoff + +For I/O Definition Agent through Coordinator: + +- Use accepted factor-one frames only for external reference comparison; trial Newton states are + not reference quantities. +- Preserve required source identity: case, accepted state, instance, node label and component. + Stress artifact의 element/node/section identity와 stored element-label order는 read-only + inventory로 보존하되 FESA comparison row로 합성하지 않는다. +- Keep `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. For `shellNL`, compare + constrained `RF1/RF2`, `RF3`, and spatial physical `RM1/RM2` in the separate blocking + families from `reference-model.md`. `RM3`와 stress는 comparison에서 제외한다. +- Apply `docs/TOLERANCE.md` exactly; do not add an independent absolute floor, row averaging, + source-order matching, or calibration gate. +- Treat `shellNL` as weak but valid nonlinear final-state reference evidence; require the + blocking internal tests above for tangent/objectivity/rollback/finite-rotation correctness. diff --git a/docs/nonlinear-static-newton-raphson/reference-model.md b/docs/nonlinear-static-newton-raphson/reference-model.md new file mode 100644 index 0000000..fb5416c --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/reference-model.md @@ -0,0 +1,237 @@ +# Nonlinear Static Newton-Raphson Reference Model + +## 1. Metadata + +- feature_id: `nonlinear-static-newton-raphson` +- source_requirements: `docs/nonlinear-static-newton-raphson/requirements.md` +- source_research: `docs/nonlinear-static-newton-raphson/research.md` +- source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` +- source_numerical_review: `docs/nonlinear-static-newton-raphson/numerical-review.md` +- status: `pass-for-io-definition` +- owner_agent: `numerical-review-agent` +- date: `2026-08-23` +- artifact_policy: `read-only-existing-files` +- tolerance_policy: `docs/TOLERANCE.md` + +이 문서는 logical reference quantity, source identity, component matching, row precheck와 +blocking/warning 분류만 정의한다. 최종 HDF5 dataset projection은 I/O Definition Agent 소유다. + +## 2. Reference Acceptance Scope + +Required scope는 두 stored case다. + +- `shellnl-s4-final`: `nlgeom=YES` nonlinear static S4 final accepted state를 비교하는 + primary external reference case. +- `shell-s4-linear-limit`: 같은 S4 mesh의 `nlgeom=NO` read-only linear-limit/reference-identity + regression case. 이 case는 nonlinear response evidence가 아니며, 현재 stress CSV의 element-label + ordering을 row-order matching으로 사용하지 않는다. + +`shellNL`은 final-state reference comparison에는 충분하지만 weak nonlinear response다. Dominant +`U3`/stress 값이 linear case와 거의 같으므로 finite-rotation objectivity, consistent tangent, +commit/rollback과 convergence lifecycle은 `numerical-review.md`의 blocking internal tests로 검증한다. + +## 3. Reference Case Inventory with exact input and required CSV paths + +| case id | artifact role | required comparison artifact | exact path | observed status | +| --- | --- | --- | --- | --- | +| `shellnl-s4-final` | nonlinear input | yes | `reference/shellNL/shellNL.inp` | readable; S4, 49 nodes, 36 elements, `NLGEOM=YES` | +| `shellnl-s4-final` | displacement reference | yes | `reference/shellNL/shellNL displacements.csv` | 49 finite unique node rows; one factor-one Frame | +| `shellnl-s4-final` | reaction reference | yes | `reference/shellNL/shellNL reactions.csv` | 49 finite unique node rows; one factor-one Frame | +| `shellnl-s4-final` | stress review evidence | no | `reference/shellNL/shellNL stresses.csv` | 288 finite unique rows; element labels `1..36` in stored ascending blocks | +| `shell-s4-linear-limit` | linear control input | yes | `reference/shell/shell.inp` | readable; S4, 49 nodes, 36 elements, `NLGEOM=NO` | +| `shell-s4-linear-limit` | displacement reference | yes | `reference/shell/shell displacements.csv` | 49 finite unique node rows; no `Frame` column | +| `shell-s4-linear-limit` | reaction review evidence | no | `reference/shell/shell reactions.csv` | 49 finite unique node rows | +| `shell-s4-linear-limit` | stress review evidence | no | `reference/shell/shell stresses.csv` | 288 finite unique rows; element labels `1..36` in stored ascending blocks | + +`required comparison artifact=no`인 파일도 이번 review에서 읽기 가능성, row identity, +finite values와 current ordering을 확인했다. 그러나 해당 파일은 missing-required-artifact +판정이나 tolerance family를 만들지 않는다. + +두 `.inp`는 같은 node/element/connectivity, material/section, instance, boundary와 center-node +`CLOAD`를 사용한다. Text 차이는 heading identity, `NLGEOM=NO -> YES`, 그리고 `*STATIC` +data `1.,1.,1e-05,1. -> 0.1,1.,0.001,0.1`이다. 따라서 `shellNL`은 실제 nonlinear +selector와 승인된 fixed increment `0.1`을 갖지만, 두 deck 차이를 오직 `NLGEOM` 하나의 +isolated effect라고 표현하지 않는다. + +Read-only SHA-256 observations: + +| path | SHA-256 | +| --- | --- | +| `reference/shellNL/shellNL.inp` | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| `reference/shellNL/shellNL displacements.csv` | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| `reference/shellNL/shellNL reactions.csv` | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| `reference/shellNL/shellNL stresses.csv` | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| `reference/shell/shell.inp` | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | +| `reference/shell/shell displacements.csv` | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | +| `reference/shell/shell reactions.csv` | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | +| `reference/shell/shell stresses.csv` | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | + +## 4. Source Identity and Component Contract + +### 4.1 Accepted-state identity + +- Abaqus identifiers are case-insensitive semantic identities. Input spelling + `Part-1-1` and CSV spelling `PART-1-1` match as one instance while original text is + retained in artifacts and reports; no file or row is rewritten. +- `shellnl-s4-final` rows require exact CSV `Frame` value + `Increment 10: Step Time = 1.000`, mapped logically to the accepted factor-one state. +- `shell-s4-linear-limit` rows have no `Frame` column and map to the single final static state. +- Row order is never a matching identity. It may only be used for deterministic reporting after + source keys are matched. + +### 4.2 Nodal displacement contract + +Required mapping is `U-U1/U-U2/U-U3 -> U1/U2/U3` and +`UR-UR1/UR-UR2/UR-UR3 -> UR1/UR2/UR3`. U is global length; UR is the +dimensionless fixed-initial global rotation-vector output. Logical key is + +```text +(case_id, accepted_state, canonical_instance_name, source_node_label, component) +``` + +Both cases require source node labels `1..49` exactly once. U components form one +blocking translation family and UR components form one warning-only rotation family, +preserving the project MITC4 classification. + +### 4.3 Nonlinear reaction contract + +Reaction comparison applies only to `shellnl-s4-final` and only to the input boundary +`Set-2` nodes: + +```text +1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33 +``` + +All six global components are constrained at these 24 nodes. Other CSV node rows remain +part of file/schema/finite inventory but are not numerical reaction rows: FESA free entries +are equilibrium residual evidence, not Abaqus free-node zero reactions. + +| CSV components | logical quantity | FESA meaning | disposition | +| --- | --- | --- | --- | +| `RF-RF1`, `RF-RF2` | fixed-initial shell-plane reaction force | constrained translational full residual, global force | blocking family | +| `RF-RF3` | fixed-initial transverse reaction force | constrained translational full residual, global force | blocking family | +| `RM-RM1`, `RM-RM2` | tangent-plane spatial reaction moment | `J_l(phi)^(-T)` conversion of the constrained generalized reaction, global force-length | blocking family | +| `RM-RM3` | director/drilling-axis reaction review value | stabilization-dependent; no physical external equivalence target | excluded | + +In-plane and transverse force are distinct model-fixed logical projections and therefore +use distinct families. Raw generalized rotation-coordinate residual is not matched directly +to the CSV `RM` value. + +### 4.4 Stress review identity and comparison exclusion + +Stress rows have read-only identity + +```text +(case_id, accepted_state, instance, element label, + element-corner node label, SPOS/SNEG section surface, component) +``` + +Every current element has its four connectivity nodes and one `SPOS` plus one `SNEG` +row per node. The files are ordered in contiguous ascending element-label blocks `1..36`; +this exact artifact order is retained and no node/surface secondary reorder is applied. + +The identity is nevertheless not the approved FESA recovery location: FESA emits direct +`[S11,S22,S12]` at four midsurface Gauss locations and bottom/middle/top positions, without +nodal extrapolation or averaging, and does not emit `S33`. Consequently no stress column +forms a blocking or warning-only comparison family. Stress files remain optional read-only +review evidence only. + +### 4.5 Comparison families + +| family id | components and source set | row count | units / coordinates | disposition | +| --- | --- | ---: | --- | --- | +| `linear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | length / global | blocking regression | +| `linear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | +| `nonlinear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | length / global | blocking | +| `nonlinear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | +| `nonlinear.reaction_inplane_force` | `RF1,RF2`, 24 constrained nodes | 48 | force / fixed-initial global plane | blocking | +| `nonlinear.reaction_transverse_force` | `RF3`, 24 constrained nodes | 24 | force / fixed-initial global transverse | blocking | +| `nonlinear.reaction_physical_moment` | `RM1,RM2`, 24 constrained nodes | 48 | force-length / global spatial | blocking | + +## 5. Row Prechecks + +Before tolerance, the comparator shall fail the affected comparison if any required condition +below is false. + +1. Exact declared input path and every `required comparison artifact=yes` CSV path for the + case exist and are readable. +2. Required headers are present after trimming surrounding whitespace from header names. +3. `shellnl-s4-final` contains only the exact required `Frame` value for required rows. +4. Wide CSV rows expand to component rows using the component contract in Section 4. +5. Required source row keys are unique. Duplicate wide keys or duplicate expanded component keys fail. +6. Displacement projection requires all 49 source nodes and declared components. Nonlinear + reaction projection derives the exact 24-node/component set from the input constraint mask; + it does not infer reaction identity from CSV zero values. +7. FESA and reference required projected row-key sets are exactly equal: missing and extra rows + both fail. +8. Every required numeric value is finite. Nonfinite required FESA or CSV value fails before tolerance. +9. Optional stress inventory uses `(instance, element label, node label, section point)` and verifies + the current ascending element-label blocks, connectivity nodes and SPOS/SNEG pair. This inspection + does not create a stress equality gate. +10. Required rows are not omitted, synthesized, normalized, averaged, sorted into a different identity, + zero-clamped, or repaired. + +Observed read-only inventory used for this contract: + +| CSV | observed wide key columns | duplicate wide keys | nonfinite observed values | observed element labels | +| --- | --- | ---: | ---: | --- | +| `reference/shellNL/shellNL displacements.csv` | `Frame`, `Part Instance Name`, `Node Label` | 0 | 0 | N/A | +| `reference/shellNL/shellNL reactions.csv` | `Frame`, `Part Instance Name`, `Node Label` | 0 | 0 | N/A | +| `reference/shellNL/shellNL stresses.csv` | `Frame`, `Part Instance Name`, `Element Label`, `Node Label`, `Section Point` | 0 | 0 | `1..36` | +| `reference/shell/shell displacements.csv` | `Part Instance Name`, `Node Label` | 0 | 0 | N/A | +| `reference/shell/shell reactions.csv` | `Part Instance Name`, `Node Label` | 0 | 0 | N/A | +| `reference/shell/shell stresses.csv` | `Part Instance Name`, `Element Label`, `Node Label`, `Section Point` | 0 | 0 | `1..36` | + +## 6. Tolerance and Blocking/Warning Policy + +Use exactly `docs/TOLERANCE.md` for every external reference family. This report does not invent +or calibrate tolerance values. + +For each comparison family: + +- `S = max(abs(reference_value_i))`, using reference values only. +- near-zero band is `0.01*S`. +- if `abs(reference_value_i) <= 0.01*S`, row passes iff `abs(fesa-reference) <= 0.01*S`. +- otherwise row passes iff relative error `<= 0.05`. +- family relative RMS is `RMS(error)/S <= 0.01`. +- no independent absolute-error floor, `max(1, S)` clamp, row omission, averaging, or zero clamp is allowed. +- if `S = 0`, the family passes only when all FESA values are exactly zero; otherwise report + `zero-reference-scale-nonzero-error`. + +Families are separated by the exact case/logical quantities in Section 4.5. Current +reference-only scales provide a reproducible reader/comparator audit: + +| family | `S` | `B=0.01*S` | +| --- | ---: | ---: | +| `linear.translation` | `2.37408203e-5` | `2.37408203e-7` | +| `linear.rotation` | `7.60725743e-6` | `7.60725743e-8` | +| `nonlinear.translation` | `2.37408203e-5` | `2.37408203e-7` | +| `nonlinear.rotation` | `7.60725743e-6` | `7.60725743e-8` | +| `nonlinear.reaction_inplane_force` | `1.91663182` | `1.91663182e-2` | +| `nonlinear.reaction_transverse_force` | `1.17769805e4` | `1.17769805e2` | +| `nonlinear.reaction_physical_moment` | `1.95418418e4` | `1.95418418e2` | + +Any `blocking` family row or RMS failure fails the reference comparison for the feature. +`warning-only` failures produce deterministic warning evidence but do not change the blocking +verdict. `RM3` and stress artifacts create neither a blocking nor warning-only tolerance family. + +## 7. Open Issues and I/O Handoff + +Open issues blocking I/O Definition: 없음. + +I/O Definition Agent handoff: + +- Project only the comparison quantities in Sections 4.2, 4.3 and 4.5 to authoritative FESA + result datasets without changing source identity or final comparison disposition. +- Preserve `Frame` handling for `shellnl-s4-final` as accepted factor-one state identity; do not expose + trial Newton history as reference rows. +- Derive constrained reaction identity from the input mask. Compare `RM1/RM2` with the global + spatial physical reaction moment, not the raw generalized rotation-coordinate covector. +- Preserve approved Gauss direct stress recovery. Do not create element-corner stress, + extrapolation, averaging or a stress CSV projection for the current optional SPOS/SNEG artifacts. +- Keep `RM3`, `S-S33`, `S-S11`, `S-S22` and `S-S12` out of current comparison families. +- Use the common tolerance policy exactly as written above and in `docs/TOLERANCE.md`. + +Reference artifact status: complete for I/O Definition. No declared required input or required +comparison CSV is missing or unreadable. Optional stress CSVs are present and readable as inventory +evidence only. No reference artifact was generated, renamed, repaired, normalized, or modified. diff --git a/include/fesa/analysis/analysis.h b/include/fesa/analysis/analysis.h index 8a11b03..29a95a4 100644 --- a/include/fesa/analysis/analysis.h +++ b/include/fesa/analysis/analysis.h @@ -7,10 +7,11 @@ namespace fesa { -/// @brief Carries input and authoritative output paths for one analysis run. +/// @brief Carries input, authoritative output, and diagnostic-log paths. struct AnalysisRequest { std::filesystem::path input_path; std::filesystem::path output_path; + std::filesystem::path log_path; }; /// @brief Defines the minimal execution contract shared by analysis procedures. diff --git a/include/fesa/app/fesa_application.h b/include/fesa/app/fesa_application.h index 3d0f447..a4ea467 100644 --- a/include/fesa/app/fesa_application.h +++ b/include/fesa/app/fesa_application.h @@ -9,8 +9,8 @@ namespace fesa { /// @brief Owns the argv-independent CLI contract and stable process exit codes. class FesaApplication { public: - /// @brief Runs one solver invocation from operands and options after argv[0]. - /// @param arguments Input path and optional `--output` pair. + /// @brief Runs one solver invocation from arguments after argv[0]. + /// @param arguments One input path with no unsupported option token. /// @return The stable CLI exit code for usage, input, model, solver, or /// output status. int Run(const std::vector& arguments); diff --git a/include/fesa/app/output_paths.h b/include/fesa/app/output_paths.h new file mode 100644 index 0000000..a90d1bb --- /dev/null +++ b/include/fesa/app/output_paths.h @@ -0,0 +1,58 @@ +#ifndef FESA_APP_OUTPUT_PATHS_H_ +#define FESA_APP_OUTPUT_PATHS_H_ + +#include +#include +#include +#include + +#include "fesa/core/status.h" + +namespace fesa { + +/// @brief Names the input and user-addressed output files for one invocation. +struct DerivedOutputPaths { + std::filesystem::path input_path; + std::filesystem::path results_path; + std::filesystem::path log_path; +}; + +/// @brief Retains exclusive ownership of one derived output pair. +/// @note The lease owns a platform-private lock and must outlive output I/O. +class OutputWriteLease { + public: + OutputWriteLease(const OutputWriteLease&) = delete; + OutputWriteLease& operator=(const OutputWriteLease&) = delete; + OutputWriteLease(OutputWriteLease&&) noexcept; + OutputWriteLease& operator=(OutputWriteLease&&) noexcept; + ~OutputWriteLease(); + + private: + class Impl; + + friend Result AcquireOutputWriteLease( + const DerivedOutputPaths& paths); + + explicit OutputWriteLease(std::unique_ptr impl) noexcept; + + std::unique_ptr impl_; +}; + +/// @brief Validates CLI operands and derives lexical sibling output paths. +/// @param arguments Arguments after argv[0]. +/// @param invocation_cwd Lexical base for a relative input path. +/// @return The input/result/log path triplet or a usage failure. +/// @note This function does not resolve symlinks, junctions, or short names. +Result DeriveSingleInputOutputPaths( + const std::vector& arguments, + const std::filesystem::path& invocation_cwd); + +/// @brief Acquires exclusive ownership for writes to one output pair. +/// @return A move-only lease or an output-busy failure. +/// @note The lease does not create, truncate, or replace public output files. +Result AcquireOutputWriteLease( + const DerivedOutputPaths& paths); + +} // namespace fesa + +#endif // FESA_APP_OUTPUT_PATHS_H_ diff --git a/phases/index.json b/phases/index.json index 158cbc8..e6f8923 100644 --- a/phases/index.json +++ b/phases/index.json @@ -13,6 +13,10 @@ "dir": "cpp-object-oriented-modular-refactoring", "status": "completed", "completed_at": "2026-08-16T13:54:51+0900" + }, + { + "dir": "nonlinear-static-newton-raphson", + "status": "pending" } ] -} \ No newline at end of file +} diff --git a/phases/nonlinear-static-newton-raphson/step0.md b/phases/nonlinear-static-newton-raphson/step0.md new file mode 100644 index 0000000..46afd04 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step0.md @@ -0,0 +1,136 @@ +# Step 0: cli-output-lease-and-derived-names + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/SOLVER_AGENT_DESIGN.md` +- `docs/HARNESS.md` +- `docs/HARNESS_WORKFLOW.md` +- `.codex/hooks.json` +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `src/fesa/app/fesa_application.cpp` +- `include/fesa/app/fesa_application.h` +- `include/fesa/analysis/analysis.h` +- `tests/integration/app/fesa_application_test.cpp` +- `src/fesa/CMakeLists.txt` +- `tests/CMakeLists.txt` + +## 이전 Step 전제 + +없음. 이 Step은 app/CLI output lifecycle의 첫 변경이다. + +## 소유 파일 + +- Create: `include/fesa/app/output_paths.h` +- Create: `src/fesa/app/output_paths.cpp` +- Create: `tests/unit/app/output_paths_test.cpp` +- Modify: `include/fesa/analysis/analysis.h` +- Modify: `include/fesa/app/fesa_application.h` +- Modify: `src/fesa/app/fesa_application.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` +- Test: `tests/integration/app/fesa_application_test.cpp` + +## 인터페이스 + +```cpp +namespace fesa { + +struct DerivedOutputPaths { + std::filesystem::path input_path; + std::filesystem::path results_path; + std::filesystem::path log_path; +}; + +class OutputWriteLease { + public: + OutputWriteLease(const OutputWriteLease&) = delete; + OutputWriteLease& operator=(const OutputWriteLease&) = delete; + OutputWriteLease(OutputWriteLease&&) noexcept; + OutputWriteLease& operator=(OutputWriteLease&&) noexcept; + ~OutputWriteLease(); + + private: + class Impl; + friend Result AcquireOutputWriteLease( + const DerivedOutputPaths& paths); + explicit OutputWriteLease(std::unique_ptr impl) noexcept; + std::unique_ptr impl_; +}; + +Result DeriveSingleInputOutputPaths( + const std::vector& arguments, + const std::filesystem::path& invocation_cwd); + +Result AcquireOutputWriteLease( + const DerivedOutputPaths& paths); + +struct AnalysisRequest { + std::filesystem::path input_path; + std::filesystem::path output_path; + std::filesystem::path log_path; +}; + +} // namespace fesa +``` + +`OutputWriteLease`는 acquisition-only private constructor와 private pimpl storage로 lock lifetime을 보존한다. Win32 handle, file handle, 또는 platform lock 표현은 `Impl` 안에만 둔다. `FesaApplication`은 lease를 log close와 HDF5 finalization이 끝날 때까지 보관한다. + +## RED + +테스트를 먼저 추가한다. + +- `NSNR-CLI-001`: argv의 모든 token을 왼쪽에서 오른쪽으로 검사하고, case-sensitive substring `--output`을 포함한 첫 token에서 exit code `2`와 diagnostic code `cli-usage`가 하나만 출력된다. +- `NSNR-CLI-002`: `abc--outputdef`, `--output-path`, `--output=foo`, `--output` 모두 input path resolution 전에 실패한다. +- `NSNR-CLI-003`: `--output` 실패는 parser, Analysis construction, lease acquisition, log create/truncate, HDF5 candidate creation을 호출하지 않는다. +- `NSNR-CLI-004`: relative `.inp` path는 invocation CWD 기준으로 lexical normalization만 하고 `_results.h5`, `_log.txt`를 같은 directory에 만든다. +- `NSNR-CLI-005`: final extension `.inp`는 case-insensitive이고 stem은 마지막 extension만 제거하며 basename case와 preceding dots를 보존한다. +- `NSNR-CLI-006`: output-busy lease collision은 exit code `6`이며 log와 HDF5를 만들거나 바꾸지 않는다. +- `NSNR-CLI-007`: previous result/log files가 있는 상태에서 `--output` 실패 후 bytes와 timestamps가 변하지 않는다. +- `NSNR-CLI-008`: existing default `fesa.exe ` invocation은 더 이상 cwd `results.h5`를 기본값으로 쓰지 않는다. +- `NSNR-CLI-009`: `AnalysisRequest`가 `input_path`, `output_path`, `log_path`를 함께 전달한다. + +실행: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "FesaApplication|OutputPath" --output-on-failure +``` + +기대: 새 테스트가 컴파일 실패 또는 assertion 실패로 실패한다. 새 테스트가 예상 없이 통과하면 구현을 중단하고 Coordinator에게 보고한다. + +## GREEN + +- `output_paths` module에 argv 검사, lexical path derivation, input extension validation, lease acquisition을 구현한다. +- `FesaApplication`은 `DeriveSingleInputOutputPaths` 성공 뒤 `AcquireOutputWriteLease`를 호출한다. +- 이 Step에서는 nonlinear procedure를 만들지 않는다. +- `LinearStaticAnalysis` 호출은 기존 방식대로 유지하되 `AnalysisRequest::output_path`가 `_results.h5`를 가리키게 한다. + +## VERIFY + +실행 전 `Test-Path .harness\config.json`으로 Harness config를 재확인한다. 있으면 그 설정을 우선한다. 없으면 다음 순서로 실행한다. + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "FesaApplication|OutputPath" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +## 상태 기록 + +Executor가 선택한 current Step 0만 `completed`, `error`, `blocked` 중 하나로 갱신한다. 성공 시 summary 한 줄만 기록한다. timestamp, retry, commit, advancement는 Executor 소유다. + +## 금지사항 + +- `--output` alias 또는 deprecation path를 남기지 마라. 이유: 승인된 public compatibility가 fail-closed removal이다. +- path를 symlink, junction, short-name, case-normalized realpath로 resolve하지 마라. 이유: io.md가 lexical user-addressed identity를 요구한다. +- log/HDF5 작업이 끝나기 전에 `OutputWriteLease`를 파기하지 마라. 이유: exclusive ownership 보장이 깨진다. +- nonlinear analysis 분기를 `LinearStaticAnalysis` private lifecycle에 넣지 마라. 이유: Step 10의 별도 prepared flow가 소유한다. diff --git a/phases/nonlinear-static-newton-raphson/step1.md b/phases/nonlinear-static-newton-raphson/step1.md new file mode 100644 index 0000000..b5ecc7a --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step1.md @@ -0,0 +1,135 @@ +# Step 1: nonlinear-static-domain-contract + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/reference-model.md` +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `include/fesa/model/model_types.h` +- `include/fesa/model/domain.h` +- `src/fesa/model/domain.cpp` +- `src/fesa/io/abaqus/step_definition_mapper.cpp` +- `src/fesa/io/abaqus/domain_mapping_context.h` +- `src/fesa/io/abaqus/domain_mapping_context.cpp` +- `tests/unit/model/model_types_test.cpp` +- `tests/unit/model/domain_test.cpp` +- `tests/unit/io/abaqus/domain_mapper_test.cpp` +- `tests/unit/io/abaqus/domain_mapping_components_test.cpp` +- Step 0 files: `include/fesa/app/output_paths.h`, `include/fesa/analysis/analysis.h`, `src/fesa/app/fesa_application.cpp` + +## 이전 Step 전제 + +Step 0이 app-level path/log request fields를 만들었고 기존 linear invocation이 `_results.h5`를 사용한다. + +## 소유 파일 + +- Modify: `include/fesa/model/model_types.h` +- Modify: `include/fesa/model/domain.h` +- Modify: `src/fesa/model/domain.cpp` +- Modify: `src/fesa/io/abaqus/step_definition_mapper.cpp` +- Modify: `src/fesa/io/abaqus/domain_mapping_context.h` +- Modify: `src/fesa/io/abaqus/domain_mapping_context.cpp` +- Test: `tests/unit/model/model_types_test.cpp` +- Test: `tests/unit/model/domain_test.cpp` +- Test: `tests/unit/io/abaqus/domain_mapper_test.cpp` +- Test: `tests/unit/io/abaqus/domain_mapping_components_test.cpp` + +## 인터페이스 + +```cpp +namespace fesa { + +enum class StaticProcedureKind { + kLinearSmallDisplacement, + kNonlinearFullNewton +}; + +struct StaticStepDefinition { + std::string name; + std::vector boundaries; + std::vector loads; + StaticProcedureKind procedure_kind; + bool nlgeom; + double initial_increment; + double time_period; + double minimum_increment; + double maximum_increment; + SourceLocation location; +}; + +class StepDefinition { + public: + StaticProcedureKind ProcedureKind() const noexcept; + bool IsNonlinearStatic() const noexcept; + double InitialIncrement() const noexcept; + double TimePeriod() const noexcept; + double MinimumIncrement() const noexcept; + double MaximumIncrement() const noexcept; +}; + +} // namespace fesa +``` + +Domain stores procedure identity and raw four `*STATIC` values only. Factor sequence is derived in Step 5. PRESELECT output requests are warning no-ops and do not create Domain, Analysis, or HDF5 state. + +## RED + +Add tests first. + +- `NSNR-IO-001`: `*STEP, NLGEOM=YES` maps to `StaticProcedureKind::kNonlinearFullNewton`. +- `NSNR-IO-002`: `*STEP, NLGEOM=NO` maps to `kLinearSmallDisplacement` and existing shell linear tests keep passing. +- `NSNR-IO-003`: missing `NLGEOM` keeps current linear behavior. +- `NSNR-IO-004`: nonlinear `*STATIC` requires four finite positive values and time period exactly `1.0`. +- `NSNR-IO-005`: raw values are preserved in `StepDefinition` without derived factor list. +- `NSNR-IO-006`: unsupported nonlinear procedure or mixed linear/nonlinear steps fail closed with `unsupported-analysis-procedure`. +- `NSNR-IO-007`: S4 and S4R shell definitions remain approved nonlinear semantic inputs. +- `NSNR-IO-008`: mixed B33/S4 nonlinear model fails with `unsupported-mixed-element-model`. +- `NSNR-IO-009`: `*OUTPUT, FIELD, VARIABLE=PRESELECT` is accepted with deterministic warning and no Domain state. +- `NSNR-IO-010`: `*OUTPUT, HISTORY, VARIABLE=PRESELECT` is accepted with deterministic warning and no Domain state. +- `NSNR-IO-011`: malformed PRESELECT parameters fail as input errors. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "Domain|DomainMapping|Abaqus" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops the Step. + +## GREEN + +- Extend `StaticStepDefinition` and `StepDefinition` exactly with the fields and accessors above. +- Update domain construction so source-order boundaries and loads remain deterministic. +- Update `domain_mapping_context` to parse `NLGEOM=YES`, preserve raw `*STATIC`, emit PRESELECT warnings, and keep PRESELECT out of Domain state. +- Preserve existing linear shell and beam mappings. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "Domain|DomainMapping|Abaqus" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before using these defaults. + +## 상태 기록 + +Only Step 1 status and one-line summary/error/blocked payload may be updated by the Implementation Agent. Executor owns timestamps, commits, retry, and next Step selection. + +## 금지사항 + +- Do not add `LoadFactorSequence()` to Domain. 이유: factor sequence ownership belongs to Step 5 control. +- Do not store PRESELECT flags in Domain or HDF5 state. 이유: approved I/O contract makes PRESELECT an ignored warning no-op. +- Do not alter requirements or I/O docs. 이유: upstream contracts are approved. diff --git a/phases/nonlinear-static-newton-raphson/step10.md b/phases/nonlinear-static-newton-raphson/step10.md new file mode 100644 index 0000000..b165923 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step10.md @@ -0,0 +1,177 @@ +# Step 10: prepared-analysis-flow-and-full-procedure + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `include/fesa/analysis/analysis.h` +- `include/fesa/analysis/linear_static_analysis.h` +- `src/fesa/analysis/linear_static_analysis.cpp` +- `src/fesa/app/fesa_application.cpp` +- `include/fesa/io/hdf5/hdf5_results_writer.h` +- `include/fesa/results/results_writer.h` +- `include/fesa/results/nonlinear_results_writer.h` +- Step 0 files: `include/fesa/app/output_paths.h`, `src/fesa/app/output_paths.cpp` +- Step 1 files: `include/fesa/model/domain.h`, `src/fesa/io/abaqus/domain_mapping_context.cpp` +- Step 5 files: `include/fesa/analysis/nonlinear_static_control.h` +- Step 6 files: `include/fesa/solvers/linear/tangent_solver.h` +- Step 7 files: `include/fesa/analysis/newton_iteration_log.h` +- Step 8 files: `include/fesa/analysis/nonlinear_analysis_state.h` +- Step 9 files: `include/fesa/results/nonlinear_results_writer.h`, `include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h` + +## 이전 Step 전제 + +Steps 0-9 provide path/lease, Domain procedure identity, nonlinear element/control/solver/log/state, and nonlinear HDF5 writer. + +## 소유 파일 + +- Create: `include/fesa/analysis/prepared_analysis.h` +- Create: `src/fesa/analysis/prepared_analysis.cpp` +- Create: `include/fesa/analysis/linear_static_procedure.h` +- Create: `src/fesa/analysis/linear_static_procedure.cpp` +- Create: `include/fesa/analysis/nonlinear_static_procedure.h` +- Create: `src/fesa/analysis/nonlinear_static_procedure.cpp` +- Modify: `include/fesa/analysis/linear_static_analysis.h` +- Modify: `src/fesa/analysis/linear_static_analysis.cpp` +- Modify: `src/fesa/app/fesa_application.cpp` +- Test: `tests/integration/analysis/linear_static_analysis_test.cpp` +- Create: `tests/integration/analysis/nonlinear_static_procedure_test.cpp` +- Test: `tests/integration/app/fesa_application_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct PreparedAnalysisInput { + Domain domain; + std::vector diagnostics; +}; + +Result PrepareAnalysisInput( + const std::filesystem::path& input_path); + +struct LinearStaticExecutionResult { + AnalysisState state; + std::vector diagnostics; +}; + +class LinearStaticProcedureExecutor { + public: + LinearStaticProcedureExecutor(const ParallelFor& parallel_for, + LinearSolver& linear_solver); + Result Execute(const Domain& domain) const; + + private: + const ParallelFor& parallel_for_; + LinearSolver& linear_solver_; +}; + +struct NonlinearStaticExecutionResult { + NonlinearAnalysisState state; + std::vector diagnostics; +}; + +class NonlinearStaticProcedureExecutor { + public: + NonlinearStaticProcedureExecutor(const ParallelFor& parallel_for, + TangentSolver& tangent_solver); + Result Execute( + const Domain& domain, NewtonIterationLogWriter& log) const; + + private: + const ParallelFor& parallel_for_; + TangentSolver& tangent_solver_; +}; + +using PreparedAnalysisOutcome = + std::variant; + +Result ExecutePreparedAnalysis( + const Domain& domain, + LinearStaticProcedureExecutor& linear_executor, + NonlinearStaticProcedureExecutor& nonlinear_executor, + NewtonIterationLogWriter& log); + +Status FinalizePreparedAnalysisResult( + const DerivedOutputPaths& paths, + const Domain& domain, + const PreparedAnalysisOutcome& outcome, + const std::vector& diagnostics, + ResultsWriter& linear_writer, + NonlinearResultsWriter& nonlinear_writer); + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-PROC-001`: app validates argv, derives paths, acquires `OutputWriteLease`, opens log, then parses/maps exactly once. +- `NSNR-PROC-002`: parse/map diagnostics are sorted and preserved in prepared input. +- `NSNR-PROC-003`: linear `NLGEOM=NO` run uses `LinearStaticProcedureExecutor` and preserves existing numerical/HDF5 meaning except output names and log lifecycle. +- `NSNR-PROC-004`: nonlinear `NLGEOM=YES` run uses `NonlinearStaticProcedureExecutor`. +- `NSNR-PROC-005`: linear executor receives injected `ParallelFor` and existing `LinearSolver`; nonlinear executor receives injected `ParallelFor` and `TangentSolver`. +- `NSNR-PROC-006`: app constructs and owns concrete `TbbParallelFor`, `MklPardisoSolver`, `MklPardisoTangentSolver`, `Hdf5ResultsWriter`, and `NonlinearHdf5ResultsWriter`. +- `NSNR-PROC-007`: procedure computation/recovery returns a validated outcome without opening HDF5. +- `NSNR-PROC-008`: app closes log successfully before calling injected linear or nonlinear writer. +- `NSNR-PROC-009`: log close failure blocks HDF5 candidate creation. +- `NSNR-PROC-010`: nonlinear executor builds `NonlinearStateBaselineInput` from Domain nodes in stable internal order, preserving each node's `EntityIndex` and full `SourceEntityId`, then constructs state through `NonlinearAnalysisState::Create(domain, dofs, baseline)` before the first increment; the factor-zero baseline is committed state only and is not an accepted frame. +- `NSNR-PROC-011`: nonlinear increment loop uses factors from Step 5 and iterations `1..100`. +- `NSNR-PROC-012`: each entered iteration performs fresh tangent factorization and solves `Kff * delta = -r_f`. +- `NSNR-PROC-013`: global external vector/tangent from Step 5 is assembled once and combined with approved signs `r = f_int - f_ext`, `K_T = K_int - K_ext`; the fixed-moment tangent is subtracted once and is never duplicated per incident element. +- `NSNR-PROC-014`: iteration 100 can accept if gates pass; failure at 100 emits `nonlinear-nonconvergence` with no retry. +- `NSNR-PROC-015`: nonfinite data, factorization failure, solve failure, invalid accepted state, and log failure map to approved diagnostics. +- `NSNR-PROC-016`: constrained correction is zero and reactions/free residuals come from full residual `r = f_int - f_ext`. +- `NSNR-PROC-017`: failed nonlinear run preserves prior final HDF5 according to output lifecycle. +- `NSNR-PROC-018`: deterministic repeat produces same sparse structure, nodal source-identity order, result row order, diagnostics, and log line ordering. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Refactor current parse/map and linear compute/recovery out of `LinearStaticAnalysis::Run()` into `PrepareAnalysisInput` and `LinearStaticProcedureExecutor`. Keep `LinearStaticAnalysis` as a compatibility wrapper that delegates through the new flow and does not contain nonlinear conditions. Implement `NonlinearStaticProcedureExecutor` in `nonlinear_static_procedure.*` using Steps 2-8, constructing state only through `NonlinearAnalysisState::Create(...)` with one baseline per Domain node in stable internal order, forming `r = f_int - f_ext` and `K_T = K_int - K_ext`, preserving `EntityIndex` plus full `SourceEntityId` into final writer inputs, and delaying all HDF5 work until `FinalizePreparedAnalysisResult`. The app owns concrete adapters and passes them through interfaces. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 10 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not parse/map twice. 이유: source identity, diagnostics, and Domain lifetime must be deterministic. +- Do not reconstruct nodal identity from source labels alone. 이유: labels can repeat across instances and HDF5/reference matching requires full `SourceEntityId`. +- Do not open HDF5 before log close succeeds. 이유: io.md requires log close success before HDF5 candidate open/write/final replace. +- Do not insert nonlinear branches into `LinearStaticAnalysis` private lifecycle. 이유: new procedure owns its own lifecycle. +- Do not replace final HDF5 on failed analysis, log failure, or HDF5 failure. 이유: asymmetric preservation contract requires prior valid final preservation. +- Do not construct MKL/TBB/HDF5 backends inside procedure executors. 이유: dependencies are injected so tests can observe lifecycle and no backend type crosses analysis/core public boundaries. diff --git a/phases/nonlinear-static-newton-raphson/step11.md b/phases/nonlinear-static-newton-raphson/step11.md new file mode 100644 index 0000000..1bfc07e --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step11.md @@ -0,0 +1,191 @@ +# Step 11: reference-comparison-gate + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/TOLERANCE.md` +- `docs/nonlinear-static-newton-raphson/reference-model.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `tests/reference/reference_tolerance_policy.h` +- `tests/reference/reference_tolerance_policy.cpp` +- `tests/reference/reference_comparison.h` +- `tests/reference/reference_comparison.cpp` +- `tests/reference/mitc4_reference_comparison.h` +- `tests/reference/mitc4_reference_comparison.cpp` +- Step 9 files: `include/fesa/results/nonlinear_results_writer.h`, `include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h` +- Step 10 files: `include/fesa/analysis/prepared_analysis.h`, `src/fesa/app/fesa_application.cpp` + +## 이전 Step 전제 + +Step 10 runs copied input files through FESA and writes authoritative HDF5 outputs after log close. + +## 소유 파일 + +- Create: `tests/reference/nonlinear_static_reference_comparison.h` +- Create: `tests/reference/nonlinear_static_reference_comparison.cpp` +- Create: `tests/reference/nonlinear_static_reference_cases_test.cpp` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa::test { + +struct NonlinearReferenceCase { + std::string case_id; + std::filesystem::path original_input_path; + std::filesystem::path displacement_csv_path; + std::filesystem::path reaction_csv_path; + std::filesystem::path stress_inventory_path; + std::filesystem::path execution_directory; +}; + +struct ArtifactSnapshot { + std::filesystem::path path; + std::string sha256; + std::uintmax_t byte_size; + std::filesystem::file_time_type last_write_time; +}; + +enum class NonlinearReferenceDisposition { + kBlocking, + kWarningOnly, + kExcluded +}; + +struct NonlinearReferenceRowKey { + std::string case_id; + std::string accepted_state; + std::string instance_name; + std::int64_t source_node_label; + std::string component; +}; + +struct NonlinearReferenceFamilyReport { + std::string family_identity; + std::vector components; + NonlinearReferenceDisposition disposition; + std::size_t row_count; + ReferenceToleranceFamilyDecision tolerance; +}; + +struct GeneratedRunArtifacts { + std::filesystem::path copied_input_path; + std::filesystem::path generated_results_hdf5; + std::filesystem::path generated_log_path; +}; + +struct NonlinearReferenceComparisonReport { + std::string case_id; + std::filesystem::path original_input_path; + std::filesystem::path copied_input_path; + std::filesystem::path generated_results_hdf5; + std::filesystem::path generated_log_path; + std::vector pre_run_artifacts; + std::vector post_run_artifacts; + std::vector families; + bool blocking_passed; +}; + +enum class NonlinearReferenceClassification { + kPassed, + kFailed, + kWarningOnlyDifferences +}; + +Result> ArtifactCheck( + const NonlinearReferenceCase& reference_case); +Result CopyInputToExecutionDirectory( + const NonlinearReferenceCase& reference_case); +Result RunFesaApplicationOnCopiedInput( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& copied_input_path); +Result CompareHdf5ToReferenceCsv( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path); +NonlinearReferenceClassification ClassifyReferenceComparison( + const NonlinearReferenceComparisonReport& report); +NonlinearReferenceComparisonReport BuildReferenceComparisonReport( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path); + +} // namespace fesa::test +``` + +## RED + +Add tests first. + +- `NSNR-REF-001`: artifact check verifies exact pre-run SHA-256 for every declared input/CSV path. +- `NSNR-REF-002`: original `reference/shellNL/shellNL.inp` bytes are copied unchanged into a unique build-local temp case directory and only the copied `.inp` is passed to `FesaApplication`. +- `NSNR-REF-003`: original `reference/shell/shell.inp` bytes are copied unchanged into a unique build-local temp case directory and only the copied `.inp` is passed to `FesaApplication`. +- `NSNR-REF-004`: copied shellNL run produces copied-sibling `shellNL_results.h5` and `shellNL_log.txt`; copied shell run produces copied-sibling `shell_results.h5` and `shell_log.txt`. +- `NSNR-REF-005`: HDF5 source path identity matches the copied user-addressed input path, and source content identity matches the approved original input hash. +- `NSNR-REF-006`: exact post-run SHA-256, byte size, timestamp, and inventory for all original declared reference artifacts match pre-run snapshots. +- `NSNR-REF-007`: shellNL displacement/reaction rows require exact `Frame` value `Increment 10: Step Time = 1.000`. +- `NSNR-REF-008`: required CSV wide rows expand to unique `(case_id, accepted_state, instance, source_node_label, component)` keys. +- `NSNR-REF-009`: HDF5 rows and CSV rows reject missing, extra, duplicate, and nonfinite required rows before tolerance. +- `NSNR-REF-010`: `linear.translation` has 147 blocking rows. +- `NSNR-REF-011`: `linear.rotation` has 147 warning-only rows. +- `NSNR-REF-012`: `nonlinear.translation` has 147 blocking rows. +- `NSNR-REF-013`: `nonlinear.rotation` has 147 warning-only rows. +- `NSNR-REF-014`: shellNL constrained nodes select only labels `1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33`. +- `NSNR-REF-015`: `RF1/RF2` has 48 blocking rows, `RF3` has 24 blocking rows, and `RM1/RM2` has 48 blocking rows. +- `NSNR-REF-016`: `RM3` and stress quantities create no numeric comparison family. +- `NSNR-REF-017`: docs/TOLERANCE.md family policy is applied exactly and warning-only failures do not change blocking verdict. +- `NSNR-REF-018`: stress CSV files are hash-audited as nonblocking inventory artifacts and their schema/order is not a blocking verdict. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement `ARTIFACT CHECK -> COPY -> RUN -> COMPARE -> CLASSIFY -> REPORT` while preserving the required public gate wording `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` in reports. The runner never passes the original reference input path to `FesaApplication`; it copies input bytes unchanged into a unique build-local temp case directory, runs the copied `.inp`, consumes copied-sibling `_results.h5` and `_log.txt`, and compares HDF5 data to original read-only CSVs. Use exact declared paths and hashes: + +| path | rows | SHA-256 | +| --- | ---: | --- | +| `reference/shellNL/shellNL.inp` | input | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| `reference/shellNL/shellNL displacements.csv` | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| `reference/shellNL/shellNL reactions.csv` | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| `reference/shellNL/shellNL stresses.csv` | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| `reference/shell/shell.inp` | input | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | +| `reference/shell/shell displacements.csv` | 49 | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | +| `reference/shell/shell reactions.csv` | 49 | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | +| `reference/shell/shell stresses.csv` | 288 | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | + +Use docs/TOLERANCE.md exactly: family scale `S=max(abs(reference))`, near-zero band `0.01*S`, non-near relative error `<=0.05`, family `RMS(error)/S<=0.01`, zero-scale exact zero only. Original reference directory inventory, bytes, timestamps, and hashes must be unchanged after the run. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 11 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not rewrite, rename, normalize, or repair `.inp` or CSV artifacts. 이유: reference artifacts are immutable external evidence. +- Do not run `FesaApplication` on original `reference/shellNL/shellNL.inp` or `reference/shell/shell.inp`. 이유: CLI derives sibling outputs and would mutate the reference directory. +- Do not compare `RM3`. 이유: approved contract excludes stabilization-dependent drilling reaction. +- Do not numerically compare stress CSV data. 이유: stress artifacts are nonblocking inventory only in this feature. +- Do not average, omit, synthesize, or row-order match reference rows. 이유: source/component identity prechecks are mandatory. diff --git a/phases/nonlinear-static-newton-raphson/step12.md b/phases/nonlinear-static-newton-raphson/step12.md new file mode 100644 index 0000000..cb953e7 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step12.md @@ -0,0 +1,96 @@ +# Step 12: execution-closure-and-evidence-docs + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/PRD.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/CODINGSTYLE.md` +- `docs/TOLERANCE.md` +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/reference-model.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `phases/nonlinear-static-newton-raphson/index.json` +- Step 0-11 modified source/test/CMake files + +## 이전 Step 전제 + +Steps 0-11 have implemented and verified CLI lifecycle, Domain contract, nonlinear MITC4, controls, tangent solver, log, state, HDF5 schema v1, full prepared procedure, and reference comparison tests. + +## 소유 파일 + +- Modify: `docs/PRD.md` +- Modify: `docs/ARCHITECTURE.md` +- Modify: `docs/ADR.md` +- Create: `docs/nonlinear-static-newton-raphson/implementation-report.md` +- Create: `docs/nonlinear-static-newton-raphson/build-test.md` +- Create: `docs/nonlinear-static-newton-raphson/reference-comparison.md` + +No C++ production file is owned by this Step. + +## 인터페이스 + +Evidence documents must record actual observed outputs: + +```text +implementation-report.md: RED/GREEN/VERIFY command log, Step summaries, diagnostics, implementation-owned decisions. +build-test.md: fresh configure/build/discovery/full CTest commands, exit codes, duration, stdout/stderr tail, warning audit, failure classification. +reference-comparison.md: exact artifact inventory, HDF5 paths, projection, row prechecks, tolerance, per-family decisions, classification, no-change assertion. +``` + +## RED + +Before writing evidence docs, run an evidence freshness audit by checking that the three evidence docs do not already contain current command outputs from this final Step. + +- `NSNR-EVID-001`: missing or stale `implementation-report.md` is a failing precondition. +- `NSNR-EVID-002`: missing or stale `build-test.md` is a failing precondition. +- `NSNR-EVID-003`: missing or stale `reference-comparison.md` is a failing precondition. +- `NSNR-EVID-004`: PRD/ARCHITECTURE/ADR still contain directly superseded global CLI/procedure/output statements. +- `NSNR-EVID-005`: reference artifact pre-run SHA inventory must match Step 11 values. + +Expected: evidence freshness audit fails before this Step writes docs. If it unexpectedly passes with current evidence already present, stop and report to Coordinator. + +## GREEN + +- Run fresh MSVC x64 Debug configure/build/discovery/full CTest. +- Run focused nonlinear reference comparison repeat. +- Run deterministic repeat/reference checks required by Step 11. +- Run warning audit from build output. +- Run `git diff --check` and `git status --short`. +- Run reference artifact post-run SHA audit and compare to pre-run values. +- Update only directly superseded PRD/ARCHITECTURE/ADR statements for CLI removal, prepared linear/nonlinear procedure boundary, output naming, log lifecycle, and nonlinear HDF5 schema. +- Create the three Stage 6 evidence docs from actual command outputs only. + +## VERIFY + +Recheck `.harness/config.json`. If absent, use: + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference" --output-on-failure +git diff --check +git status --short +``` + +Record command, exit code, duration, stdout/stderr tail, and failure classification for every command in the evidence docs. + +## 상태 기록 + +Update only Step 12 status and one-line payload. Executor owns timestamps, commits, retry, top-level phase completion, and advancement. + +## 금지사항 + +- Do not claim success before the commands above actually pass. 이유: Stage 6 evidence docs must be output-backed. +- Do not broadly rewrite global docs. 이유: Step 12 only synchronizes directly superseded CLI/procedure/output statements. +- Do not change reference artifact content. 이유: SHA pre/post immutability is part of the acceptance evidence. +- Do not run `scripts/execute.py` from this Step. 이유: Executor already owns Harness execution. diff --git a/phases/nonlinear-static-newton-raphson/step2.md b/phases/nonlinear-static-newton-raphson/step2.md new file mode 100644 index 0000000..8324ed3 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step2.md @@ -0,0 +1,101 @@ +# Step 2: finite-rotation-state + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `include/fesa/math/vector3.h` +- `include/fesa/math/matrix.h` +- `tests/unit/math/vector3_test.cpp` +- `tests/unit/math/matrix_test.cpp` +- Step 1 files: `include/fesa/model/model_types.h`, `include/fesa/model/domain.h` + +## 이전 Step 전제 + +Step 1 exposes nonlinear static semantic selection. This Step adds finite rotation math used by nonlinear MITC4 and state recovery. + +## 소유 파일 + +- Create: `include/fesa/elements/finite_rotation.h` +- Create: `src/fesa/elements/finite_rotation.cpp` +- Create: `tests/unit/elements/finite_rotation_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct FiniteRotationState { + Vector3 phi; + Matrix q; + Vector3 director; +}; + +Matrix ExpSkew(const Vector3& phi); +Matrix LeftJacobianSO3(const Vector3& phi); +Matrix InverseTransposeLeftJacobianSO3(const Vector3& phi); +Result MakeFiniteRotationState( + const Vector3& phi, const Matrix& initial_frame); +Result ApplyGlobalRotationIncrement( + const FiniteRotationState& committed, + const Vector3& delta_phi, + const Matrix& initial_frame); + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-ROT-001`: zero `phi` returns `Q0` and `director=Q0*e3`. +- `NSNR-ROT-002`: finite `phi` satisfies `Q=exp(phi^)Q0`, `Q^T Q=I`, `det(Q)=1`, `director=Qe3`. +- `NSNR-ROT-003`: update uses `Q+ = exp((phi + delta_phi)^)Q0`. +- `NSNR-ROT-004`: principal branch margin `sqrt(epsilon_double)` rejects ambiguous rotations near `pi`. +- `NSNR-ROT-005`: `LeftJacobianSO3` and inverse-transpose are finite and derivative-consistent for small, medium, and near-branch-safe rotations. +- `NSNR-ROT-006`: nonfinite rotation components fail with `invalid-accepted-state` or the Step-introduced finite-rotation diagnostic. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "FiniteRotation" --output-on-failure +``` + +Expected: tests fail because the rotation module does not exist. Unexpected pass stops. + +## GREEN + +Implement the SO(3) helper functions with finite checks and principal-branch validation. Use existing FESA math types and keep MKL/vendor types out of public headers. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "FiniteRotation" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before using default commands. + +## 상태 기록 + +Update only Step 2 status and summary/error/blocked payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not normalize invalid rotation matrices to make tests pass. 이유: invalid nonlinear state must fail closed. +- Do not add element residual or tangent code here. 이유: this Step owns only finite rotation state. +- Do not expose backend/vendor types. 이유: public solver core must remain backend-neutral. diff --git a/phases/nonlinear-static-newton-raphson/step3.md b/phases/nonlinear-static-newton-raphson/step3.md new file mode 100644 index 0000000..004bee2 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step3.md @@ -0,0 +1,124 @@ +# Step 3: nonlinear-mitc4-kinematics-and-recovery + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `include/fesa/elements/mitc4_shell.h` +- `src/fesa/elements/mitc4_shell.cpp` +- `tests/unit/elements/mitc4_shell_test.cpp` +- `include/fesa/model/shell_geometry.h` +- `src/fesa/model/shell_geometry.cpp` +- `include/fesa/model/model_types.h` +- `include/fesa/results/result_records.h` +- Step 2 files: `include/fesa/elements/finite_rotation.h`, `src/fesa/elements/finite_rotation.cpp` + +## 이전 Step 전제 + +Step 2 provides finite rotation state and SO(3) Jacobian helpers. + +## 소유 파일 + +- Create: `include/fesa/elements/nonlinear_mitc4_shell.h` +- Create: `src/fesa/elements/nonlinear_mitc4_shell.cpp` +- Create: `tests/unit/elements/nonlinear_mitc4_shell_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct NonlinearMitc4TrialDofs { + std::array displacement; + std::array rotation_vector; +}; + +struct NonlinearMitc4RecoveryPoint { + ShellMidsurfaceLocation location; + std::array natural_coordinates; + Mitc4LocalFrame local_frame; + std::array generalized_strain; + std::array section_resultant; + std::array stress; +}; + +struct NonlinearMitc4Recovery { + std::array gauss_points; + double physical_strain_energy; +}; + +class NonlinearMitc4Shell { + public: + static Result Create( + std::array nodes, + std::array initial_frames, + const ShellSection& section, + const LinearElasticMaterial& material); + + Result EvaluateKinematics( + const NonlinearMitc4TrialDofs& trial) const; + Result RecoverState( + const NonlinearMitc4TrialDofs& trial) const; +}; + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-ELEM-KIN-001`: initial undeformed state produces zero generalized strain and zero material stress. +- `NSNR-ELEM-KIN-001A`: `NonlinearMitc4Shell::Create` requires exactly four `Node` pointers, four corresponding `ShellNodeInitialFrame` records, one `ShellSection`, and one `LinearElasticMaterial`; invalid or mismatched inputs fail closed. +- `NSNR-ELEM-KIN-002`: fixed-initial Total Lagrangian geometry uses initial midsurface and initial directors. +- `NSNR-ELEM-KIN-003`: current director interpolation for strain uses unnormalized interpolated director where formulation requires it. +- `NSNR-ELEM-KIN-004`: opposed or degenerate director state fails closed. +- `NSNR-ELEM-KIN-005`: small-rotation linear limit matches existing `Mitc4Shell` recovery within numerical-review tolerance. +- `NSNR-ELEM-KIN-006`: finite rigid translation/rotation produces objective zero physical strain/stress. +- `NSNR-ELEM-KIN-007`: recovery emits exactly four midsurface Gauss rows in `ShellMidsurfaceLocation` order; each row has generalized strain `[E11,E22,2E12,K11,K22,2K12,G13,G23]`, section resultant `[N11,N22,N12,M11,M22,M12,Q13,Q23]`, and stress positions `[BOTTOM,MIDDLE,TOP]` with components `[S11,S22,S12]`. +- `NSNR-ELEM-KIN-008`: recovery emits no S33, S13, S23 and no nodal extrapolated/corner/averaged stress. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure +``` + +Expected: compile or test failure because nonlinear MITC4 files do not exist. Unexpected pass stops. + +## GREEN + +Implement nonlinear MITC4 creation, kinematics, and recovery using approved 2x2x2 integration, MITC4 edge-midpoint shear tying, initial shell frames, homogeneous isotropic materially linear response, fixed-size row shapes, and source-order recovery rows. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 3 status and one-line result payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not change existing `Mitc4Shell` behavior. 이유: linear MITC4 reference regression must remain stable. +- Do not create stress quantities outside approved schema. 이유: I/O excludes S33/S13/S23 and nodal stress projections. +- Do not add residual/tangent solve logic here. 이유: Step 4 owns residual and tangent. diff --git a/phases/nonlinear-static-newton-raphson/step4.md b/phases/nonlinear-static-newton-raphson/step4.md new file mode 100644 index 0000000..d050874 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step4.md @@ -0,0 +1,99 @@ +# Step 4: nonlinear-mitc4-residual-and-tangent + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `include/fesa/elements/nonlinear_mitc4_shell.h` +- `src/fesa/elements/nonlinear_mitc4_shell.cpp` +- `tests/unit/elements/nonlinear_mitc4_shell_test.cpp` +- Step 2 files: `include/fesa/elements/finite_rotation.h` +- Step 3 files: `include/fesa/elements/nonlinear_mitc4_shell.h` + +## 이전 Step 전제 + +Step 3 provides nonlinear MITC4 creation, kinematics, and recovery rows. + +## 소유 파일 + +- Modify: `include/fesa/elements/nonlinear_mitc4_shell.h` +- Modify: `src/fesa/elements/nonlinear_mitc4_shell.cpp` +- Create: `tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct NonlinearMitc4InternalEquilibrium { + Vector internal_residual; + Matrix internal_tangent; + Vector internal_force; + NonlinearMitc4Recovery recovery; + double physical_strain_energy; +}; + +Result EvaluateInternalResidualAndTangent( + const NonlinearMitc4Shell& element, + const NonlinearMitc4TrialDofs& trial); + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-ELEM-TAN-001`: residual and tangent are evaluated at the same trial state. +- `NSNR-ELEM-TAN-002`: directional derivative schedule uses `h={1e-3,3e-4,1e-4,3e-5,1e-5,3e-6,1e-6,3e-7}` and requires at least two observed orders `>=1.5`. +- `NSNR-ELEM-TAN-003`: one interior scaled derivative error is `<=1e-6`. +- `NSNR-ELEM-TAN-004`: zero analytical directions produce scaled absolute error `<=1e-10`. +- `NSNR-ELEM-TAN-005`: no-moment tangent satisfies scaled Frobenius symmetry `<=1e-12` after `Dq^T K_T Dq`. +- `NSNR-ELEM-TAN-006`: internal tangent contains no external fixed-load contribution; applying the same element to two incident-element load-sharing scenarios does not change internal residual/tangent. +- `NSNR-ELEM-TAN-007`: finite rigid motion keeps physical residual/objectivity invariants. +- `NSNR-ELEM-TAN-008`: patch/sign recovery identities pass relative `<=1e-9`. +- `NSNR-ELEM-TAN-009`: nonfinite trial/residual/tangent data fails closed. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement same-trial internal residual/tangent, exact rotation derivative terms through `J_l`, map Hessian terms, objective drilling contribution, and physical recovery in the element-local contract. External CLOAD vector and tangent are not element inputs and are assembled globally in Step 5. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 4 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not symmetrize the internal tangent as a cleanup step. 이유: derivative and symmetry tests must observe the mathematically assembled operator; Step 5 owns external moment tangent nonsymmetry. +- Do not add solver factorization in this Step. 이유: Step 6 owns tangent solver backend. +- Do not pass nodal CLOAD force or moment into each incident element. 이유: it duplicates source-node loads; Step 5 owns global-once external assembly. +- Do not claim Abaqus internal equivalence. 이유: FESA only uses Abaqus CSV as external numeric reference. diff --git a/phases/nonlinear-static-newton-raphson/step5.md b/phases/nonlinear-static-newton-raphson/step5.md new file mode 100644 index 0000000..1fc2b2e --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step5.md @@ -0,0 +1,179 @@ +# Step 5: load-boundary-path-and-convergence-gates + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `include/fesa/core/diagnostic.h` +- `include/fesa/fem/dof_manager.h` +- `include/fesa/math/sparse_matrix.h` +- `include/fesa/math/vector3.h` +- Step 1 files: `include/fesa/model/domain.h`, `include/fesa/model/model_types.h` +- Step 4 files: `include/fesa/elements/nonlinear_mitc4_shell.h` + +## 이전 Step 전제 + +Step 1 stores raw nonlinear static values in Domain. Step 4 provides internal-only element residual/tangent. This Step owns global-once fixed CLOAD, absolute boundary path assembly, and the external contribution sign contract used by Step 10: `r = f_int - f_ext`, `K_T = K_int - K_ext`. + +## 소유 파일 + +- Create: `include/fesa/analysis/nonlinear_static_control.h` +- Create: `src/fesa/analysis/nonlinear_static_control.cpp` +- Create: `tests/unit/analysis/nonlinear_static_control_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct LoadFactorIncrement { + std::uint32_t increment_index; + double load_factor; + bool is_factor_one; +}; + +enum class NewtonChannelUnit { + kForce, + kForceLength, + kLength, + kDimensionless +}; + +inline constexpr double kNewtonRelativeThreshold = 1.0e-2; +inline constexpr double kNewtonZeroScaleThreshold = 1.0e-3; + +struct NewtonResidualChannelInput { + std::string identity; + Vector free_residual; + Vector free_internal; + Vector free_external; +}; + +struct NewtonCorrectionChannelInput { + std::string identity; + Vector fresh_correction; + Vector current_increment; +}; + +struct NewtonConvergenceInput { + NewtonResidualChannelInput force_residual; + NewtonResidualChannelInput moment_residual; + NewtonCorrectionChannelInput translation_correction; + NewtonCorrectionChannelInput rotation_correction; +}; + +enum class NewtonConvergenceBranch { + kRelative, + kZeroScale +}; + +struct NewtonChannelDecision { + std::string identity; + double numerator_norm; + double denominator_scale; + NewtonConvergenceBranch branch; + double threshold; + NewtonChannelUnit threshold_unit; + bool passed; +}; + +struct NewtonConvergenceResult { + NewtonChannelDecision force_residual; + NewtonChannelDecision moment_residual; + NewtonChannelDecision translation_correction; + NewtonChannelDecision rotation_correction; + bool combined_passed; +}; + +struct GlobalFixedLoadContribution { + Vector generalized_external_force; + SparseMatrix generalized_external_tangent; + std::vector diagnostics; +}; + +Result> BuildFixedLoadFactorSequence( + const StepDefinition& step); +Result ApplyAbsolutePrescribedDisplacementTarget( + const StepDefinition& step, double load_factor); +Result AssembleGlobalFixedLoadContribution( + const Domain& domain, + const DofManager& dofs, + const Vector& trial_generalized_coordinates, + double load_factor); +Status CheckMomentAdmissibility(const Vector3& director, + const Vector3& source_moment); +NewtonConvergenceResult EvaluateNewtonConvergence( + const NewtonConvergenceInput& input); + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-CTRL-001`: raw `initial_increment=0.1` and `time_period=1.0` produce factors `0.1..1.0`. +- `NSNR-CTRL-002`: final factor is assigned exact `1.0`, not accumulated past one. +- `NSNR-CTRL-003`: positive minimum/maximum values are accepted but not used for runtime stepping. +- `NSNR-CTRL-004`: nonzero `*BOUNDARY` value is absolute factor-one target from step-start committed state. +- `NSNR-CTRL-005`: constrained Newton correction remains exactly zero. +- `NSNR-CTRL-006`: `*CLOAD` force and moment directions remain fixed global dead loads and scale by factor. +- `NSNR-CTRL-007`: moment admissibility accepts `rho_M <= 1e-12` and rejects larger drilling-aligned moment. +- `NSNR-CTRL-008`: `AssembleGlobalFixedLoadContribution` contributes each aggregated source node load exactly once, independent of incident element count. +- `NSNR-CTRL-009`: source-order load rows produce deterministic global vector and tangent order. +- `NSNR-CTRL-010`: fixed-spatial moment projection and `J_l`/map-Hessian tangent terms pass directional derivative checks and may make `K_ext` nonsymmetric. +- `NSNR-CTRL-011`: global fixed-load assembly returns external quantities consumed with approved signs `r = f_int - f_ext` and `K_T = K_int - K_ext`; the fixed-moment tangent is subtracted once and is never duplicated per incident element. +- `NSNR-CTRL-012`: `NewtonConvergenceInput` has no caller-supplied threshold or unit fields; `EvaluateNewtonConvergence` owns exact immutable constants `kNewtonRelativeThreshold=1.0e-2` and `kNewtonZeroScaleThreshold=1.0e-3`. +- `NSNR-CTRL-013`: four convergence gates expose identity, `numerator_norm`, `denominator_scale`, branch, typed threshold, `threshold_unit`, pass, and combined pass. +- `NSNR-CTRL-014`: nonzero-denominator relative branches use threshold `1.0e-2` and threshold unit `kDimensionless` for all four channels. +- `NSNR-CTRL-015`: zero-scale branches use threshold `1.0e-3` with units `kForce`, `kForceLength`, `kLength`, and `kDimensionless` for residual force, residual moment, correction translation, and correction rotation respectively. +- `NSNR-CTRL-016`: empty free channels evaluate with `numerator_norm=0`, `denominator_scale=0`, branch `kZeroScale`, exact zero-scale threshold/unit, and pass. +- `NSNR-CTRL-017`: iteration numbering remains `1..100` with no iteration `101`. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement factor sequence derivation, load/BC scaling, global-once fixed-load external vector `f_ext` and external tangent `K_ext` assembly, moment admissibility, and typed convergence-channel evaluation. Residual denominator scale is derived from the provided free internal/external channel values, correction denominator scale from the provided current increment channel values, and zero-scale branches use only `kZeroScale`. Thresholds and threshold units are not caller inputs; `EvaluateNewtonConvergence` assigns the exact branch/channel constants from `requirements.md` and `io.md`. Return structured diagnostics for invalid nonlinear static data, unsupported drilling load, nonfinite Newton data, and nonconvergence readiness. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 5 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not put factor sequence storage into Domain. 이유: control layer derives runtime factors. +- Do not implement cutback, line search, damping, or automatic growth. 이유: approved Full Newton path excludes them. +- Do not mutate source load vectors. 이유: fixed-global source identity must remain immutable. +- Do not distribute full source-node CLOAD into every incident element. 이유: this would multiply loads by incident element count and violate formulation §11.2. +- Do not emit convergence branch labels outside `relative` and `zero-scale`. 이유: io.md exposes exactly those two branches. +- Do not accept per-call convergence thresholds or units. 이유: NSNR-069/070 fix branch thresholds and typed units globally. diff --git a/phases/nonlinear-static-newton-raphson/step6.md b/phases/nonlinear-static-newton-raphson/step6.md new file mode 100644 index 0000000..72a8ed9 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step6.md @@ -0,0 +1,105 @@ +# Step 6: backend-neutral-tangent-solver + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `include/fesa/solvers/linear/linear_solver.h` +- `include/fesa/solvers/linear/mkl_pardiso_solver.h` +- `src/fesa/solvers/linear/mkl_pardiso_solver.cpp` +- `tests/unit/solvers/linear/linear_solver_test.cpp` +- `tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp` +- Step 4 files: `include/fesa/elements/nonlinear_mitc4_shell.h` + +## 이전 Step 전제 + +Step 4 defines generally nonsymmetric nonlinear tangent matrices. Current SPD `MklPardisoSolver` must remain unchanged. + +## 소유 파일 + +- Create: `include/fesa/solvers/linear/tangent_solver.h` +- Create: `include/fesa/solvers/linear/mkl_pardiso_tangent_solver.h` +- Create: `src/fesa/solvers/linear/mkl_pardiso_tangent_solver.cpp` +- Create: `tests/unit/solvers/linear/tangent_solver_test.cpp` +- Test: `tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +class TangentSolver { + public: + virtual ~TangentSolver() = default; + virtual Status FactorizeFresh(const SparseMatrix& matrix) = 0; + virtual Status SolveCorrection(const Vector& rhs, + Vector& correction) const = 0; +}; + +class MklPardisoTangentSolver final : public TangentSolver { + public: + MklPardisoTangentSolver(); + ~MklPardisoTangentSolver() override; + Status FactorizeFresh(const SparseMatrix& matrix) override; + Status SolveCorrection(const Vector& rhs, Vector& correction) const override; +}; + +} // namespace fesa +``` + +The MKL tangent adapter uses unsymmetric PARDISO full CSR with `mtype=11`. Existing `MklPardisoSolver` keeps `mtype=2`, SPD symmetry validation, and upper-triangle copy unchanged. + +## RED + +Add tests first. + +- `NSNR-SOLVER-001`: nonsymmetric 2x2 matrix factorizes and solves a known correction. +- `NSNR-SOLVER-002`: `0x0` matrix factorize/solve succeeds with zero-size vectors. +- `NSNR-SOLVER-003`: nonfinite matrix or RHS values fail without modifying output correction. +- `NSNR-SOLVER-004`: singular/factorization failure maps to deterministic solver diagnostic. +- `NSNR-SOLVER-005`: solve before successful factorization fails with solver diagnostic. +- `NSNR-SOLVER-006`: existing SPD `MklPardisoSolver` still rejects nonsymmetric public CSR and passes prior tests. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "TangentSolver|MklPardiso" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement backend-neutral tangent solver boundary and MKL full-CSR adapter. Factorization is fresh per call, releases previous backend state, validates dimensions and finite values, and translates PARDISO errors to FESA `Status`. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "TangentSolver|MklPardiso" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 6 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not modify SPD `MklPardisoSolver` behavior except tests proving it is unchanged. 이유: existing linear solver contract must remain stable. +- Do not symmetrize or regularize tangent matrices. 이유: approved tangent may be nonsymmetric and failures must surface. +- Do not expose MKL types in public headers. 이유: backend types remain behind solver boundaries. diff --git a/phases/nonlinear-static-newton-raphson/step7.md b/phases/nonlinear-static-newton-raphson/step7.md new file mode 100644 index 0000000..273b24d --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step7.md @@ -0,0 +1,132 @@ +# Step 7: newton-iteration-log-writer + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- Step 0 files: `include/fesa/app/output_paths.h`, `src/fesa/app/output_paths.cpp`, `include/fesa/analysis/analysis.h` +- Step 5 files: `include/fesa/analysis/nonlinear_static_control.h` + +## 이전 Step 전제 + +Step 0 gives app-owned log path and lease lifetime. Step 5 defines convergence-channel data that log records consume. + +## 소유 파일 + +- Create: `include/fesa/analysis/newton_iteration_log.h` +- Create: `src/fesa/analysis/newton_iteration_log.cpp` +- Create: `tests/unit/analysis/newton_iteration_log_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +enum class NewtonIterationStage { + kEntered, + kKinematicsEvaluated, + kInternalAssembled, + kExternalAssembled, + kSolvedCorrection, + kConvergenceEvaluated, + kAccepted, + kFailed +}; + +struct NewtonIterationFailure { + bool present; + NewtonIterationStage stage; + std::string diagnostic_code; + std::string reason; +}; + +struct NewtonIterationLogRecord { + std::string step_name; + std::uint32_t increment_index; + double load_factor; + std::uint32_t iteration; + NewtonIterationStage last_completed_stage; + NewtonIterationFailure failure; + std::string transition; + std::string outcome; + std::string diagnostic_code; + NewtonChannelDecision force_residual; + NewtonChannelDecision moment_residual; + NewtonChannelDecision translation_correction; + NewtonChannelDecision rotation_correction; + bool combined_passed; +}; + +class NewtonIterationLogWriter { + public: + Status Open(const std::filesystem::path& log_path); + Status Write(const NewtonIterationLogRecord& record); + Status Flush(); + Status Close(); +}; + +} // namespace fesa +``` + +The serializer, not callers, owns the exact 39 labels and fixed order from `io.md`. For evaluated convergence channels it serializes only `relative` or `zero-scale` branch labels from `NewtonConvergenceBranch`. For unevaluated typed fields it writes `not-evaluated(reason)` using `NewtonIterationFailure::reason`. Callers cannot inject arbitrary fields. + +## RED + +Add tests first. + +- `NSNR-LOG-001`: a complete Newton iteration writes exactly one LF-terminated line. +- `NSNR-LOG-002`: line is UTF-8 without BOM, no header, no trailer. +- `NSNR-LOG-003`: line has exactly 39 TAB-separated `label=value` fields in approved order. +- `NSNR-LOG-004`: finite numeric values round-trip without locale dependence. +- `NSNR-LOG-005`: each convergence channel serializes identity, `numerator_norm`, `denominator_scale`, branch, threshold, `threshold_unit`, and pass from `NewtonChannelDecision`. +- `NSNR-LOG-006`: evaluated empty free-channel decisions serialize `numerator_norm=0`, `denominator_scale=0`, threshold `1.0e-3`, the channel-specific zero-scale `threshold_unit`, and branch `zero-scale`; no other branch label appears. +- `NSNR-LOG-007`: combined pass, transition, outcome, failure stage, and diagnostic code are serialized from explicit record fields. +- `NSNR-LOG-008`: early failure fields after the failed stage use `not-evaluated(reason)`. +- `NSNR-LOG-009`: embedded tab, LF, CR, and backslash are escaped deterministically. +- `NSNR-LOG-010`: write/flush/close failure returns `log-output-failure` and prevents success classification. +- `NSNR-LOG-011`: non-Newton controlled failure path can leave a zero-byte log owned by app lifecycle. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NewtonIterationLog" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement a small log writer with explicit open/write/flush/close state, serializer-owned 39-field order, deterministic escaping, finite numeric formatting, `relative`/`zero-scale` convergence branch mapping, typed `not-evaluated(reason)` substitution, and structured `Status` failures. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NewtonIterationLog" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 7 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not duplicate per-iteration log lines to stderr. 이유: approved log is file-only. +- Do not accept arbitrary caller-provided field vectors. 이유: io.md requires an exact fixed schema and order. +- Do not write HDF5 trial history. 이유: log is diagnostic and HDF5 stores accepted frames only. +- Do not continue after log write/flush/close failure. 이유: log failure blocks result commit. diff --git a/phases/nonlinear-static-newton-raphson/step8.md b/phases/nonlinear-static-newton-raphson/step8.md new file mode 100644 index 0000000..d612d11 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step8.md @@ -0,0 +1,169 @@ +# Step 8: nonlinear-state-commit-rollback + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `include/fesa/analysis/analysis_state.h` +- `src/fesa/analysis/analysis_state.cpp` +- `include/fesa/core/source_identity.h` +- `include/fesa/fem/dof_manager.h` +- `include/fesa/model/domain.h` +- `include/fesa/results/result_records.h` +- Step 3 files: `include/fesa/elements/nonlinear_mitc4_shell.h` +- Step 4 files: `include/fesa/elements/nonlinear_mitc4_shell.h` +- Step 5 files: `include/fesa/analysis/nonlinear_static_control.h` +- Step 6 files: `include/fesa/solvers/linear/tangent_solver.h` +- Step 7 files: `include/fesa/analysis/newton_iteration_log.h` + +## 이전 Step 전제 + +Steps 3-7 provide nonlinear element recovery, residual/tangent, controls, tangent solver, and Newton log record types. + +## 소유 파일 + +- Create: `include/fesa/analysis/nonlinear_analysis_state.h` +- Create: `src/fesa/analysis/nonlinear_analysis_state.cpp` +- Create: `tests/unit/analysis/nonlinear_analysis_state_test.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +struct NonlinearNodeBaseline { + EntityIndex node_index; + SourceEntityId source_id; + std::array, 3> triad; + std::array director; +}; + +struct NonlinearStateBaselineInput { + std::vector node_baselines; +}; + +struct NonlinearTrialState { + std::uint32_t increment_index; + double load_factor; + bool is_factor_zero_baseline; + std::vector nodal_internal_order; + std::vector nodal_source_ids; + Vector generalized_coordinates; + Vector displacement; + Vector rotation_vector; + std::vector, 3>> nodal_triad; + std::vector> nodal_director; + Vector internal_force; + Vector external_force; + Vector residual; + Vector reaction; + std::vector shell_results; + double physical_strain_energy; + std::array global_equilibrium; +}; + +struct AcceptedFrameState { + std::uint32_t frame_index; + std::uint32_t increment_index; + double load_factor; + std::uint32_t iteration_count; + bool is_factor_one; + std::vector nodal_internal_order; + std::vector nodal_source_ids; + Vector generalized_coordinates; + Vector displacement; + Vector rotation_vector; + std::vector, 3>> nodal_triad; + std::vector> nodal_director; + Vector internal_force; + Vector external_force; + Vector residual; + Vector reaction; + std::vector shell_results; + double physical_strain_energy; + std::array global_equilibrium; +}; + +class NonlinearAnalysisState { + public: + static Result Create( + const Domain& domain, + const DofManager& dofs, + const NonlinearStateBaselineInput& baseline); + + Result BeginTrialFromCommitted() const; + Status CommitAcceptedFrame(const AcceptedFrameState& frame); + void DiscardTrial() noexcept; + const std::vector& AcceptedFrames() const noexcept; + const NonlinearTrialState& CommittedState() const noexcept; +}; + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-STATE-000`: `NonlinearAnalysisState::Create` requires exactly one `NonlinearNodeBaseline` per `Domain.Nodes()` entry in stable internal order; each entry has `node_index` equal to its vector offset and `source_id` equal to `Domain.Nodes()[node_index].source_id`. +- `NSNR-STATE-001`: `NonlinearAnalysisState::Create` rejects missing, extra, duplicate, out-of-order, or instance-label mismatched node identities before any mutable state is produced. +- `NSNR-STATE-002`: `NonlinearAnalysisState::Create` validates node/DOF/frame inventory, sizes all vectors, preserves `nodal_internal_order` and `nodal_source_ids`, and creates a committed factor-zero baseline with `increment_index=0`, `load_factor=0.0`, `is_factor_zero_baseline=true`, and no accepted frames. +- `NSNR-STATE-003`: duplicate source labels across different instances remain distinct when `SourceEntityId::instance_name` differs. +- `NSNR-STATE-004`: trial state starts from committed state and can be discarded without mutation. +- `NSNR-STATE-005`: accepted frames are appended in stable accepted-factor order. +- `NSNR-STATE-006`: frame index is zero-based accepted-frame order; the factor-zero committed baseline is metadata/state only and is never appended as an accepted frame. +- `NSNR-STATE-007`: final frame at load factor `1.0` has `is_factor_one=true`. +- `NSNR-STATE-008`: residual and reaction are stored from full residual `r = f_int - f_ext`. +- `NSNR-STATE-009`: accepted frame owns generalized coordinates, displacement, rotation vector, per-node identity/order, per-node triad/director, internal/external/residual/reaction, stable `ShellResultRow` recovery, physical strain energy, and global equilibrium. +- `NSNR-STATE-010`: all accepted-frame vectors match node/DOF counts and all `ShellResultRow` rows are stable element/midsurface order. +- `NSNR-STATE-011`: commit validates finite values for every approved scalar and atomically rejects nonfinite frames with `invalid-accepted-state`. +- `NSNR-STATE-012`: failed trial preserves prior committed state. +- `NSNR-STATE-013`: no unapproved verification data is stored. +- `NSNR-STATE-014`: committed and accepted nodal identity vectors are preserved for Step 9 HDF5 node datasets and Step 11 HDF5-to-reference source mapping; source label alone is never used as identity. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement `NonlinearAnalysisState::Create` as the only construction seam for a valid nonlinear state. It uses `Domain`, `DofManager`, and `NonlinearStateBaselineInput` to require one baseline per Domain node in stable internal order, match both `EntityIndex` and full `SourceEntityId`, allocate zero generalized/displacement/rotation/internal/external/residual/reaction vectors, preserve nodal order/source identity for HDF5/reference mapping, install finite per-node triads/directors, and establish the committed factor-zero baseline without adding an accepted frame. Commit validates inventory, order, shape, identity, and finiteness before mutating committed state. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 8 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not put equation ids into Node or Element objects. 이유: `DofManager` owns equation numbering. +- Do not identify baseline nodes by source label alone. 이유: labels are not unique across instances and cannot support stable HDF5/reference mapping. +- Do not commit trial data before convergence gates pass. 이유: rollback/preservation contract depends on committed-state isolation. +- Do not expand existing `AnalysisState` for future nonlinear features. 이유: this Step owns only approved NSNR state. +- Do not store stress projections or verification data outside approved `ShellResultRow`, physical energy, and global equilibrium fields. 이유: schema v1 has a bounded accepted-state contract. diff --git a/phases/nonlinear-static-newton-raphson/step9.md b/phases/nonlinear-static-newton-raphson/step9.md new file mode 100644 index 0000000..44f224a --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/step9.md @@ -0,0 +1,118 @@ +# Step 9: nonlinear-hdf5-schema-v1-writer + +## 읽어야 할 파일 + +- `AGENTS.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/reference-model.md` +- `include/fesa/io/hdf5/hdf5_results_writer.h` +- `include/fesa/results/results_writer.h` +- `src/fesa/io/hdf5/hdf5_results_writer.cpp` +- `src/fesa/io/hdf5/hdf5_primitives.h` +- `src/fesa/io/hdf5/hdf5_primitives.cpp` +- `src/fesa/io/hdf5/hdf5_self_check.h` +- `src/fesa/io/hdf5/hdf5_self_check.cpp` +- `tests/unit/io/hdf5/hdf5_results_writer_test.cpp` +- Step 8 files: `include/fesa/analysis/nonlinear_analysis_state.h` + +## 이전 Step 전제 + +Step 8 provides committed nonlinear accepted-frame state. Step 0 and Step 10 own the rule that log close succeeds before this writer is invoked. + +## 소유 파일 + +- Create: `include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h` +- Create: `src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp` +- Create: `include/fesa/results/nonlinear_results_writer.h` +- Create: `tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp` +- Modify: `src/fesa/io/hdf5/hdf5_primitives.h` +- Modify: `src/fesa/io/hdf5/hdf5_primitives.cpp` +- Modify: `src/fesa/io/hdf5/hdf5_self_check.h` +- Modify: `src/fesa/io/hdf5/hdf5_self_check.cpp` +- Modify: `src/fesa/CMakeLists.txt` +- Modify: `tests/CMakeLists.txt` + +## 인터페이스 + +```cpp +namespace fesa { + +class NonlinearResultsWriter { + public: + virtual ~NonlinearResultsWriter() = default; + virtual Status Write(const std::filesystem::path& output_path, + const Domain& domain, + const NonlinearAnalysisState& state, + const std::vector& diagnostics) = 0; +}; + +class NonlinearHdf5ResultsWriter final : public NonlinearResultsWriter { + public: + Status Write(const std::filesystem::path& output_path, + const Domain& domain, + const NonlinearAnalysisState& state, + const std::vector& diagnostics) override; +}; + +} // namespace fesa +``` + +## RED + +Add tests first. + +- `NSNR-HDF5-001`: `/metadata` has `schema_version=1`, `feature_id=nonlinear-static-newton-raphson`, and approved procedure/formulation/integration attributes. +- `NSNR-HDF5-002`: `/model/nodes`, `/model/elements`, shell section/material/frame/director/constraint datasets match I/O schema. +- `NSNR-HDF5-003`: `/steps/Step-1/accepted_frames` has one row per committed increment. +- `NSNR-HDF5-004`: final row has load factor `1.0` and `is_factor_one=1`. +- `NSNR-HDF5-005`: factor zero metadata exists and factor zero is not a frame. +- `NSNR-HDF5-006`: per-frame nodal displacement, triad, director, internal, external, residual, reaction datasets have approved shapes and column ordering. +- `NSNR-HDF5-007`: reaction rotational columns store `J_l(phi)^(-T)` spatial physical moment. +- `NSNR-HDF5-008`: element shell local frame, generalized strain, section resultant, stress datasets exist with approved shape and identity. +- `NSNR-HDF5-009`: `/global/energy` and `/global/equilibrium` exist for each accepted frame. +- `NSNR-HDF5-010`: no trial history dataset is written. +- `NSNR-HDF5-011`: HDF5 candidate failure preserves prior final file. +- `NSNR-HDF5-012`: writer consumes `std::vector` and writes deterministic diagnostics. +- `NSNR-HDF5-013`: `NonlinearHdf5ResultsWriter` implements backend-neutral `NonlinearResultsWriter`, and no HDF5 handle/type appears in analysis/core public headers. + +Run: + +```powershell +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure +``` + +Expected: new tests fail. Unexpected pass stops. + +## GREEN + +Implement `include/fesa/results/nonlinear_results_writer.h` as the backend-neutral boundary and implement schema-v1 nonlinear HDF5 writer using existing HDF5 RAII/primitives/self-check style. Keep HDF5 and platform types private to `src/fesa/io/hdf5`. + +## VERIFY + +```powershell +cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` + "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` + "-DMKL_DIR=$mklDir" ` + "-DTBB_DIR=$tbbDir" ` + "-DHDF5_DIR=$hdf5Dir" +cmake --build .harness/build --config Debug +ctest --test-dir .harness/build -C Debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure +ctest --test-dir .harness/build -C Debug --show-only=json-v1 +ctest --test-dir .harness/build -C Debug --output-on-failure +``` + +Recheck `.harness/config.json` before default commands. + +## 상태 기록 + +Update only Step 9 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. + +## 금지사항 + +- Do not open, write, or replace HDF5 before log close succeeds. 이유: Step 10 app lifecycle enforces log-before-HDF5 finalization. +- Do not write compression, chunking, or trial history. 이유: io.md requires contiguous accepted-state storage. +- Do not make CSV an authoritative output. 이유: official solver output is HDF5. +- Do not include HDF5 headers from analysis/core public headers. 이유: output backend types stay behind writer interfaces. diff --git a/scripts/execute.py b/scripts/execute.py index 451e511..6b7bc92 100644 --- a/scripts/execute.py +++ b/scripts/execute.py @@ -66,8 +66,12 @@ class StepExecutor: """Phase 디렉토리 안의 step들을 순차 실행하는 하네스.""" MAX_RETRIES = 3 + CODEX_TIMEOUT_SECONDS = 1800 CODEX_SANDBOX_ENV = "FESA_HARNESS_CODEX_SANDBOX" CODEX_SANDBOX_MODES = frozenset({"workspace-write", "danger-full-access"}) + IMPLEMENTATION_AGENT_PROFILE = Path( + ".codex/agents/implementation-agent.toml" + ) FEAT_MSG = "feat({phase}): step {num} - {name}" CHORE_MSG = "chore({phase}): step {num} output" TZ = timezone(timedelta(hours=9)) @@ -253,6 +257,35 @@ class StepExecutor: ) return mode + def _implementation_agent_settings(self) -> tuple[str, str]: + profile_path = Path(self._root) / self.IMPLEMENTATION_AGENT_PROFILE + try: + profile_lines = profile_path.read_text(encoding="utf-8").splitlines() + except OSError as exc: + raise CodexEnvironmentError( + f"Implementation Agent profile을 읽을 수 없습니다: {profile_path}" + ) from exc + + settings = {} + for line in profile_lines: + key, separator, value = line.partition("=") + key = key.strip() + if separator and key in {"model", "model_reasoning_effort"}: + try: + settings[key] = json.loads(value.strip()) + except json.JSONDecodeError as exc: + raise CodexEnvironmentError( + f"Implementation Agent profile의 {key} 값이 올바른 문자열이 아닙니다." + ) from exc + + model = settings.get("model") + reasoning_effort = settings.get("model_reasoning_effort") + if not isinstance(model, str) or not isinstance(reasoning_effort, str): + raise CodexEnvironmentError( + "Implementation Agent profile에 model과 model_reasoning_effort 문자열이 필요합니다." + ) + return model, reasoning_effort + def _invoke_codex(self, step: dict, preamble: str) -> dict: step_num, step_name = step["step"], step["name"] step_file = self._phase_dir / f"step{step_num}.md" @@ -262,12 +295,20 @@ class StepExecutor: sys.exit(1) prompt = preamble + step_file.read_text(encoding="utf-8") + sandbox_mode = self._codex_sandbox_mode() + model, reasoning_effort = self._implementation_agent_settings() command = [ "codex", "exec", + "--disable", + "unified_exec", "--json", + "--model", + model, + "--config", + f"model_reasoning_effort={json.dumps(reasoning_effort)}", "--sandbox", - self._codex_sandbox_mode(), + sandbox_mode, "--dangerously-bypass-hook-trust", "--cd", self._root, @@ -281,12 +322,22 @@ class StepExecutor: capture_output=True, text=True, encoding="utf-8", - timeout=1800, + timeout=self.CODEX_TIMEOUT_SECONDS, ) except FileNotFoundError as exc: raise CodexEnvironmentError( "Codex CLI를 찾을 수 없습니다. codex를 설치하고 PATH를 확인하세요." ) from exc + except subprocess.TimeoutExpired as exc: + timeout_message = f"Codex timed out after {exc.timeout} seconds." + stderr = exc.stderr or "" + if stderr: + stderr = f"{timeout_message}\n{stderr}" + else: + stderr = timeout_message + result = subprocess.CompletedProcess( + command, 124, stdout=exc.stdout or "", stderr=stderr + ) if result.returncode != 0: print(f"\n WARN: Codex가 비정상 종료됨 (code {result.returncode})") diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 6013f2b..4d41a7f 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -5,6 +5,7 @@ add_library( analysis/analysis_state.cpp analysis/linear_static_analysis.cpp app/fesa_application.cpp + app/output_paths.cpp assembly/load_assembler.cpp assembly/parallel_for.cpp assembly/sparse_assembler.cpp diff --git a/src/fesa/app/fesa_application.cpp b/src/fesa/app/fesa_application.cpp index 72a3950..e878035 100644 --- a/src/fesa/app/fesa_application.cpp +++ b/src/fesa/app/fesa_application.cpp @@ -8,6 +8,7 @@ #include "fesa/analysis/analysis.h" #include "fesa/analysis/linear_static_analysis.h" +#include "fesa/app/output_paths.h" #include "fesa/assembly/parallel_for.h" #include "fesa/core/diagnostic.h" #include "fesa/io/hdf5/hdf5_results_writer.h" @@ -23,19 +24,6 @@ constexpr int kModelExitCode = 4; constexpr int kSolverExitCode = 5; constexpr int kOutputExitCode = 6; -bool StartsWithOption(const std::string& argument) { - return !argument.empty() && argument.front() == '-'; -} - -Diagnostic UsageDiagnostic() { - return {Severity::kError, - "cli-usage", - {{}, 0U}, - "", - "", - "Usage: fesa.exe [--output ]."}; -} - const char* SeverityName(const Severity severity) { return severity == Severity::kWarning ? "warning" : "error"; } @@ -72,23 +60,23 @@ int ExitCodeFor(const Status& status) { } // namespace int FesaApplication::Run(const std::vector& arguments) { - const bool default_output_form = arguments.size() == 1U && - !arguments[0U].empty() && - !StartsWithOption(arguments[0U]); - const bool explicit_output_form = - arguments.size() == 3U && !arguments[0U].empty() && - !StartsWithOption(arguments[0U]) && arguments[1U] == "--output" && - !arguments[2U].empty() && !StartsWithOption(arguments[2U]); - if (!default_output_form && !explicit_output_form) { - WriteDiagnostics({UsageDiagnostic()}); + const auto paths = DeriveSingleInputOutputPaths( + arguments, std::filesystem::current_path()); + if (!paths.HasValue()) { + WriteDiagnostics(paths.GetStatus().Diagnostics()); return kUsageExitCode; } + auto lease = AcquireOutputWriteLease(paths.Value()); + if (!lease.HasValue()) { + WriteDiagnostics(lease.GetStatus().Diagnostics()); + return kOutputExitCode; + } + AnalysisRequest request; - request.input_path = arguments[0U]; - request.output_path = explicit_output_form - ? std::filesystem::path{arguments[2U]} - : std::filesystem::current_path() / "results.h5"; + request.input_path = paths.Value().input_path; + request.output_path = paths.Value().results_path; + request.log_path = paths.Value().log_path; TbbParallelFor parallel_for; MklPardisoSolver linear_solver; diff --git a/src/fesa/app/output_paths.cpp b/src/fesa/app/output_paths.cpp new file mode 100644 index 0000000..2a2388c --- /dev/null +++ b/src/fesa/app/output_paths.cpp @@ -0,0 +1,127 @@ +#include "fesa/app/output_paths.h" + +#include +#include +#include +#include + +#include + +#include "fesa/core/ascii.h" + +namespace fesa { +namespace { + +Status UsageFailure(const std::string& identity, const std::string& message) { + return Status::Failure( + FailureCategory::kInput, + {{Severity::kError, "cli-usage", {{}, 0U}, "", identity, message}}); +} + +Status OutputBusyFailure(const std::filesystem::path& results_path) { + return Status::Failure( + FailureCategory::kOutput, + {{Severity::kError, + "output-busy", + {{}, 0U}, + "", + results_path.generic_u8string(), + "The derived output pair is already owned by another invocation."}}); +} + +bool StartsWithOption(const std::string& argument) { + return !argument.empty() && argument.front() == '-'; +} + +std::string ArgumentIdentity(const std::size_t argument_index, + const std::string& argument) { + return "argument_index=" + std::to_string(argument_index) + + ";argument=" + argument; +} + +std::filesystem::path LockPathFor(const DerivedOutputPaths& paths) { + std::filesystem::path lock_path = paths.results_path; + lock_path += ".fesa.lock"; + return lock_path; +} + +} // namespace + +class OutputWriteLease::Impl { + public: + explicit Impl(const HANDLE handle) noexcept : handle_{handle} {} + + Impl(const Impl&) = delete; + Impl& operator=(const Impl&) = delete; + + ~Impl() { + if (handle_ != INVALID_HANDLE_VALUE) { + (void)CloseHandle(handle_); + } + } + + private: + HANDLE handle_{INVALID_HANDLE_VALUE}; +}; + +OutputWriteLease::OutputWriteLease(std::unique_ptr impl) noexcept + : impl_{std::move(impl)} {} + +OutputWriteLease::OutputWriteLease(OutputWriteLease&&) noexcept = default; + +OutputWriteLease& OutputWriteLease::operator=(OutputWriteLease&&) noexcept = + default; + +OutputWriteLease::~OutputWriteLease() = default; + +Result DeriveSingleInputOutputPaths( + const std::vector& arguments, + const std::filesystem::path& invocation_cwd) { + for (std::size_t index = 0U; index < arguments.size(); ++index) { + if (arguments[index].find("--output") != std::string::npos) { + return Result::Failure(UsageFailure( + ArgumentIdentity(index, arguments[index]), + "The --output option is not supported.")); + } + } + + if (arguments.size() != 1U || arguments.front().empty() || + StartsWithOption(arguments.front())) { + return Result::Failure( + UsageFailure("", "Usage: fesa.exe .")); + } + + std::filesystem::path input_path{arguments.front()}; + if (input_path.is_relative()) { + input_path = invocation_cwd / input_path; + } + input_path = input_path.lexically_normal(); + if (!AsciiCaseInsensitiveEquals(input_path.extension().string(), ".inp")) { + return Result::Failure( + UsageFailure(input_path.generic_u8string(), + "The input path must end in .inp.")); + } + + const std::filesystem::path stem = input_path.stem(); + const std::filesystem::path output_directory = input_path.parent_path(); + return Result::Success( + {input_path, output_directory / (stem.string() + "_results.h5"), + output_directory / (stem.string() + "_log.txt")}); +} + +Result AcquireOutputWriteLease( + const DerivedOutputPaths& paths) { + const std::filesystem::path lock_path = LockPathFor(paths); + const HANDLE lock_handle = CreateFileW( + lock_path.c_str(), GENERIC_READ | GENERIC_WRITE, 0U, nullptr, CREATE_NEW, + FILE_ATTRIBUTE_HIDDEN | FILE_FLAG_DELETE_ON_CLOSE, nullptr); + if (lock_handle == INVALID_HANDLE_VALUE) { + return Result::Failure( + OutputBusyFailure(paths.results_path)); + } + + return Result::Success( + OutputWriteLease{std::make_unique(lock_handle)}); +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ef28eb2..da05c4c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -9,6 +9,7 @@ add_executable( unit/assembly/parallel_for_test.cpp unit/assembly/load_assembler_test.cpp unit/assembly/sparse_assembler_test.cpp + unit/app/output_paths_test.cpp unit/constraints/boundary_condition_test.cpp unit/constraints/essential_constraints_test.cpp unit/core/ascii_test.cpp diff --git a/tests/integration/app/fesa_application_test.cpp b/tests/integration/app/fesa_application_test.cpp index 8d3f73b..330047c 100644 --- a/tests/integration/app/fesa_application_test.cpp +++ b/tests/integration/app/fesa_application_test.cpp @@ -1,5 +1,7 @@ #include "fesa/app/fesa_application.h" +#include "fesa/app/output_paths.h" +#include #include #include @@ -9,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -332,32 +335,37 @@ void ExpectDiagnosticFieldOrder(const std::string& text) { } } -std::vector ExplicitOutputArguments( - const std::filesystem::path& input, const std::filesystem::path& output) { - // FesaApplication receives argv[0]-excluded operands and options. - return {input.string(), "--output", output.string()}; +struct FileSnapshot { + std::string contents; + std::filesystem::file_time_type write_time; +}; + +FileSnapshot SnapshotFile(const std::filesystem::path& path) { + std::ifstream stream{path, std::ios::binary}; + if (!stream) { + throw std::runtime_error{"Unable to open an app output fixture."}; + } + return {{std::istreambuf_iterator{stream}, + std::istreambuf_iterator{}}, + std::filesystem::last_write_time(path)}; } } // namespace -TEST(LinearStaticCli, DefaultAndExplicitOutputProduceFesaHdf5) { +// NSNR-CLI-008: the application no longer uses a CWD-global results.h5. +TEST(LinearStaticCli, DefaultOutputUsesInputSiblingDerivedName) { TempDirectory directory{"paths"}; - const auto input = directory.Path() / "model.inp"; + const auto input = directory.Path() / "Beam.Model.INP"; WriteText(input, AxialDeck(true, false, false)); - const auto default_output = directory.Path() / "results.h5"; + const auto default_output = directory.Path() / "Beam.Model_results.h5"; { CurrentDirectoryGuard current_directory{directory.Path()}; const auto result = RunApplication({input.string()}); ASSERT_EQ(result.exit_code, 0) << result.standard_error; } ExpectFesaHdf5Identity(default_output, input); - - const auto explicit_output = directory.Path() / "named-output.h5"; - const auto result = - RunApplication(ExplicitOutputArguments(input, explicit_output)); - ASSERT_EQ(result.exit_code, 0) << result.standard_error; - ExpectFesaHdf5Identity(explicit_output, input); + EXPECT_FALSE(std::filesystem::exists(directory.Path() / "results.h5")); } TEST(LinearStaticCli, ReturnsEveryExactExitCodeAndOrderedDiagnostic) { @@ -369,8 +377,7 @@ TEST(LinearStaticCli, ReturnsEveryExactExitCodeAndOrderedDiagnostic) { WriteText(model_input, AxialDeck(true, true, false)); WriteText(solver_input, AxialDeck(false, false, false)); - const auto success = RunApplication( - ExplicitOutputArguments(valid_input, directory.Path() / "success.h5")); + const auto success = RunApplication({valid_input.string()}); const auto usage = RunApplication({}); const auto missing_input = directory.Path() / "missing.inp"; const auto input = RunApplication({missing_input.string()}); @@ -378,25 +385,19 @@ TEST(LinearStaticCli, ReturnsEveryExactExitCodeAndOrderedDiagnostic) { RunApplication({missing_input.string(), "--output", "--output"}); const auto unknown_output_option = RunApplication({missing_input.string(), "--output", "--bogus"}); - const auto model = RunApplication(ExplicitOutputArguments( - model_input, directory.Path() / "model-failure.h5")); - const auto solver = RunApplication(ExplicitOutputArguments( - solver_input, directory.Path() / "solver-failure.h5")); - const auto output = RunApplication(ExplicitOutputArguments( - valid_input, directory.Path() / "nonexistent-parent" / "results.h5")); + const auto model = RunApplication({model_input.string()}); + const auto solver = RunApplication({solver_input.string()}); EXPECT_EQ(success.exit_code, 0) << success.standard_error; EXPECT_EQ(usage.exit_code, 2); EXPECT_EQ(input.exit_code, 3); EXPECT_EQ(model.exit_code, 4); EXPECT_EQ(solver.exit_code, 5); - EXPECT_EQ(output.exit_code, 6); ExpectDiagnosticFieldOrder(usage.standard_error); ExpectDiagnosticFieldOrder(input.standard_error); ExpectDiagnosticFieldOrder(model.standard_error); ExpectDiagnosticFieldOrder(solver.standard_error); - ExpectDiagnosticFieldOrder(output.standard_error); EXPECT_EQ(repeated_output.exit_code, 2); ExpectDiagnosticFieldOrder(repeated_output.standard_error); EXPECT_NE(repeated_output.standard_error.find("code=cli-usage"), @@ -407,24 +408,79 @@ TEST(LinearStaticCli, ReturnsEveryExactExitCodeAndOrderedDiagnostic) { std::string::npos); } +// NSNR-CLI-003 and NSNR-CLI-007: usage failure precedes every output side +// effect, including replacement of existing derived files. +TEST(LinearStaticCli, OutputSubstringRejectionLeavesDerivedFilesUnchanged) { + TempDirectory directory{"usage-no-output"}; + const auto input = directory.Path() / "model.inp"; + const auto results = directory.Path() / "model_results.h5"; + const auto log = directory.Path() / "model_log.txt"; + WriteText(input, AxialDeck(true, false, false)); + WriteText(results, "previous-results"); + WriteText(log, "previous-log"); + const FileSnapshot previous_results = SnapshotFile(results); + const FileSnapshot previous_log = SnapshotFile(log); + + for (const char* argument : + {"abc--outputdef", "--output-path", "--output=foo", "--output"}) { + const auto result = RunApplication({input.string(), argument}); + EXPECT_EQ(result.exit_code, 2) << argument; + EXPECT_EQ( + std::count(result.standard_error.begin(), result.standard_error.end(), '\n'), + 1U) + << result.standard_error; + EXPECT_NE(result.standard_error.find("code=cli-usage"), + std::string::npos); + EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents); + EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time); + EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents); + EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time); + } +} + +// NSNR-CLI-006: a held lease blocks the application before any public output +// is opened, truncated, or replaced. +TEST(LinearStaticCli, BusyOutputLeaseLeavesDerivedFilesUnchanged) { + TempDirectory directory{"busy-output"}; + const auto input = directory.Path() / "model.inp"; + const auto results = directory.Path() / "model_results.h5"; + const auto log = directory.Path() / "model_log.txt"; + WriteText(input, AxialDeck(true, false, false)); + WriteText(results, "previous-results"); + WriteText(log, "previous-log"); + const FileSnapshot previous_results = SnapshotFile(results); + const FileSnapshot previous_log = SnapshotFile(log); + + const fesa::DerivedOutputPaths paths{input, results, log}; + auto lease = fesa::AcquireOutputWriteLease(paths); + ASSERT_TRUE(lease.HasValue()) << lease.GetStatus().Diagnostics().size(); + + const auto result = RunApplication({input.string()}); + EXPECT_EQ(result.exit_code, 6) << result.standard_error; + EXPECT_NE(result.standard_error.find("code=output-busy"), + std::string::npos); + EXPECT_EQ(SnapshotFile(results).contents, previous_results.contents); + EXPECT_EQ(SnapshotFile(results).write_time, previous_results.write_time); + EXPECT_EQ(SnapshotFile(log).contents, previous_log.contents); + EXPECT_EQ(SnapshotFile(log).write_time, previous_log.write_time); +} + TEST(LinearStaticCli, OutputRequestsDoNotFilterMandatoryResults) { TempDirectory directory{"output-requests"}; const auto plain_input = directory.Path() / "plain.inp"; const auto requested_input = directory.Path() / "requested.inp"; - const auto plain_output = directory.Path() / "plain.h5"; - const auto requested_output = directory.Path() / "requested.h5"; WriteText(plain_input, AxialDeck(true, false, false)); WriteText(requested_input, AxialDeck(true, false, true)); - const auto plain = - RunApplication(ExplicitOutputArguments(plain_input, plain_output)); - const auto requested = RunApplication( - ExplicitOutputArguments(requested_input, requested_output)); + const auto plain = RunApplication({plain_input.string()}); + const auto requested = RunApplication({requested_input.string()}); ASSERT_EQ(plain.exit_code, 0) << plain.standard_error; ASSERT_EQ(requested.exit_code, 0) << requested.standard_error; - const auto plain_file = OpenFile(plain_output); - const auto requested_file = OpenFile(requested_output); + const auto plain_file = + OpenFile(plain_input.parent_path() / "plain_results.h5"); + const auto requested_file = + OpenFile(requested_input.parent_path() / "requested_results.h5"); ExpectMandatoryInventory(plain_file.Get()); ExpectMandatoryInventory(requested_file.Get()); @@ -449,10 +505,10 @@ TEST(LinearStaticCli, OutputRequestsDoNotFilterMandatoryResults) { TEST(Mitc4ShellCli, WritesShellHdf5ThroughTheExistingApplicationRoute) { TempDirectory directory{"shell-route"}; const auto input = directory.Path() / "shell.inp"; - const auto output = directory.Path() / "shell-results.h5"; + const auto output = directory.Path() / "shell_results.h5"; WriteText(input, AllConstrainedShellDeck()); - const auto result = RunApplication(ExplicitOutputArguments(input, output)); + const auto result = RunApplication({input.string()}); ASSERT_EQ(result.exit_code, 0) << result.standard_error; ExpectShellHdf5Identity(output, input); } diff --git a/tests/reference/b33_reference_comparison_test.cpp b/tests/reference/b33_reference_comparison_test.cpp index 8e2908a..0c277f1 100644 --- a/tests/reference/b33_reference_comparison_test.cpp +++ b/tests/reference/b33_reference_comparison_test.cpp @@ -153,7 +153,8 @@ TEST(B33ReferenceComparison, GeneratesAuthoritativeHdf5AndComparisonEvidence) { const auto input = reference_directory / "cantilever beam.inp"; const auto output_directory = binary_root / "reference" / "cantilever-beam-b33"; - const auto results = output_directory / "results.h5"; + const auto execution_input = output_directory / input.filename(); + const auto results = output_directory / "cantilever beam_results.h5"; const auto comparison = output_directory / "comparison.json"; // Only the exact build-local evidence directory is reset; the approved @@ -173,16 +174,18 @@ TEST(B33ReferenceComparison, GeneratesAuthoritativeHdf5AndComparisonEvidence) { std::filesystem::path{"cantilever beam reactions.csv"}); EXPECT_EQ(reference_before[3U].relative_path, std::filesystem::path{"cantilever beam.inp"}); + ASSERT_TRUE(std::filesystem::copy_file(input, execution_input, error)); + ASSERT_FALSE(error); fesa::FesaApplication application; - // FesaApplication receives application operands/options; main strips argv[0]. - ASSERT_EQ(application.Run({input.string(), "--output", results.string()}), 0); + ASSERT_EQ(application.Run({execution_input.string()}), 0); ASSERT_TRUE(std::filesystem::is_regular_file(results)); ASSERT_GT(H5Fis_hdf5(results.string().c_str()), 0); EXPECT_GT(StressRowCount(results), 0U); auto comparison_result = - fesa::test::ReferenceComparison::Compare(results, reference_directory); + fesa::test::ReferenceComparison::Compare(results, reference_directory, + execution_input); ASSERT_TRUE(comparison_result.HasValue()); const auto& report = comparison_result.Value(); ASSERT_TRUE(report.passed); @@ -248,7 +251,9 @@ TEST(B33ReferenceComparison, GeneratesAuthoritativeHdf5AndComparisonEvidence) { } std::sort(generated_names.begin(), generated_names.end()); EXPECT_EQ(generated_names, - (std::vector{"comparison.json", "results.h5"})); + (std::vector{"cantilever beam.inp", + "cantilever beam_results.h5", + "comparison.json"})); ExpectTreeUnchanged(reference_before, SnapshotTree(reference_directory)); } diff --git a/tests/reference/mitc4_reference_cases_test.cpp b/tests/reference/mitc4_reference_cases_test.cpp index 118a420..360a070 100644 --- a/tests/reference/mitc4_reference_cases_test.cpp +++ b/tests/reference/mitc4_reference_cases_test.cpp @@ -75,14 +75,19 @@ CaseEvidence RunCase(const std::string& case_id, if (!std::filesystem::create_directories(output_directory, error) || error) { throw std::runtime_error{"Unable to create MITC4 evidence directory."}; } - const auto results = output_directory / "results.h5"; + const auto execution_input = output_directory / input.filename(); + if (!std::filesystem::copy_file(input, execution_input, error) || error) { + throw std::runtime_error{"Unable to copy MITC4 input for execution."}; + } + const auto results = output_directory / + (execution_input.stem().string() + "_results.h5"); const auto comparison = output_directory / "comparison.json"; fesa::FesaApplication application; - EXPECT_EQ(application.Run({input.string(), "--output", results.string()}), 0); + EXPECT_EQ(application.Run({execution_input.string()}), 0); EXPECT_TRUE(std::filesystem::is_regular_file(results)); auto comparison_result = fesa::test::Mitc4ReferenceComparison::Compare( - {case_id, source_element_type, input, csv, results}); + {case_id, source_element_type, execution_input, csv, results}); if (!comparison_result.HasValue()) { std::string diagnostics; for (const auto& diagnostic : comparison_result.GetStatus().Diagnostics()) { @@ -104,7 +109,9 @@ CaseEvidence RunCase(const std::string& case_id, } std::sort(generated.begin(), generated.end()); EXPECT_EQ(generated, - (std::vector{"comparison.json", "results.h5"})); + (std::vector{"comparison.json", + input.filename().string(), + results.filename().string()})); EXPECT_TRUE(std::filesystem::is_directory(reference_directory)); ExpectUnchanged(input, input_before); ExpectUnchanged(csv, csv_before); diff --git a/tests/reference/reference_comparison.cpp b/tests/reference/reference_comparison.cpp index 5823a38..af14ddf 100644 --- a/tests/reference/reference_comparison.cpp +++ b/tests/reference/reference_comparison.cpp @@ -1345,10 +1345,18 @@ bool FiniteReport(const ComparisonReport& report) { Result ReferenceComparison::Compare( const std::filesystem::path& results_hdf5, const std::filesystem::path& legacy_reference_directory) { + return Compare(results_hdf5, legacy_reference_directory, + legacy_reference_directory / kInputName); +} + +Result ReferenceComparison::Compare( + const std::filesystem::path& results_hdf5, + const std::filesystem::path& legacy_reference_directory, + const std::filesystem::path& execution_input_path) { try { RequireExactArtifactInventory(legacy_reference_directory); - const auto input = legacy_reference_directory / kInputName; - Domain domain = ReadApprovedDomain(input); + const auto reference_input = legacy_reference_directory / kInputName; + Domain domain = ReadApprovedDomain(reference_input); const ReferenceTable displacement = ReadReferenceCsv(legacy_reference_directory / kDisplacementName, {"Frame", "Part Instance Name", "Node Label", "U-U1", @@ -1359,7 +1367,8 @@ Result ReferenceComparison::Compare( "RF-RF2", "RF-RF3", "RM-RM1", "RM-RM2", "RM-RM3"}); const SectionReferenceTable section = ReadSectionReferenceCsv(legacy_reference_directory / kSectionName); - HdfProjection hdf = ReadHdfProjection(results_hdf5, input, domain); + HdfProjection hdf = + ReadHdfProjection(results_hdf5, execution_input_path, domain); const auto displacement_rows = OrderedRows(displacement, hdf.nodes); const auto reaction_rows = OrderedRows(reaction, hdf.nodes); const auto section_rows = OrderedSectionRows(section, hdf); diff --git a/tests/reference/reference_comparison.h b/tests/reference/reference_comparison.h index 1a9c339..c9ae21a 100644 --- a/tests/reference/reference_comparison.h +++ b/tests/reference/reference_comparison.h @@ -84,6 +84,15 @@ class ReferenceComparison { static Result Compare( const std::filesystem::path& results_hdf5, const std::filesystem::path& legacy_reference_directory); + + /// @brief Compares results using a separately copied execution input path. + /// @param execution_input_path Input path recorded by the solver in HDF5. + /// @note Reference inputs and CSV files remain in legacy_reference_directory. + static Result Compare( + const std::filesystem::path& results_hdf5, + const std::filesystem::path& legacy_reference_directory, + const std::filesystem::path& execution_input_path); + static Status WriteDeterministicJson( const ComparisonReport& report, const std::filesystem::path& output_json); }; diff --git a/tests/test_execute.py b/tests/test_execute.py index 6eaac37..157f9c3 100644 --- a/tests/test_execute.py +++ b/tests/test_execute.py @@ -6,6 +6,17 @@ import pytest from scripts import execute +def write_implementation_agent_profile( + root, *, model="gpt-5.6-terra", reasoning="xhigh" +): + profile = root / ".codex" / "agents" / "implementation-agent.toml" + profile.parent.mkdir(parents=True) + profile.write_text( + f'model = "{model}"\nmodel_reasoning_effort = "{reasoning}"\n', + encoding="utf-8", + ) + + def test_invoke_codex_uses_utf8_for_unicode_prompt(tmp_path, monkeypatch): phase_dir = tmp_path / "phases" / "unicode-phase" phase_dir.mkdir(parents=True) @@ -20,6 +31,7 @@ def test_invoke_codex_uses_utf8_for_unicode_prompt(tmp_path, monkeypatch): encoding="utf-8", ) (phase_dir / "step0.md").write_text("Euler–Bernoulli 보", encoding="utf-8") + write_implementation_agent_profile(tmp_path) invocation = {} @@ -40,6 +52,44 @@ def test_invoke_codex_uses_utf8_for_unicode_prompt(tmp_path, monkeypatch): assert invocation["command"][sandbox_index + 1] == "workspace-write" +def test_invoke_codex_uses_implementation_agent_command_contract( + tmp_path, monkeypatch +): + phase_dir = tmp_path / "phases" / "agent-phase" + phase_dir.mkdir(parents=True) + (phase_dir / "index.json").write_text( + json.dumps( + { + "project": "FESA Structural Solver", + "phase": "agent-phase", + "steps": [{"step": 0, "name": "agent", "status": "pending"}], + } + ), + encoding="utf-8", + ) + (phase_dir / "step0.md").write_text("agent routing", encoding="utf-8") + write_implementation_agent_profile(tmp_path) + + invocation = {} + + def capture_run(command, **kwargs): + invocation["command"] = command + return subprocess.CompletedProcess(command, 0, stdout="", stderr="") + + monkeypatch.setattr(execute, "ROOT", tmp_path) + monkeypatch.setattr(execute.subprocess, "run", capture_run) + + executor = execute.StepExecutor("agent-phase") + executor._invoke_codex({"step": 0, "name": "agent"}, "") + + model_index = invocation["command"].index("--model") + config_index = invocation["command"].index("--config") + assert invocation["command"][model_index + 1] == "gpt-5.6-terra" + assert invocation["command"][config_index + 1] == 'model_reasoning_effort="xhigh"' + adjacent_arguments = list(zip(invocation["command"], invocation["command"][1:])) + assert ("--disable", "unified_exec") in adjacent_arguments + + def test_invoke_codex_accepts_explicit_danger_full_access_override( tmp_path, monkeypatch ): @@ -56,6 +106,7 @@ def test_invoke_codex_accepts_explicit_danger_full_access_override( encoding="utf-8", ) (phase_dir / "step0.md").write_text("sandbox override", encoding="utf-8") + write_implementation_agent_profile(tmp_path) invocation = {} @@ -74,6 +125,80 @@ def test_invoke_codex_accepts_explicit_danger_full_access_override( assert invocation["command"][sandbox_index + 1] == "danger-full-access" +def test_invoke_codex_timeout_writes_structured_failure(tmp_path, monkeypatch): + phase_dir = tmp_path / "phases" / "timeout-phase" + phase_dir.mkdir(parents=True) + (phase_dir / "index.json").write_text( + json.dumps( + { + "project": "FESA Structural Solver", + "phase": "timeout-phase", + "steps": [{"step": 0, "name": "timeout", "status": "pending"}], + } + ), + encoding="utf-8", + ) + (phase_dir / "step0.md").write_text("timeout", encoding="utf-8") + write_implementation_agent_profile(tmp_path) + + def timeout_run(command, **kwargs): + raise subprocess.TimeoutExpired( + command, kwargs["timeout"], output="partial stdout", stderr="partial stderr" + ) + + monkeypatch.setattr(execute, "ROOT", tmp_path) + monkeypatch.setattr(execute.subprocess, "run", timeout_run) + + executor = execute.StepExecutor("timeout-phase") + output = executor._invoke_codex({"step": 0, "name": "timeout"}, "") + + assert output["exitCode"] == 124 + assert output["stdout"] == "partial stdout" + assert "Codex timed out after 1800 seconds." in output["stderr"] + stored = json.loads((phase_dir / "step0-output.json").read_text(encoding="utf-8")) + assert stored == output + + +def test_execute_single_step_retries_structured_codex_timeout(tmp_path, monkeypatch): + phase_dir = tmp_path / "phases" / "retry-phase" + phase_dir.mkdir(parents=True) + (phase_dir / "index.json").write_text( + json.dumps( + { + "project": "FESA Structural Solver", + "phase": "retry-phase", + "steps": [{"step": 0, "name": "retry", "status": "pending"}], + } + ), + encoding="utf-8", + ) + (phase_dir / "step0.md").write_text("retry", encoding="utf-8") + write_implementation_agent_profile(tmp_path) + attempts = [] + + def timeout_run(command, **kwargs): + attempts.append(command) + raise subprocess.TimeoutExpired(command, kwargs["timeout"]) + + monkeypatch.setattr(execute, "ROOT", tmp_path) + monkeypatch.setattr(execute.subprocess, "run", timeout_run) + + executor = execute.StepExecutor("retry-phase") + executor.MAX_RETRIES = 2 + monkeypatch.setattr(executor, "_commit_step", lambda *args: None) + monkeypatch.setattr(executor, "_update_top_index", lambda *args: None) + + with pytest.raises(SystemExit, match="1"): + executor._execute_single_step( + {"step": 0, "name": "retry", "status": "pending"}, "" + ) + + assert len(attempts) == 2 + index = json.loads((phase_dir / "index.json").read_text(encoding="utf-8")) + assert index["steps"][0]["status"] == "error" + assert "Codex timed out after 1800 seconds." in index["steps"][0]["error_message"] + + def test_invoke_codex_rejects_unknown_sandbox_override(tmp_path, monkeypatch): phase_dir = tmp_path / "phases" / "sandbox-phase" phase_dir.mkdir(parents=True) diff --git a/tests/unit/app/output_paths_test.cpp b/tests/unit/app/output_paths_test.cpp new file mode 100644 index 0000000..f21eeaf --- /dev/null +++ b/tests/unit/app/output_paths_test.cpp @@ -0,0 +1,141 @@ +#include "fesa/app/output_paths.h" + +#include +#include +#include +#include +#include + +#include + +#include "fesa/analysis/analysis.h" + +namespace { + +class TempDirectory { + public: + explicit TempDirectory(const std::string& label) { + const auto tick = + std::chrono::steady_clock::now().time_since_epoch().count(); + path_ = std::filesystem::temp_directory_path() / + ("fesa-output-paths-" + label + "-" + std::to_string(tick)); + std::error_code error; + if (!std::filesystem::create_directory(path_, error) || error) { + throw std::runtime_error{"Unable to create an output-path test fixture."}; + } + } + + TempDirectory(const TempDirectory&) = delete; + TempDirectory& operator=(const TempDirectory&) = delete; + + ~TempDirectory() { + std::error_code ignored; + std::filesystem::remove_all(path_, ignored); + } + + const std::filesystem::path& Path() const noexcept { return path_; } + + private: + std::filesystem::path path_; +}; + +void ExpectFailureCode(const fesa::Status& status, const char* code) { + ASSERT_FALSE(status.IsOk()); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics().front().code, code); +} + +// NSNR-CLI-001 and NSNR-CLI-002: a token containing the literal substring +// must fail before input path validation or output derivation. +TEST(OutputPaths, RejectsFirstTokenContainingOutputSubstring) { + const auto paths = fesa::DeriveSingleInputOutputPaths( + {"abc--outputdef", "model.inp", "--output=ignored"}, + std::filesystem::path{"C:/invocation"}); + + ASSERT_FALSE(paths.HasValue()); + ExpectFailureCode(paths.GetStatus(), "cli-usage"); + EXPECT_EQ(paths.GetStatus().Diagnostics().front().entity_identity, + "argument_index=0;argument=abc--outputdef"); +} + +TEST(OutputPaths, RejectsEveryOutputSubstringVariant) { + for (const char* argument : + {"abc--outputdef", "--output-path", "--output=foo", "--output"}) { + const auto paths = fesa::DeriveSingleInputOutputPaths( + {"model.inp", argument}, std::filesystem::path{"C:/invocation"}); + + ASSERT_FALSE(paths.HasValue()) << argument; + ExpectFailureCode(paths.GetStatus(), "cli-usage"); + } +} + +// NSNR-CLI-004: derivation is lexical and does not inspect the filesystem. +TEST(OutputPaths, DerivesNormalizedSiblingNamesFromRelativeInput) { + const auto paths = fesa::DeriveSingleInputOutputPaths( + {"inputs/../models/Beam.Model.INP"}, + std::filesystem::path{"C:/invocation/current"}); + + ASSERT_TRUE(paths.HasValue()) << paths.GetStatus().Diagnostics().size(); + EXPECT_EQ( + paths.Value().input_path, + std::filesystem::path{"C:/invocation/current/models/Beam.Model.INP"}); + EXPECT_EQ(paths.Value().results_path, + std::filesystem::path{ + "C:/invocation/current/models/Beam.Model_results.h5"}); + EXPECT_EQ(paths.Value().log_path, + std::filesystem::path{ + "C:/invocation/current/models/Beam.Model_log.txt"}); +} + +// NSNR-CLI-005: only the final, case-insensitive input extension is removed. +TEST(OutputPaths, PreservesBasenameCaseAndPrecedingDots) { + const auto paths = fesa::DeriveSingleInputOutputPaths( + {"C:/models/.Beam.v2.iNp"}, std::filesystem::path{"C:/unused"}); + + ASSERT_TRUE(paths.HasValue()); + EXPECT_EQ(paths.Value().results_path, + std::filesystem::path{"C:/models/.Beam.v2_results.h5"}); + EXPECT_EQ(paths.Value().log_path, + std::filesystem::path{"C:/models/.Beam.v2_log.txt"}); +} + +TEST(OutputPaths, RejectsInputWithoutInpFinalExtension) { + const auto paths = fesa::DeriveSingleInputOutputPaths( + {"model.inp.bak"}, std::filesystem::path{"C:/invocation"}); + + ASSERT_FALSE(paths.HasValue()); + ExpectFailureCode(paths.GetStatus(), "cli-usage"); +} + +// NSNR-CLI-006: the lease is exclusive and does not create public outputs. +TEST(OutputPaths, LeaseCollisionPreservesPublicOutputPaths) { + TempDirectory directory{"lease"}; + const fesa::DerivedOutputPaths paths{ + directory.Path() / "model.inp", directory.Path() / "model_results.h5", + directory.Path() / "model_log.txt"}; + + auto first = fesa::AcquireOutputWriteLease(paths); + ASSERT_TRUE(first.HasValue()) << first.GetStatus().Diagnostics().size(); + EXPECT_FALSE(std::filesystem::exists(paths.results_path)); + EXPECT_FALSE(std::filesystem::exists(paths.log_path)); + + const auto second = fesa::AcquireOutputWriteLease(paths); + ASSERT_FALSE(second.HasValue()); + ExpectFailureCode(second.GetStatus(), "output-busy"); + EXPECT_FALSE(std::filesystem::exists(paths.results_path)); + EXPECT_FALSE(std::filesystem::exists(paths.log_path)); +} + +// NSNR-CLI-009: procedure calls receive all derived output identities. +TEST(OutputPaths, AnalysisRequestCarriesInputResultAndLogPaths) { + const fesa::AnalysisRequest request{ + std::filesystem::path{"C:/models/model.inp"}, + std::filesystem::path{"C:/models/model_results.h5"}, + std::filesystem::path{"C:/models/model_log.txt"}}; + + EXPECT_EQ(request.input_path, "C:/models/model.inp"); + EXPECT_EQ(request.output_path, "C:/models/model_results.h5"); + EXPECT_EQ(request.log_path, "C:/models/model_log.txt"); +} + +} // namespace From e7c6932d88879d18d940af7befe3a8647f200c59 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 10:42:14 +0900 Subject: [PATCH 02/32] chore(nonlinear-static-newton-raphson): step 0 output --- .../index.json | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 phases/nonlinear-static-newton-raphson/index.json diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json new file mode 100644 index 0000000..41abc68 --- /dev/null +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -0,0 +1,75 @@ +{ + "project": "FESA Structural Solver", + "phase": "nonlinear-static-newton-raphson", + "steps": [ + { + "step": 0, + "name": "cli-output-lease-and-derived-names", + "status": "completed", + "summary": "Derived lexical sibling result/log paths, removed --output, and added an exclusive output lease with regression coverage.", + "started_at": "2026-08-24T01:41:01+0900", + "completed_at": "2026-08-24T10:42:14+0900" + }, + { + "step": 1, + "name": "nonlinear-static-domain-contract", + "status": "pending" + }, + { + "step": 2, + "name": "finite-rotation-state", + "status": "pending" + }, + { + "step": 3, + "name": "nonlinear-mitc4-kinematics-and-recovery", + "status": "pending" + }, + { + "step": 4, + "name": "nonlinear-mitc4-residual-and-tangent", + "status": "pending" + }, + { + "step": 5, + "name": "load-boundary-path-and-convergence-gates", + "status": "pending" + }, + { + "step": 6, + "name": "backend-neutral-tangent-solver", + "status": "pending" + }, + { + "step": 7, + "name": "newton-iteration-log-writer", + "status": "pending" + }, + { + "step": 8, + "name": "nonlinear-state-commit-rollback", + "status": "pending" + }, + { + "step": 9, + "name": "nonlinear-hdf5-schema-v1-writer", + "status": "pending" + }, + { + "step": 10, + "name": "prepared-analysis-flow-and-full-procedure", + "status": "pending" + }, + { + "step": 11, + "name": "reference-comparison-gate", + "status": "pending" + }, + { + "step": 12, + "name": "execution-closure-and-evidence-docs", + "status": "pending" + } + ], + "created_at": "2026-08-24T01:41:01+0900" +} \ No newline at end of file From c00fb79b8fd92cc0708eb11dc34933cfda2fb3dc Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:17:17 +0900 Subject: [PATCH 03/32] feat(nonlinear-static-newton-raphson): step 1 - nonlinear-static-domain-contract --- .gitignore | 1 + .harness/config.example.json | 19 +- CMakePresets.json | 30 +++ .../coordination.md | 103 +++++---- .../corrections.md | 195 +++++++++++++++++- .../implementation-plan.md | 34 ++- include/fesa/model/domain.h | 8 + include/fesa/model/model_types.h | 51 ++++- .../nonlinear-static-newton-raphson/step0.md | 20 +- .../nonlinear-static-newton-raphson/step1.md | 20 +- .../nonlinear-static-newton-raphson/step10.md | 20 +- .../nonlinear-static-newton-raphson/step11.md | 20 +- .../nonlinear-static-newton-raphson/step12.md | 16 +- .../nonlinear-static-newton-raphson/step2.md | 20 +- .../nonlinear-static-newton-raphson/step3.md | 20 +- .../nonlinear-static-newton-raphson/step4.md | 20 +- .../nonlinear-static-newton-raphson/step5.md | 20 +- .../nonlinear-static-newton-raphson/step6.md | 20 +- .../nonlinear-static-newton-raphson/step7.md | 20 +- .../nonlinear-static-newton-raphson/step8.md | 20 +- .../nonlinear-static-newton-raphson/step9.md | 20 +- src/fesa/io/abaqus/domain_mapping_context.cpp | 140 ++++++++++--- src/fesa/model/domain.cpp | 10 + tests/test_harness_preset_contract.py | 80 +++++++ tests/unit/io/abaqus/domain_mapper_test.cpp | 146 ++++++++++++- .../abaqus/domain_mapping_components_test.cpp | 3 + tests/unit/model/domain_test.cpp | 5 + tests/unit/model/model_types_test.cpp | 8 +- 28 files changed, 814 insertions(+), 275 deletions(-) create mode 100644 CMakePresets.json create mode 100644 tests/test_harness_preset_contract.py diff --git a/.gitignore b/.gitignore index 03c4805..960854a 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ __pycache__/ # local Harness configuration and build outputs .harness/config.json .harness/build/ +.harness/build-ninja-msvc-debug/ .harness/doxygen/ # phase execution outputs diff --git a/.harness/config.example.json b/.harness/config.example.json index 51d1846..b8853ea 100644 --- a/.harness/config.example.json +++ b/.harness/config.example.json @@ -1,16 +1,11 @@ { "version": 1, - "projectType": "auto", - "tdd": { - "testRoots": [ - "tests", - "test" - ], - "testPatterns": [ - "{stem}_test.cpp", - "{stem}_tests.cpp", - "test_{stem}.cpp", - "{stem}.test.cpp" - ] + "projectType": "cmake", + "cmake": { + "sourceDir": ".", + "binaryDir": ".harness/build-ninja-msvc-debug", + "configurePreset": "windows-msvc-ninja-debug", + "buildPreset": "windows-msvc-ninja-debug", + "testPreset": "windows-msvc-ninja-debug" } } diff --git a/CMakePresets.json b/CMakePresets.json new file mode 100644 index 0000000..3e9acbc --- /dev/null +++ b/CMakePresets.json @@ -0,0 +1,30 @@ +{ + "version": 3, + "configurePresets": [ + { + "name": "windows-msvc-ninja-debug", + "displayName": "Windows MSVC x64 Debug (Ninja)", + "generator": "Ninja", + "binaryDir": "${sourceDir}/.harness/build-ninja-msvc-debug", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "FESA_GTEST_SOURCE_DIR": "$env{FESA_GTEST_SOURCE_DIR}", + "MKL_DIR": "$env{MKL_DIR}", + "TBB_DIR": "$env{TBB_DIR}", + "HDF5_DIR": "$env{HDF5_DIR}" + } + } + ], + "buildPresets": [ + { + "name": "windows-msvc-ninja-debug", + "configurePreset": "windows-msvc-ninja-debug" + } + ], + "testPresets": [ + { + "name": "windows-msvc-ninja-debug", + "configurePreset": "windows-msvc-ninja-debug" + } + ] +} diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index f5b52a4..1d4a6b6 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -6,13 +6,13 @@ - workflow_state: `needs-implementation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-24` (REWORK-004 corrected; no-push Harness rerun authorized) +- last_updated: `2026-08-24` (REWORK-006 passed; Step 1 no-push Harness rerun authorized) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Stage 6 no-push Harness/Implementation rerun is authorized for Executor-selected Step 0 and subsequent approved phase progression under the corrected `codex exec --disable unified_exec` runner envelope. -- constraints: 승인된 Stage 1-5 hashes, physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel과 Stage 6 materialization evidence를 보존한다. The authorized rerun envelope is Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, child launch PATH filtering of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, `workspace-write`, implementation-agent `gpt-5.6-terra`/`xhigh`, hooks retained, no-push, no `danger-full-access`, and runner-retained `--disable unified_exec`. Do not edit feature contracts/reference artifacts/tolerance policies, run Abaqus/Nastran/reference solvers, or advance Physics/Release until `implementation-report.md`, `build-test.md`, `reference-comparison.md` and passing implementation evidence exist. +- current_goal: REWORK-006 passed and Step 1 is reset to `pending`; authorize no-push Harness rerun from Step 1 under the approved Ninja/MSVC workspace-write envelope. +- constraints: 승인된 Stage 1-5 hashes, physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel과 Stage 6 materialization evidence를 보존한다. Step 0 commits `fc16ef6` and `e7c6932`, Step 1 uncommitted implementation changes, phase block evidence and no-reference-artifact-change evidence must be preserved. The approved continuation envelope is MSVC/x64/Debug with Ninja generator, full CTest, `workspace-write`, Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, child launch PATH filtering of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, implementation-agent `gpt-5.6-terra`/`xhigh`, hooks retained, no-push, no `danger-full-access`, and runner-retained `--disable unified_exec`. Do not edit feature contracts/reference artifacts/tolerance policies, run Abaqus/Nastran/reference solvers, clean/delete build artifacts, or advance Step 2/Physics/Release until `implementation-report.md`, `build-test.md`, `reference-comparison.md` and passing implementation evidence exist. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -24,7 +24,7 @@ | 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | strong/weak form, kinematics, tangent/residual, integration, state/recovery가 구현 가능한 계약이며 O-ROT/O-MAP/O-DRILL/O-MOM/O-BC가 승인 scope 안에서 해소됨 | Rework attempt 2 owner/Coordinator pass와 사용자 명시 승인: reaction force/generalized moment/spatial moment symbols와 dimensions가 rotation matrix `R_I`와 분리됨; immutable fixed-global source, `rho_M <= 1e-12` admissibility, exact projected physical-work covector, `DP`/`DJ_l`/map-Hessian residual-tangent identity가 §§4.4/5/11.2–11.3/13.1/13.4/17에서 일치함; 18 sections와 7 closures 보존; SHA-256 `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`. | 없음 | 2 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | 두 문서가 함께 `pass-for-io-definition`이며 수치 안정성과 exact reference contract가 준비됨 | Corrected owner return, Coordinator audit pass and user explicit approval: status `pass-for-io-definition`; approved formulation hash matched; shellNL/shell artifacts inspected read-only with row counts `49/49/288`, duplicate required wide keys 0 and nonfinite required values 0; stress CSVs are optional read-only inspection/order evidence only; `RM3` excluded; required external comparison uses displacement, reaction force and physical spatial `RM1/RM2`; exact prechecks and `docs/TOLERANCE.md` policy retained. Current hashes: numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`, reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`. | 없음 | 2 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | Abaqus subset, semantic mapping, HDF5 schema, diagnostics, CSV projection이 승인됨 | Bounded rework owner status `ready-for-coordinator-review`, SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`; Coordinator audit passed and user explicitly approved the same hash. REWORK-002 defects are corrected: every argv token containing literal `--output` fails pre-input/pre-log/pre-output with one `cli-usage` diagnostic; `nsnr-log-v1` uses UTF-8 no BOM/LF/TAB fixed fields with four-channel gates, typed thresholds, branch identity, early-failure `not-evaluated(reason)`, round-trip numerics and escaping; log open/write/flush/close is fail-closed with zero-byte non-Newton success logs; exact `VARIABLE=PRESELECT` output requests are ignored-with-warning; lexical path/stem derivation, single-writer/candidate collision rules, HDF5 schema v1, reference projection, stress/RM3 exclusions and `docs/TOLERANCE.md` policy are preserved. | 없음 | 2 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md` | 상세 인터뷰와 계획 승인 후 TDD, MSVC/x64/Debug CMake/CTest, blocking reference comparison이 통과함 | REWORK-004 Correction Agent returned `corrected-for-implementation-rerun`; `scripts/execute.py` now invokes `codex exec --disable unified_exec --json ...`, `tests/test_execute.py` asserts adjacent `("--disable", "unified_exec")` while preserving `gpt-5.6-terra`/`xhigh`, and `corrections.md` SHA-256 is `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`. Owner/root evidence: RED targeted missing-pair assertion exit 1, GREEN targeted 1 passed, focused `tests/test_execute.py` 10/10, full pytest 23 passed/1 pre-existing `xhigh` vs `extra high`, MSVC Debug build exit 0, discovery 214, full CTest 214/214. | Stage 6 implementation evidence docs still absent; await no-push Harness rerun | 10 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md` | 상세 인터뷰와 계획 승인 후 TDD, MSVC/x64/Debug CMake/CTest, blocking reference comparison이 통과함 | REWORK-006 Correction returned `corrected-for-implementation-rerun`; `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. Evidence: nested `workspace-write` launched from VsDevCmd x64 plus dependency env; Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full CTest all exit 0; 228 discovered/228 passed; Stop-hook `codex exec` exit 0; focused contract test 1/1; full Python 24 passed plus one pre-existing `xhigh`/`extra high` mismatch; reference hashes unchanged; top phase and Step 1 reset to `pending` only after pass, Step 2 remains pending. | Stage 6 implementation evidence docs still absent; no-push Harness rerun from Step 1 is authorized | 14 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | @@ -33,55 +33,46 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `stage-6-no-push-harness-implementation-rerun` +- current_dispatch: `stage-6-step1-no-push-harness-rerun` - target_sub_agent: `implementation-agent` via Harness Executor (`python scripts/execute.py nonlinear-static-newton-raphson`; root launch required) - required_inputs: - - User explicit execution request on `2026-08-24`: `Harness/Implementation를 실행해주세요.` - - Attempt 1 failure evidence: no-push Harness command `python scripts/execute.py nonlinear-static-newton-raphson`; `codex exec --json --sandbox workspace-write ...` timed out at `1800.7s`; `_invoke_codex` raised uncaught `subprocess.TimeoutExpired`; no Step 0 source/test edits, no `step0-output.json`, no `MAX_RETRIES` handling. - - Bounded Harness repair evidence: Implementation Agent changed only `scripts/execute.py` and `tests/test_execute.py`; TDD RED 3 expected failures, GREEN 3 passed; focused `tests/test_execute.py` 10/10 passed; full pytest 23 passed/1 pre-existing HEAD contract failure `xhigh` actual vs `extra high` expected. - - Repair behavior now required: Codex timeout returns structured exit `124` and reaches `MAX_RETRIES`; runner reads `.codex/agents/implementation-agent.toml` and passes `gpt-5.6-terra` plus `xhigh` settings to `codex exec`. - - Root independent review evidence: no new defect found; focused `tests/test_execute.py` 10/10 reproduced; full suite reproduced the same single pre-existing `xhigh` vs `extra high` mismatch. - - Attempt 2 failure evidence: repaired Executor wrote `phases/nonlinear-static-newton-raphson/step0-output.json` with `exitCode` 124 and stderr `Codex timed out after 1800 seconds.`; stdout shows the Implementation Agent completed a turn but every nested command execution remained `status=in_progress`. - - Runtime blocker evidence: nested commands hung for skill file reads, `Get-Date`, `cmd.exe /d /c echo test`, and `exit 0`; root classifies the cause as nested Codex Windows shell tool execution hang, not model delay, build, source, sandbox/auth, or the repaired Executor timeout/no-retry path. - - Active process evidence from root: Executor auto-started another internal retry at `2026-08-24T02:58:35+09:00` under `python execute.py` PID 13820 / `codex` PID 7704; root terminated those unauthorized retry PIDs and verified none remain. - - Root decision after blocked-no-auto-retry: authorize one bounded Correction Agent diagnostic/rework cycle because the repeated implementation failure is infrastructure/runtime, not physics/source/build. - - Correction Agent return: status `blocked`, output `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `C9F93AC99225725C88BB7F0BABC8F7D75D3E05082070090328203DB3776BEFE6`, no runner/test edits from correction, no safe documented CLI flag workaround proven. - - User/root runtime update evidence: standalone Codex CLI updated `0.147.0 -> 0.149.1` under `CODEX_HOME=C:\Users\baram\.codex`; `codex doctor --json` reported current/consistent installation. - - User/root bounded smoke evidence: baseline still fails through inaccessible WindowsApps `pwsh`, direct `codex sandbox` elevated/unelevated `cmd echo` exits 0, and nested smoke passes only when launch env filters `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` plus `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, aligns `CODEX_HOME`, retains `workspace-write` and hooks, uses implementation-agent `gpt-5.6-terra`/`xhigh`, and passes `--disable unified_exec`; output was exactly `CODEX_SHELL_SMOKE_OK\r\n`. - - REWORK-004 Correction Agent return: status `corrected-for-implementation-rerun`; changed only `scripts/execute.py`, `tests/test_execute.py`, `docs/nonlinear-static-newton-raphson/corrections.md`; no Harness phase, C++ source, CMake, reference solver, commit or push. - - Coordinator audit: current `scripts/execute.py` lines 300-315 pass exact adjacent args `--disable`, `unified_exec` immediately after `codex exec`; current test `test_invoke_codex_uses_implementation_agent_command_contract` asserts the pair while preserving `gpt-5.6-terra` and `model_reasoning_effort="xhigh"`. - - `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.agents/skills/harness/SKILL.md`, `.codex/hooks.json` - - `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `BF4FC7A5CFDEEC19D62A36E1DF7CC34C0B9F614FA0A0FD8D0A321ADC73E69580` - - `phases/index.json` SHA-256 `F8BE89D579C303410BD1D2CD17AF33FCAD72BF68D9E10C3F644A39D1AA7331FB` - - `phases/nonlinear-static-newton-raphson/index.json` SHA-256 `439B67E1DED442D828EB5C31DAB35D28F32DBA6F66537512CAFFB5616956C137` - - Executor-selected initial current Step: `phases/nonlinear-static-newton-raphson/step0.md`, Step 0 `cli-output-lease-and-derived-names`, status `pending` - - Approved Stage 1-5 hashes: requirements `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`; research `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; formulation `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`; numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`; reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`; io `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`. - - Preserved materialization evidence: exactly one pending phase entry, 13/13 pending steps, Step 0 remains pending, no implementation evidence docs yet. + - REWORK-006 Correction return: status `corrected-for-implementation-rerun`, `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. + - User explicitly approved USER-DECISION-002 option A / DECISION-039: Ninja/MSVC is the accepted Stage 6 validation contract for continuation. + - Current isolated worktree: `C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson`; no push. + - Step 0 evidence: completed and committed as feature commit `fc16ef6` plus metadata commit `e7c6932`. + - Current Step 1 state: `pending` with historical `started_at`; existing uncommitted Domain/Abaqus mapping production and C++ test changes are preserved; Step 2..12 remain pending. + - Current hashes: `phases/index.json` `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`; phase index `D3F30298EB728F4DECA948827900CF35989F47F009872B43DC4BD997B30C3950`. + - Correction files/evidence: tracked `CMakePresets.json` SHA-256 `900EEE9EC564CEA09F2A73B8AC59865A7233E9480FAACD3CFEF60F2ABCDFFD43`; ignored `.harness/config.json` byte-identical to `.harness/config.example.json` SHA-256 `D07429860D472AE37D02D6CD638900FA46175085AF47F179E98601227F8D3C43`; contract test `tests/test_harness_preset_contract.py` SHA-256 `94433B65E155C90837724810A1E773BB990779AFB217268E557AE4E7662B8396`. + - Correction validation: nested `workspace-write`/VsDevCmd x64/dependency env; Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full all exit 0; 228 discovered/228 passed; Stop-hook `codex exec` exit 0; focused contract test 1/1; full Python 24 passed plus pre-existing `xhigh`/`extra high` mismatch 1. + - Root independent review: no blocking finding; read AGENTS/ARCHITECTURE/ADR; focused contract test fresh pass 1/1; `cmake --list-presets` exposes only approved preset; `cmake --preset ... -N` exit 0; `git diff --check` pass; local config/build ignored as intended; `git diff -- reference` clean; no old VS/`.harness/build` commands remain in `implementation-plan.md` or `step0.md`..`step12.md`. + - Approved Stage 1-5 hashes remain unchanged: requirements `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`; research `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; formulation `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`; numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`; reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`; io `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`. - expected_outputs: - - Executor-managed no-push phase execution from Step 0, with branch/pending selection/retry/timestamps/commits/advancement owned only by `scripts/execute.py`. - - Each Implementation Agent session performs only its Executor-selected current Step `RED -> observed failure -> minimal GREEN -> VERIFY`, updates only that Step status payload, and stops. - - Final Stage 6 evidence remains `docs/nonlinear-static-newton-raphson/implementation-report.md`, `docs/nonlinear-static-newton-raphson/build-test.md`, and `docs/nonlinear-static-newton-raphson/reference-comparison.md` after the approved phase reaches its final verification Step. -- acceptance_gate: Root is explicitly authorized to run no-push `python scripts/execute.py nonlinear-static-newton-raphson` in the isolated worktree using Codex `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, a child PATH filtered of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, and no `danger-full-access`. Passing Stage 6 still requires successful Implementation phase execution plus Coordinator audit of `implementation-report.md`, `build-test.md`, `reference-comparison.md`, full MSVC x64 Debug build/CTest, blocking reference comparison and no forbidden reference/upstream/tolerance mutation. -- stop_condition: If nested shell execution hangs or cannot complete under the exact corrected runner and approved launch envelope, stop as `blocked` with the new evidence; do not broaden to `danger-full-access`, do not run Abaqus/Nastran/reference solvers, do not generate/modify reference CSVs, and do not advance Physics/Release. -- missing_evidence: No-push Harness rerun result and Stage 6 implementation evidence docs remain absent. + - Executor-managed no-push Harness rerun beginning at Step 1. Executor owns branch state, pending selection, retries, timestamps, commits and advancement. + - Implementation Agent owns only Executor-selected Step 1 `RED -> observed failure -> minimal GREEN -> VERIFY`, then Step 1 status/summary or blocker payload. + - Final Stage 6 evidence remains `implementation-report.md`, `build-test.md`, and `reference-comparison.md` only after the approved phase reaches final verification. +- acceptance_gate: Root is authorized to rerun no-push `python scripts/execute.py nonlinear-static-newton-raphson` from the isolated worktree, launched from VsDevCmd x64 with `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, `HDF5_DIR`, Codex `0.149.1`, aligned `CODEX_HOME`, filtered WindowsApps PATH, `workspace-write`, hooks retained, `gpt-5.6-terra`/`xhigh`, `--disable unified_exec`, Ninja/MSVC presets, and no `danger-full-access`. Passing Stage 6 still requires successful Harness execution, MSVC/x64/Debug full CTest, required reference comparison, and Coordinator audit of implementation evidence docs. +- stop_condition: Stop and report if Step 1 rerun blocks/errors, if the old Visual Studio/FileTracker path recurs, if the nested Codex shell hang recurs, if Ninja/MSVC validation fails, or if any unauthorized `danger-full-access`, push, reference solver/artifact mutation or Step 2 advance is attempted before Step 1 completion. +- missing_evidence: no-push Harness Step 1 rerun result and Stage 6 implementation evidence docs. ### Latest Sub-Agent Return - target_sub_agent: `correction-agent` - output_paths: - `docs/nonlinear-static-newton-raphson/corrections.md` -- status: `corrected-for-implementation-rerun` (owner); Coordinator decision `passed-for-implementation-rerun` +- status: `corrected-for-implementation-rerun` (owner); Coordinator decision `passed` - evidence_summary: - - `corrections.md` SHA-256 is `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`. - - `scripts/execute.py` SHA-256 is `E36A78E5C0AE7E91361B1AB6B995D2E8CF51569C0E0804D57F54711AFEFFB806`; `tests/test_execute.py` SHA-256 is `1E368382ABA21F5FBAC344E15E1E600B6BDAF4C4528431E4D1A757AA09D54CDE`. - - Runner command contract now starts `codex exec --disable unified_exec --json ...` and still passes `--model gpt-5.6-terra`, `--config model_reasoning_effort="xhigh"`, `--sandbox workspace-write`, `--dangerously-bypass-hook-trust`, `--cd `. - - TDD evidence: targeted RED failed on missing adjacent pair with exit 1; targeted GREEN passed; focused `tests/test_execute.py` 10/10; full pytest remains 23 passed/1 pre-existing `xhigh` vs `extra high`; MSVC Debug build exit 0; CTest discovery 214; full CTest 214/214. - - Correction did not run Harness phase, edit C++/CMake/reference artifacts, run reference solvers, commit or push. + - `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. + - Correction expressed DECISION-039 through tracked `CMakePresets.json`, ignored `.harness/config.json`, updated `.harness/config.example.json`, `.gitignore`, `implementation-plan.md`, and `step0.md`..`step12.md`, and added `tests/test_harness_preset_contract.py`; no Harness Python production change was required. + - Nested `workspace-write` with VsDevCmd x64 and dependency environment passed Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full CTest, 228 discovered/228 passed, and Stop-hook `codex exec` exit 0. + - Focused contract test passed 1/1; full Python was 24 passed plus one pre-existing `xhigh`/`extra high` mismatch. + - Top phase and Step 1 were reset to `pending` only after blocker-clear evidence; Step 2 remains pending. + - Reference artifact hashes match the approved inventory and `git diff -- reference` is clean. + - Correction did not run Harness phase, Step 2, reference solvers, cleanup, commit, push, or `danger-full-access`. - blockers: - - 없음 for runner-option correction; Stage 6 implementation evidence is still pending. -- self_audit_findings: Coordinator verified the correction report hash, audited current runner args and regression assertion, checked phase index pending statuses, did not run phase/build/tests/reference solvers, and updated only this isolated worktree `coordination.md`. -- return_contract_check: output path, corrected status, evidence summary, blockers and changed-file assertion are present. -- acceptance_evidence_check: REWORK-004 is closed; Stage 6 is eligible for no-push Harness rerun, but no implementation pass evidence exists yet. + - 없음 for REWORK-006; Stage 6 implementation evidence docs remain absent. +- self_audit_findings: Coordinator accepted the Correction return, independently checked hashes, preset/config content, phase pending state, no reference/upstream contract diff, root independent review, and did not run Harness/build/tests/reference solvers. +- return_contract_check: output path, corrected status, evidence summary, blockers, no-change assertion and cleanup evidence are present. +- acceptance_evidence_check: REWORK-006 is closed; no-push Harness rerun from Step 1 is eligible under the approved envelope. ### Compact Migration Evidence @@ -192,10 +183,14 @@ | 2026-08-24 | Correction Agent return and Coordinator audit | `blocked` | Correction Agent returned `blocked` and created only `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `C9F93AC99225725C88BB7F0BABC8F7D75D3E05082070090328203DB3776BEFE6`. Baseline smoke reproduced no nested shell completion; `--disable code_mode_host` failed closed; `--enable unified_exec` hung; combined flags failed closed. Root verified no nonlinear Harness/Codex processes remain, all 13 steps pending, Python 23 passed/1 pre-existing failure, MSVC build exit 0, discovery 214 and CTest 214/214. | `blocked` | No further Harness retry until external Codex runtime update/repair plus bounded shell smoke success | | 2026-08-24 | Codex `0.149.1` smoke pass and runner preflight | `needs-rework` | User/root authorized Codex CLI update, bounded smoke and Harness rerun. Smoke passed only with aligned `CODEX_HOME`, filtered WindowsApps PATH entries and `--disable unified_exec`; current `scripts/execute.py` does not pass that flag to nested `codex exec`, while local `codex exec --help` confirms `--disable ` support. | `needs-correction` | Dispatch bounded runner-option correction before any no-push Harness phase rerun | | 2026-08-24 | REWORK-004 Correction return and Coordinator audit | `passed` | Correction returned `corrected-for-implementation-rerun`; runner now passes adjacent `--disable`, `unified_exec` after `codex exec`; regression test asserts the command contract; `corrections.md` SHA-256 `82572437689B41323B6533C2361F2F12BF07B5ED305825AA84C56AEEDC729930`; focused tests 10/10, full pytest only known pre-existing mismatch, MSVC build and 214/214 CTest pass per owner/root evidence. | `needs-implementation` | Root is authorized to run no-push `python scripts/execute.py nonlinear-static-newton-raphson` with Codex `0.149.1`, aligned `CODEX_HOME`, filtered child PATH, `workspace-write`, hooks retained and no `danger-full-access` | +| 2026-08-24 | Harness rerun Step 1 safe block | `needs-rework` | No-push Harness rerun under the approved Codex `0.149.1` envelope exited 2 safely, not by nested shell hang. Step 0 completed and committed (`fc16ef6`, metadata `e7c6932`). Step 1 is `blocked` because Visual Studio 18 CMake configure hit MSBuild `FileTracker` `E_ACCESSDENIED` in `workspace-write`; root reports clean Ninja/MSVC build and all 228 CTest cases passed. Top phase hash `E5AB831A326AA361B1C3491DA2DA09AC2CA8D66D9A3BCEE8E771D78C6352EC45`, phase index hash `5CD3B4E2BD50BF03A105CAC645F7F48F5A1360414E085B08C9D75BF6D46317A8`, Step 1 output hash `B04B25E8C2D1E0CD54E712B086623E1741FC563A70F0582FD6DC813F660CD6D7`. | `needs-correction` | Root profile dispatch to bounded `correction-agent` for FileTracker diagnosis under `workspace-write`; `danger-full-access` requires explicit new user approval and is not authorized | +| 2026-08-24 | REWORK-005 FileTracker Correction return and Coordinator audit | `blocked` | Correction returned `blocked` / `needs-user-decision`, changed only `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `BCA9DEE6F6F262A70FB5C7A49B2BF06CA3FF8BC6C6838FB20A8B48071CF9D420`. VS18/MSBuild `18.8.2` fails in FESA and gtest at `FileTracker..cctor()` -> `GetLongFilePath` with `E_ACCESSDENIED`; inherited `TEMP`/`TMP` is outside workspace; `/p:TrackFileAccess=false` and `:workspace` echo were not proven; exact process trees were cleaned; Ninja/MSVC 27/27 focused and 228/228 full evidence is preserved but not an approved substitute. | `needs-user-decision` | User must choose A Ninja/MSVC evidence substitution, B isolated `danger-full-access` fallback, or C stop pending external Codex sandbox Temp/FileTracker repair | +| 2026-08-24 | USER-DECISION-002 option A and REWORK-006 dispatch | `in-progress` | User explicitly approved option A: Ninja/MSVC is the accepted Stage 6 validation contract. Coordinator/root audit found `.harness/config.json` ignored/absent, CMake presets absent, and adapter preset triplets sufficient to route Stop hook to Ninja without Harness Python production changes. Root dispatched `correction-agent` for preset/config plumbing, preset-contract RED test, planning/phase command rewrite, blocker-clear evidence, and phase reset only after evidence. | `needs-correction` | Await REWORK-006 Correction return; no Harness rerun, Step 2, `danger-full-access`, push, reference solver or reference artifact change | +| 2026-08-24 | REWORK-006 Correction return and Coordinator audit | `passed` | Correction returned `corrected-for-implementation-rerun`; `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`; Ninja/MSVC Debug configure/build/discovery/full CTest passed with 228/228, Stop-hook `codex exec` exit 0, focused contract test 1/1, full Python 24 passed plus pre-existing `xhigh`/`extra high`; reference hashes unchanged; top phase and Step 1 reset to `pending` only after evidence; root independent review found no blocking issue. | `needs-implementation` | Root is authorized to rerun no-push `python scripts/execute.py nonlinear-static-newton-raphson` from Step 1 under approved Ninja/MSVC workspace-write envelope | -- current_dispatch: `stage-6-no-push-harness-implementation-rerun` +- current_dispatch: `stage-6-step1-no-push-harness-rerun` - current_workflow_state: `needs-implementation` -- next_gate_requires_user_approval: `false` (user/root already authorized Codex update, bounded smoke and Harness rerun) +- next_gate_requires_user_approval: `false` for Step 1 no-push Harness rerun; `true` before any `danger-full-access`, Visual Studio fallback, reference solver, push, or manual Step 2 advancement ## 5. Risk, Blocker, and User-Decision Register @@ -208,6 +203,9 @@ | BLOCKER-002 | harness-runtime | Nested Codex Windows shell tool execution hung inside Implementation/Correction Codex sessions. It is mitigated for the authorized rerun by Codex CLI `0.149.1`, aligned `CODEX_HOME`, filtered WindowsApps PATH entries, smoke success with exact `CODEX_SHELL_SMOKE_OK` output, and REWORK-004 runner retention of `--disable unified_exec`. Reopen only if the same hang recurs under the exact approved envelope. | external Codex runtime / user-root decision | mitigated | | BLOCKER-003 | dispatch-runtime | This Coordinator runtime exposed no callable `spawn_agent` tool, but root successfully performed the required Correction Agent profile dispatch. | coordinator/root tooling | closed | | REWORK-004 | harness | Corrected: `scripts/execute.py` now passes adjacent `--disable`, `unified_exec` immediately after `codex exec`; `tests/test_execute.py` asserts this while preserving terra/xhigh routing; `corrections.md` records RED/GREEN/VERIFY and no Harness phase/source C++/CMake/reference edits. | `correction-agent` | closed | +| REWORK-005 | harness | FileTracker Correction returned `blocked`: VS18/MSBuild `FileTracker` `E_ACCESSDENIED` is classified as environment-owned sandbox/MSBuild interaction; no safe Visual Studio `workspace-write` workaround was proven. User resolved the route by approving option A Ninja/MSVC validation. | `correction-agent` | closed-by-USER-DECISION-002A | +| REWORK-006 | harness | Corrected: approved option A is expressed through tracked `CMakePresets.json`, ignored `.harness/config.json`, preset-based implementation-plan/step verification commands, RED-first contract test, workspace-write Ninja/MSVC blocker-clear evidence, and blocked-to-pending phase reset only after pass. | `correction-agent` | closed | +| USER-DECISION-002 | user decision | User explicitly chose option A: approve Ninja/MSVC evidence contract for Stage 6 continuation. Option B `danger-full-access` and option C external sandbox wait are not selected. | user via Coordinator | closed | | RISK-001 | architecture | 기존 `LinearStaticAnalysis` private lifecycle은 단일 factorization/substitution과 final frame만 소유하므로 nonlinear increment/iteration/state commit을 삽입하면 ADR 경계를 위반한다. | `coordinator-agent` routing | open | | RISK-002 | scope | `Newton–Raphson`은 solution algorithm이고 geometric/material/contact nonlinearity 범위를 단독으로 결정하지 않는다. | `requirement-agent` | mitigated by DECISION-001 | | RISK-003 | contract | 현재 `Element`는 displacement-dependent residual/consistent tangent/trial state 계약이 없고 `AnalysisState`는 nonlinear history를 소유하지 않는다. | downstream formulation/architecture gates | open | @@ -251,15 +249,16 @@ | DECISION-036 | user approval | User explicitly approved the Stage 6 Implementation Planning 13-Step draft on `2026-08-24` and authorized creation of `implementation-plan.md` plus pending Harness phase files. | user via Coordinator | closed | | DECISION-037 | user approval | User explicitly requested no-push Harness/Implementation execution for materialized phase `nonlinear-static-newton-raphson` on `2026-08-24`. | user via Coordinator | closed | | DECISION-038 | user/root runtime approval | User/root authorized Codex CLI update, shell smoke and no-push Harness rerun. Accepted runtime envelope is Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, launch-env-only WindowsApps PATH filtering, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, no `danger-full-access`, and `--disable unified_exec`. | user/root via Coordinator | closed | +| DECISION-039 | user decision | Stage 6 FileTracker blocker route: user approved option A, making Ninja/MSVC x64 Debug with full CTest the accepted validation contract for continuation. `danger-full-access`, Visual Studio fallback, reference solver activity, push and Step 2 advancement remain unauthorized. | user via Coordinator | closed | | USER-DECISION-001 | user decision | Stage 6 Implementation Planning draft Steps `0..12` were approved on `2026-08-24`; materialization is authorized for `implementation-planning-agent`. | user via Coordinator | closed | ## 6. Rework-Loop Control and Stop Condition -- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 2 +- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 2; `harness-msbuild-filetracker-eaccessdenied-workspace-write`: 2 - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. -- correction_cycle_authorization: Root-authorized REWORK-004 correction returned `corrected-for-implementation-rerun`; no further correction is active. If the same nested shell hang recurs under the exact corrected runner and approved launch envelope, stop as `blocked` rather than broadening privileges. +- correction_cycle_authorization: REWORK-006 is closed and no correction dispatch is active. Step 1 no-push Harness rerun is authorized under the approved Ninja/MSVC workspace-write envelope; no Step 2 advancement, push, `danger-full-access`, Visual Studio fallback, or reference solver/artifact action is authorized outside Executor-owned progression. ## 7. Final Workflow Closure @@ -269,11 +268,11 @@ ## 8. No-Change Assertion -- source_code: production solver source 변경 없음; earlier Harness repair and REWORK-004 owners modified only `scripts/execute.py` within runner scope. -- tests: production C++ tests 변경 없음; earlier Harness repair and REWORK-004 owners modified only `tests/test_execute.py` within Harness Python test scope. -- CMake: 변경 없음 +- source_code: Step 1 Implementation Agent left uncommitted production changes in `include/fesa/model/domain.h`, `include/fesa/model/model_types.h`, `src/fesa/io/abaqus/domain_mapping_context.cpp`, and `src/fesa/model/domain.cpp`; Coordinator did not edit source code. +- tests: Step 1 Implementation Agent left uncommitted C++ test changes in `tests/unit/io/abaqus/domain_mapper_test.cpp`, `tests/unit/io/abaqus/domain_mapping_components_test.cpp`, `tests/unit/model/domain_test.cpp`, and `tests/unit/model/model_types_test.cpp`; Coordinator did not edit tests. +- CMake: `CMakeLists.txt` 변경 없음; REWORK-006 Correction added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation; Coordinator did not edit CMake configuration. - reference_artifacts: 생성·수정·rename 없음 - tolerance_policies: 변경 없음 -- phase_files: user-approved planning owner가 `phases/index.json` pending entry와 `phases/nonlinear-static-newton-raphson/index.json`, `step0.md`..`step12.md`를 materialize함; Executor attempt 2 generated `phases/nonlinear-static-newton-raphson/step0-output.json`; Step 0 remains pending and Coordinator did not edit phase files. -- Harness: Implementation Agent bounded repair와 REWORK-004는 `scripts/execute.py`와 `tests/test_execute.py`에 한정됨; REWORK-004 did not run nonlinear Harness phase, commit or push. Coordinator did not run Harness/phase/build/test; root no-push rerun is now authorized under the approved corrected envelope. -- feature_documents: 이번 coordinator update에서는 isolated worktree의 `coordination.md`만 갱신함; Correction Agent가 `docs/nonlinear-static-newton-raphson/corrections.md`를 갱신했고 `implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않음 +- phase_files: Executor/Correction updated `phases/index.json` and `phases/nonlinear-static-newton-raphson/index.json`; Step 0 is completed and committed, Step 1 is reset to `pending` after REWORK-006 blocker-clear evidence, and Steps 2..12 are pending. Coordinator did not edit phase files. +- Harness: REWORK-006 Correction updated `.gitignore`, `.harness/config.example.json`, and created ignored `.harness/config.json` for Ninja/MSVC preset selection; no Harness Python production change was required. Coordinator did not run Harness/phase/build/test, advance Step 2, use `danger-full-access`, clean build outputs, commit or push. +- feature_documents: REWORK-006 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81` and `implementation-plan.md`; this coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, `reference-comparison.md` are still absent. diff --git a/docs/nonlinear-static-newton-raphson/corrections.md b/docs/nonlinear-static-newton-raphson/corrections.md index 73c8e5a..58d6ddb 100644 --- a/docs/nonlinear-static-newton-raphson/corrections.md +++ b/docs/nonlinear-static-newton-raphson/corrections.md @@ -5,15 +5,15 @@ | key | value | | --- | --- | | feature_id | `nonlinear-static-newton-raphson` | -| source failure report | `docs/nonlinear-static-newton-raphson/coordination.md`; `phases/nonlinear-static-newton-raphson/step0-output.json` | +| source failure report | `docs/nonlinear-static-newton-raphson/coordination.md`; `phases/nonlinear-static-newton-raphson/step0-output.json`; `phases/nonlinear-static-newton-raphson/step1-output.json` | | source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md` | | status | `corrected-for-implementation-rerun` | | owner_agent | `correction-agent` | | date | `2026-08-24` | -`implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않았으므로 현재 Coordinator failure evidence와 Executor의 `step0-output.json`을 source failure report로 사용했다. +`implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않았으므로 현재 Coordinator failure evidence와 Executor의 `step0-output.json` 및 `step1-output.json`을 source failure report로 사용했다. -Sections 2-6의 Codex `0.147.0` 내용은 initial correction history이며, current REWORK-004 status와 증거는 Sections 7-9가 supersede한다. +Sections 2-6의 Codex `0.147.0` 내용은 initial correction history이고 Sections 7-9는 REWORK-004 history다. Section 10은 FileTracker diagnosis history이며 USER-DECISION-002 option A 이후 current correction과 status는 Section 11이 supersede한다. ## 2. Failure Triage @@ -129,3 +129,192 @@ Full Python failure는 기존 `test_agent_toml_and_limited_skill_yaml_schemas_ar | requirement id | task id | test id | corrected files | acceptance criterion | | --- | --- | --- | --- | --- | | `FESA-REQ-NSNR-083` | Harness runner correction `REWORK-004`; blocks Step 0 `cli-output-lease-and-derived-names` | `test_invoke_codex_uses_implementation_agent_command_contract` | `scripts/execute.py`; `tests/test_execute.py` | nested Codex argv가 adjacent `--disable`, `unified_exec`를 포함하면서 Terra/xhigh routing을 보존함; passed | + +## 10. FileTracker Workspace-Write Diagnosis + +### 10.1 Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `phases/nonlinear-static-newton-raphson/step1-output.json`; `docs/nonlinear-static-newton-raphson/coordination.md` | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `phases/nonlinear-static-newton-raphson/step1.md` | +| status | `blocked` | +| owner_agent | `correction-agent` | +| date | `2026-08-24` | + +### 10.2 Failure Triage + +- classification: `harness` +- normalized classification: `harness-msbuild-filetracker-eaccessdenied-workspace-write` +- attempt: `1` +- first failed stage command: + + ```powershell + cmake --build .harness/build --config Debug + ``` + +- failed target or test: Visual Studio 18 generator의 `fesa_solver.vcxproj`와 GoogleTest `gtest.vcxproj` CL task +- evidence tail: MSBuild `18.8.2`가 `Microsoft.CppCommon.targets(790,5)`에서 `MSB4018`을 냈다. Inner exception은 `System.UnauthorizedAccessException`, HRESULT `0x80070005 (E_ACCESSDENIED)`이며 stack은 `NativeMethods.GetLongFilePath` -> `FileTracker..cctor()` -> `FileTracker.FileIsExcludedFromDependencies` -> `CanonicalTrackedInputFiles.ConstructDependencyTable` -> `CL.ComputeOutOfDateSources`다. +- command-result caveat: `step1-output.json`의 item 25는 build와 CTest를 세미콜론으로 연결해 aggregate exit `0`을 기록했지만, 그 내부 `cmake --build`는 exit `1`로 실패했다. 뒤따른 stale-build CTest 성공은 Visual Studio build 성공 evidence가 아니다. +- configure boundary: 보존된 `.harness/build/CMakeCache.txt`는 `CMAKE_GENERATOR=Visual Studio 18 2026`, platform `x64`다. CMake generation 자체가 아니라 생성된 MSBuild project의 CL dependency-tracking 단계가 실패했다. + +### 10.3 Root Cause Summary + +FESA source, Step 1 test 또는 CMake registration이 원인이 아니다. 서로 독립적인 FESA와 GoogleTest project가 동일한 `FileTracker` static initializer에서 실패하므로 project-local input보다 sandbox/environment boundary다. + +Microsoft의 `FileTracker.cs`는 static initialization에서 `Path.GetTempPath()`를 구한 뒤 그 경로에 `GetShortFilePath`와 `GetLongFilePath`를 적용한다. 관찰 stack의 첫 failing native call과 정확히 일치한다. 현재 inherited `TEMP`/`TMP`는 `C:\Users\baram\AppData\Local\Temp`이고 runner는 이를 재지정하지 않는다. 따라서 Codex Windows `workspace-write` restricted token이 workspace 밖 user Temp의 long-path normalization을 거부한 것이 가장 좁은 root-cause inference다. + +- boundary confidence: `high` — 두 project에서 같은 FileTracker initializer/`E_ACCESSDENIED`가 재현됨. +- exact denied-path confidence: `medium-high` — Microsoft source의 static field order와 inherited Temp가 일치하지만 failing API가 path argument를 log하지는 않음. +- implementation classification: environment-owned sandbox/MSBuild interaction; implementation defect, test defect, CMake registration issue가 아님. + +검토한 primary vendor evidence: + +- Microsoft MSBuild source: `https://github.com/dotnet/msbuild/blob/main/src/Utilities/TrackedDependencies/FileTracker.cs` +- Microsoft CL task documentation: `https://learn.microsoft.com/en-us/visualstudio/msbuild/cl-task?view=visualstudio` +- installed Visual Studio target: `C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Microsoft\VC\v180\Microsoft.CppCommon.targets` lines 48-49 and 764-771 +- OpenAI Codex sandbox CLI source: `https://github.com/openai/codex/blob/main/codex-rs/cli/src/lib.rs`; built-in writable profile name은 `:workspace` + +### 10.4 Correction Scope + +- changed report files: `docs/nonlinear-static-newton-raphson/corrections.md` +- changed source/header/test/CMake/runner files: 없음 +- preserved dirty Step 1 files: `include/fesa/model/domain.h`, `include/fesa/model/model_types.h`, `src/fesa/io/abaqus/domain_mapping_context.cpp`, `src/fesa/model/domain.cpp`와 관련 unit tests +- preserved workflow files: `docs/nonlinear-static-newton-raphson/coordination.md`, `phases/index.json`, `phases/nonlinear-static-newton-raphson/index.json` +- excluded files: C++/CMake, phase definition/index, coordination, runner, upstream contracts, reference/tolerance artifacts +- prohibited actions not performed: Harness phase rerun, Step 2, build cleanup/deletion, Abaqus/Nastran/reference solver, `danger-full-access`, commit, push + +### 10.5 Workaround Evaluation And Verification Evidence + +| purpose | exact command/evidence | result | +| --- | --- | --- | +| preserved failure | `cmake --build .harness/build --config Debug` in `step1-output.json` | internal build exit `1`; `FileTracker..cctor()` `E_ACCESSDENIED` in both FESA and gtest | +| supported property inspection | installed `Microsoft.CppCommon.targets`; Microsoft CL task docs | `TrackFileAccess` defaults to `true` and is passed to CL; property is vendor-defined for incremental file-access tracking | +| narrow property smoke | nested `codex exec --sandbox workspace-write ...` requesting exactly `cmake --build .harness/build --config Debug -- /p:TrackFileAccess=false` | 60-second diagnostic timeout before a command completion event; no pass/fail conclusion; exact root PID `13720` and descendants cleaned, then absent | +| direct sandbox launcher check | `codex sandbox -P :workspace -C C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson cmd.exe /d /c echo SANDBOX_OK` | 10-second timeout; no `SANDBOX_OK`; exact root PID `16708` tree cleaned, then absent | +| workspace-write alternative evidence | Visual Studio-bundled Ninja/MSVC build in `step1-output.json` | focused CTest 27/27 and full CTest 228/228 passed | + +`/p:TrackFileAccess=false`는 vendor-defined 후보지만 동일 `workspace-write`에서 build completion이 관찰되지 않아 safe workaround로 채택할 수 없다. `TEMP`/`TMP`를 worktree로 재지정하는 후보도 FileTracker가 system-wide Temp를 dependency exclusion 기준으로 사용한다는 Microsoft source comment 때문에 tracking semantics 보존을 입증하지 않고 자동 적용하지 않았다. + +Ninja/MSVC는 같은 sandbox에서 implementation/test 건전성을 입증하지만 Step 1 VERIFY가 명시한 `Visual Studio 18 2026` generator acceptance criterion을 대체하지 않는다. 따라서 correction-agent가 phase/upstream contract 변경 없이 자동 채택할 수 없다. `danger-full-access`는 지시대로 실행하거나 시험하지 않았다. + +### 10.6 Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-083` | Step 1 `nonlinear-static-domain-contract`; FileTracker correction attempt 1 | `CORR-HARNESS-FILETRACKER-001` | `cmake --build .harness/build --config Debug` | report only | approved `workspace-write`에서 Visual Studio 18/MSBuild build completion; not met | +| `FESA-REQ-NSNR-083` | same | `CORR-HARNESS-FILETRACKER-002` | same build with `/p:TrackFileAccess=false` | 없음 | vendor-defined property가 FileTracker denial을 제거하고 build를 완료함; completion evidence 없음 | + +### 10.7 Handoff Recommendation + +- recommendation: `needs-user-decision`; Coordinator Agent에 `blocked` 반환. +- safe automatic correction: 없음. Runner/CMake/Step 1 source를 변경하지 않는다. +- decision option 1: approved implementation plan/phase owner가 Ninja+MSVC를 Visual Studio generator 대체 evidence로 명시적으로 승인한다. 이는 correction-agent 범위 밖의 upstream acceptance 변경이다. +- decision option 2: 사용자가 `docs/HARNESS.md`의 isolated clean-worktree `danger-full-access` fallback을 명시적으로 승인한다. 이번 진단에서는 broader privilege를 사용하거나 시험하지 않았다. +- decision option 3: Codex/Windows sandbox 환경 소유자가 direct `:workspace` launcher와 user Temp long-path access 문제를 수정한 뒤 동일 Visual Studio build를 재검증한다. + +### 10.8 Stop Condition + +- repeated failure: normalized classification attempt `1`; 같은 classification의 두 번째 자동 rework는 아직 수행하지 않았다. +- environment blocker: direct `:workspace` no-op도 bounded completion을 내지 않아 workspace-only workaround를 신뢰성 있게 검증할 수 없다. +- upstream ambiguity: Ninja acceptance 또는 broader sandbox 권한은 사용자/Coordinator 결정이 필요하다. +- reference artifact gap: 없음; reference artifact는 읽기/수정/생성하지 않았다. +- final stop: safe, vendor-supported, contract-preserving `workspace-write` workaround가 입증되지 않아 code change 없이 `blocked`로 중단한다. + +## 11. REWORK-006 Ninja/MSVC Validation Contract Correction + +### 11.1 Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `phases/nonlinear-static-newton-raphson/step1-output.json`; `docs/nonlinear-static-newton-raphson/coordination.md` USER-DECISION-002 option A / REWORK-006 | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `phases/nonlinear-static-newton-raphson/step0.md`..`step12.md` | +| status | `corrected-for-implementation-rerun` | +| owner_agent | `correction-agent` | +| date | `2026-08-24` | + +### 11.2 Failure Triage + +- classification: `harness` +- normalized classification: `harness-msbuild-filetracker-eaccessdenied-workspace-write` +- attempt: `2`, resolved by USER-DECISION-002 option A의 approved validation-contract change +- first failed command: `cmake --build .harness/build --config Debug` +- failed target: Visual Studio generator/MSBuild `FileTracker..cctor()`; Section 10의 `E_ACCESSDENIED` +- replacement acceptance: `workspace-write` 안에서 VsDevCmd x64를 상속한 Ninja/MSVC Debug configure/build, CTest discovery, full CTest가 모두 통과해야 한다. + +### 11.3 Root Cause Summary + +FESA C++/test/CMake target defect가 아니라 Visual Studio generator의 MSBuild FileTracker와 `workspace-write` sandbox 사이 environment failure였다. User가 option A를 승인했으므로 tracked root `CMakePresets.json`과 existing Harness preset adapter를 사용해 동일 MSVC x64 Debug compiler를 Ninja로 구동한다. Harness Python은 이미 complete preset triplet과 parent environment copy를 지원하므로 production Python 변경은 필요하지 않았다. + +### 11.4 Correction Scope + +- validation plumbing: `CMakePresets.json`, `.harness/config.example.json`, `.gitignore`, ignored local `.harness/config.json`, `tests/test_harness_preset_contract.py` +- approved validation commands: `docs/nonlinear-static-newton-raphson/implementation-plan.md`, `phases/nonlinear-static-newton-raphson/step0.md`..`step12.md` +- report/status: `docs/nonlinear-static-newton-raphson/corrections.md`, `phases/nonlinear-static-newton-raphson/index.json`; top `phases/index.json`은 blocked payload 제거 후 HEAD와 같은 `pending` 의미로 복원됨 +- generated/ignored build output: `.harness/build-ninja-msvc-debug/`; 삭제하거나 cleanup하지 않았다. +- production Harness Python, runner, C++, CMakeLists, upstream physics/I/O/reference/tolerance contract: 변경 없음 +- preserved others' dirty files: Step 1 C++/unit tests와 Coordinator-owned `coordination.md`를 되돌리거나 덮어쓰지 않았다. + +### 11.5 RED -> GREEN Evidence + +| stage | command | result | +| --- | --- | --- | +| RED-1 | `uv run --with pytest python -m pytest -v -rs tests/test_harness_preset_contract.py` | exit `1`; `CMakePresets.json` `FileNotFoundError` | +| GREEN-1 | same focused command after preset/example/local config | exit `0`; 1 passed | +| RED-2 | `uv run --with pytest python -m pytest -q tests/test_harness_preset_contract.py` after adding generated-build ignore assertion | exit `1`; `.harness/build-ninja-msvc-debug/` rule absent | +| GREEN-2 | focused verbose command after `.gitignore` update | exit `0`; 1 passed; `git check-ignore` confirms config and build output | + +Contract details: + +- preset: `windows-msvc-ninja-debug` +- generator/configuration: `Ninja`, `CMAKE_BUILD_TYPE=Debug` +- binary directory: `.harness/build-ninja-msvc-debug` +- cache variables: `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, `HDF5_DIR` use `$env{...}` and therefore fail closed when the parent launch envelope is incomplete. +- `.harness/config.json` is ignored and byte-identical to `.harness/config.example.json`; both SHA-256 `D07429860D472AE37D02D6CD638900FA46175085AF47F179E98601227F8D3C43` at verification. + +### 11.6 Verification Evidence + +Exact nested launch envelope: + +```powershell +VsDevCmd.bat -arch=x64 -host_arch=x64 +$env:FESA_GTEST_SOURCE_DIR='C:/git/googletest' +$env:MKL_DIR='C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl' +$env:TBB_DIR='C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb' +$env:HDF5_DIR='C:/Program Files/HDF_Group/HDF5/2.1.1/cmake' +codex exec --ephemeral --json --sandbox workspace-write --disable unified_exec --dangerously-bypass-hook-trust -m gpt-5.6-terra -c 'model_reasoning_effort="xhigh"' -C C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson +``` + +`CODEX_HOME=C:\Users\baram\.codex`를 상속하고 approved WindowsApps PATH entries를 child launch에서만 제거했다. `danger-full-access`와 sandbox bypass option은 사용하지 않았고 project hooks는 유지했다. + +| verify item | exact command/evidence | result | +| --- | --- | --- | +| environment preflight | nested shell prints architecture, four variables, `cl.exe`, `ninja.exe` | exit `0`; target/host `x64`; `cl.exe` Hostx64/x64; VS-bundled Ninja; all dependency paths exist | +| configure | `cmake --preset windows-msvc-ninja-debug` | exit `0` | +| build | `cmake --build --preset windows-msvc-ninja-debug` | exit `0` | +| discovery | `ctest --preset windows-msvc-ninja-debug --show-only=json-v1` | exit `0`; 228 tests | +| full CTest | `ctest --preset windows-msvc-ninja-debug --output-on-failure` | exit `0`; 228/228 passed; 10.69초 | +| generated metadata | `.harness/build-ninja-msvc-debug/CMakeCache.txt`와 `CMakeCXXCompiler.cmake` | `Ninja`; `Debug`; compiler ID `MSVC`; Hostx64/x64 `cl.exe` | +| Stop | hooks-retained nested `codex exec` completion | overall exit `0`; no Stop blocking response; automatic Stop uses ignored config's same preset plan | +| full Harness Python | `uv run --with pytest python -m pytest -v -rs` | 24 passed, 1 pre-existing out-of-scope failure: actual `xhigh` vs expected `extra high` | + +첫 cold workspace run은 full CTest에서 temporary `fesa_reference_tests_NOT_BUILT`로 207/208만 통과해 blocker-clear로 사용하지 않았고 phase도 reset하지 않았다. Automatic hooks가 missing target build를 완료한 뒤 두 번째 independent nested `workspace-write` run에서 위 228/228 evidence를 확보한 다음에만 phase를 reset했다. + +Reference artifact no-change evidence: `git diff --name-only -- reference`는 empty였다. `shellNL.inp`, shellNL displacement/reaction/stress CSV와 shell input/displacement/reaction/stress CSV의 SHA-256은 implementation-plan inventory와 모두 일치한다. Reference solver와 feature Harness phase는 실행하지 않았다. + +### 11.7 Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-083` | `REWORK-006`; Steps 0..12 validation contract | `CORR-HARNESS-PRESET-001` | Visual Studio/MSBuild build | `CMakePresets.json`; `.harness/config.example.json`; `.gitignore`; `tests/test_harness_preset_contract.py` | tracked Ninja/MSVC preset and Harness plan select MSVC/x64/Debug under `workspace-write` | +| `FESA-REQ-NSNR-083` | same | `CORR-HARNESS-PRESET-VERIFY-001` | preset configure/build/discovery/full CTest | implementation plan and `step0.md`..`step12.md` | nested env preflight plus 228/228 CTest pass | + +### 11.8 Handoff Recommendation And Stop Condition + +- recommendation: Coordinator를 통해 Implementation Agent에 Step 1 no-push rerun을 요청한다; Step 2로 advance하지 않는다. +- phase state after evidence: top phase `pending`; Step 1 `pending`, historical `started_at` 보존; `blocked_reason`과 `blocked_at`만 제거; Steps 2..12 remain `pending`. +- status: `corrected-for-implementation-rerun`. +- blockers: 이 correction 범위에는 없음. Existing Python `xhigh`/`extra high` mismatch는 명시된 out-of-scope pre-existing failure다. +- prohibited actions not performed: Harness phase rerun, Step 2, `danger-full-access`, push, commit, reference solver/artifact mutation, build cleanup/deletion. diff --git a/docs/nonlinear-static-newton-raphson/implementation-plan.md b/docs/nonlinear-static-newton-raphson/implementation-plan.md index fa1c14b..5463299 100644 --- a/docs/nonlinear-static-newton-raphson/implementation-plan.md +++ b/docs/nonlinear-static-newton-raphson/implementation-plan.md @@ -43,7 +43,7 @@ - Missing decisions: none. - Missing required comparison files: none for declared blocking/reference families. - Planning can proceed: yes. -- `.harness/config.json`: absent during planning inspection. Each Step must recheck at execution time and use it first if it appears. +- `CMakePresets.json` tracks the approved `windows-msvc-ninja-debug` contract. The ignored `.harness/config.json` selects the matching configure/build/test presets and `.harness/build-ninja-msvc-debug` binary directory. ## Global Constraints @@ -56,6 +56,7 @@ - Implementation and Harness execution remain unauthorized by this materialized plan until the user separately requests Executor execution. - Preserve source label/instance identity, deterministic row order, deterministic diagnostics, finite checks, and docs/TOLERANCE.md exactly. - Preserve `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. For shellNL, preserve constrained `RF1/RF2`, `RF3`, physical spatial `RM1/RM2` blocking, and exclude `RM3` plus stress from numeric comparison. +- Launch every Harness process from VsDevCmd with `-arch=x64 -host_arch=x64` and inherit `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR`. The tracked preset selects Ninja and MSVC Debug without hard-coding machine-local dependency paths. ## Repository Seam Map @@ -113,19 +114,15 @@ - Add C++ sources to `src/fesa/CMakeLists.txt` under existing `fesa_solver`. - Add unit tests to `fesa_unit_tests`, integration tests to `fesa_integration_tests`, reference tests to `fesa_reference_tests`. -- Preserve current executable-wide labels. Use focused regex such as `ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure`. +- Preserve current executable-wide labels. Use focused regex such as `ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure`. - If scoped per-test labels are introduced, the Step that introduces the mechanism must test it and avoid changing labels for unrelated discovered tests. - Configure/build/test commands: ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` ## Data Flow Contract @@ -218,18 +215,15 @@ Step 11 must not run original reference input paths directly. It snapshots exact Each Step must: -1. Recheck `.harness/config.json`. If present, use the configured Harness build/test commands. -2. If absent, use: +1. Use the ignored `.harness/config.json` preset contract and tracked `CMakePresets.json`. +2. Confirm the Harness parent environment was initialized by VsDevCmd x64 and contains `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR`. +3. Run: ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` Focused CTest commands are written explicitly in each `stepN.md`. diff --git a/include/fesa/model/domain.h b/include/fesa/model/domain.h index d86ce24..a338f3b 100644 --- a/include/fesa/model/domain.h +++ b/include/fesa/model/domain.h @@ -74,6 +74,12 @@ class StepDefinition { const DomainCollectionView& ConcentratedLoads() const noexcept; + /// @brief Returns the approved static procedure identity. + StaticProcedureKind ProcedureKind() const noexcept; + + /// @brief Reports whether this step uses the nonlinear static procedure. + bool IsNonlinearStatic() const noexcept; + /// @brief Returns the static initial increment provenance value. double InitialIncrement() const noexcept; @@ -103,6 +109,8 @@ class StepDefinition { std::vector> loads_; LoadView loads_view_; DomainCollectionView concentrated_loads_view_; + StaticProcedureKind procedure_kind_; + bool nlgeom_; double initial_increment_; double time_period_; double minimum_increment_; diff --git a/include/fesa/model/model_types.h b/include/fesa/model/model_types.h index fc8bc22..0f8558b 100644 --- a/include/fesa/model/model_types.h +++ b/include/fesa/model/model_types.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "fesa/core/diagnostic.h" @@ -52,11 +53,59 @@ struct NodalLoad { SourceLocation location; }; -/// @brief Stores the approved single linear-static step definition. +/// @brief Identifies the approved static procedure semantics for one step. +enum class StaticProcedureKind { + kLinearSmallDisplacement, + kNonlinearFullNewton +}; + +/// @brief Stores the approved single static step definition. struct StaticStepDefinition { + /// @brief Creates a static step with its mapped procedure identity. + StaticStepDefinition( + std::string step_name, + std::vector step_boundaries, + std::vector step_loads, + StaticProcedureKind step_procedure_kind, + bool step_nlgeom, + double step_initial_increment, + double step_time_period, + double step_minimum_increment, + double step_maximum_increment, + SourceLocation step_location) + : name{std::move(step_name)}, + boundaries{std::move(step_boundaries)}, + loads{std::move(step_loads)}, + procedure_kind{step_procedure_kind}, + nlgeom{step_nlgeom}, + initial_increment{step_initial_increment}, + time_period{step_time_period}, + minimum_increment{step_minimum_increment}, + maximum_increment{step_maximum_increment}, + location{std::move(step_location)} {} + + /// @brief Creates a legacy linear static step definition. + StaticStepDefinition( + std::string step_name, + std::vector step_boundaries, + std::vector step_loads, + double step_initial_increment, + double step_time_period, + double step_minimum_increment, + double step_maximum_increment, + SourceLocation step_location) + : StaticStepDefinition( + std::move(step_name), std::move(step_boundaries), + std::move(step_loads), + StaticProcedureKind::kLinearSmallDisplacement, false, + step_initial_increment, step_time_period, step_minimum_increment, + step_maximum_increment, std::move(step_location)) {} + std::string name; std::vector boundaries; std::vector loads; + StaticProcedureKind procedure_kind; + bool nlgeom; double initial_increment; double time_period; double minimum_increment; diff --git a/phases/nonlinear-static-newton-raphson/step0.md b/phases/nonlinear-static-newton-raphson/step0.md index 46afd04..470a55c 100644 --- a/phases/nonlinear-static-newton-raphson/step0.md +++ b/phases/nonlinear-static-newton-raphson/step0.md @@ -95,8 +95,8 @@ struct AnalysisRequest { 실행: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "FesaApplication|OutputPath" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "FesaApplication|OutputPath" --output-on-failure ``` 기대: 새 테스트가 컴파일 실패 또는 assertion 실패로 실패한다. 새 테스트가 예상 없이 통과하면 구현을 중단하고 Coordinator에게 보고한다. @@ -110,18 +110,14 @@ ctest --test-dir .harness/build -C Debug -R "FesaApplication|OutputPath" --outpu ## VERIFY -실행 전 `Test-Path .harness\config.json`으로 Harness config를 재확인한다. 있으면 그 설정을 우선한다. 없으면 다음 순서로 실행한다. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. Run: ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "FesaApplication|OutputPath" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "FesaApplication|OutputPath" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step1.md b/phases/nonlinear-static-newton-raphson/step1.md index b5ecc7a..73f9b0d 100644 --- a/phases/nonlinear-static-newton-raphson/step1.md +++ b/phases/nonlinear-static-newton-raphson/step1.md @@ -95,8 +95,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "Domain|DomainMapping|Abaqus" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "Domain|DomainMapping|Abaqus" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops the Step. @@ -111,18 +111,14 @@ Expected: new tests fail. Unexpected pass stops the Step. ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "Domain|DomainMapping|Abaqus" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "Domain|DomainMapping|Abaqus" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before using these defaults. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step10.md b/phases/nonlinear-static-newton-raphson/step10.md index b165923..c282519 100644 --- a/phases/nonlinear-static-newton-raphson/step10.md +++ b/phases/nonlinear-static-newton-raphson/step10.md @@ -137,8 +137,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -150,18 +150,14 @@ Refactor current parse/map and linear compute/recovery out of `LinearStaticAnaly ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "LinearStaticAnalysis|NonlinearStaticProcedure|FesaApplication" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step11.md b/phases/nonlinear-static-newton-raphson/step11.md index 1bfc07e..7c73004 100644 --- a/phases/nonlinear-static-newton-raphson/step11.md +++ b/phases/nonlinear-static-newton-raphson/step11.md @@ -139,8 +139,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -165,18 +165,14 @@ Use docs/TOLERANCE.md exactly: family scale `S=max(abs(reference))`, near-zero b ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step12.md b/phases/nonlinear-static-newton-raphson/step12.md index cb953e7..f1a00b1 100644 --- a/phases/nonlinear-static-newton-raphson/step12.md +++ b/phases/nonlinear-static-newton-raphson/step12.md @@ -66,18 +66,14 @@ Expected: evidence freshness audit fails before this Step writes docs. If it une ## VERIFY -Recheck `.harness/config.json`. If absent, use: +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. Run: ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure -ctest --test-dir .harness/build -C Debug -R "NonlinearStaticReference" --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference" --output-on-failure git diff --check git status --short ``` diff --git a/phases/nonlinear-static-newton-raphson/step2.md b/phases/nonlinear-static-newton-raphson/step2.md index 8324ed3..6db7f0d 100644 --- a/phases/nonlinear-static-newton-raphson/step2.md +++ b/phases/nonlinear-static-newton-raphson/step2.md @@ -64,8 +64,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "FiniteRotation" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "FiniteRotation" --output-on-failure ``` Expected: tests fail because the rotation module does not exist. Unexpected pass stops. @@ -77,18 +77,14 @@ Implement the SO(3) helper functions with finite checks and principal-branch val ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "FiniteRotation" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "FiniteRotation" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before using default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step3.md b/phases/nonlinear-static-newton-raphson/step3.md index 004bee2..77647fd 100644 --- a/phases/nonlinear-static-newton-raphson/step3.md +++ b/phases/nonlinear-static-newton-raphson/step3.md @@ -87,8 +87,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure ``` Expected: compile or test failure because nonlinear MITC4 files do not exist. Unexpected pass stops. @@ -100,18 +100,14 @@ Implement nonlinear MITC4 creation, kinematics, and recovery using approved 2x2x ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearMitc4Shell|NonlinearMitc4Recovery" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step4.md b/phases/nonlinear-static-newton-raphson/step4.md index d050874..e494133 100644 --- a/phases/nonlinear-static-newton-raphson/step4.md +++ b/phases/nonlinear-static-newton-raphson/step4.md @@ -61,8 +61,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -74,18 +74,14 @@ Implement same-trial internal residual/tangent, exact rotation derivative terms ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step5.md b/phases/nonlinear-static-newton-raphson/step5.md index 1fc2b2e..8bec44c 100644 --- a/phases/nonlinear-static-newton-raphson/step5.md +++ b/phases/nonlinear-static-newton-raphson/step5.md @@ -139,8 +139,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -152,18 +152,14 @@ Implement factor sequence derivation, load/BC scaling, global-once fixed-load ex ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticControl|NonlinearConvergence|NonlinearLoadBoundary" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step6.md b/phases/nonlinear-static-newton-raphson/step6.md index 72a8ed9..d96916b 100644 --- a/phases/nonlinear-static-newton-raphson/step6.md +++ b/phases/nonlinear-static-newton-raphson/step6.md @@ -68,8 +68,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "TangentSolver|MklPardiso" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "TangentSolver|MklPardiso" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -81,18 +81,14 @@ Implement backend-neutral tangent solver boundary and MKL full-CSR adapter. Fact ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "TangentSolver|MklPardiso" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "TangentSolver|MklPardiso" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step7.md b/phases/nonlinear-static-newton-raphson/step7.md index 273b24d..3c53a61 100644 --- a/phases/nonlinear-static-newton-raphson/step7.md +++ b/phases/nonlinear-static-newton-raphson/step7.md @@ -94,8 +94,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NewtonIterationLog" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NewtonIterationLog" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -107,18 +107,14 @@ Implement a small log writer with explicit open/write/flush/close state, seriali ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NewtonIterationLog" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NewtonIterationLog" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step8.md b/phases/nonlinear-static-newton-raphson/step8.md index d612d11..f543ae0 100644 --- a/phases/nonlinear-static-newton-raphson/step8.md +++ b/phases/nonlinear-static-newton-raphson/step8.md @@ -130,8 +130,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -143,18 +143,14 @@ Implement `NonlinearAnalysisState::Create` as the only construction seam for a v ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearAnalysisState|CommitRollback" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/phases/nonlinear-static-newton-raphson/step9.md b/phases/nonlinear-static-newton-raphson/step9.md index 44f224a..6231257 100644 --- a/phases/nonlinear-static-newton-raphson/step9.md +++ b/phases/nonlinear-static-newton-raphson/step9.md @@ -80,8 +80,8 @@ Add tests first. Run: ```powershell -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure ``` Expected: new tests fail. Unexpected pass stops. @@ -93,18 +93,14 @@ Implement `include/fesa/results/nonlinear_results_writer.h` as the backend-neutr ## VERIFY ```powershell -cmake --fresh -S . -B .harness/build -G "Visual Studio 18 2026" -A x64 ` - "-DFESA_GTEST_SOURCE_DIR=$gtestSource" ` - "-DMKL_DIR=$mklDir" ` - "-DTBB_DIR=$tbbDir" ` - "-DHDF5_DIR=$hdf5Dir" -cmake --build .harness/build --config Debug -ctest --test-dir .harness/build -C Debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure -ctest --test-dir .harness/build -C Debug --show-only=json-v1 -ctest --test-dir .harness/build -C Debug --output-on-failure +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug -R "NonlinearHdf5|Hdf5ResultsWriter" --output-on-failure +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Recheck `.harness/config.json` before default commands. +Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. ## 상태 기록 diff --git a/src/fesa/io/abaqus/domain_mapping_context.cpp b/src/fesa/io/abaqus/domain_mapping_context.cpp index c60519e..87984a3 100644 --- a/src/fesa/io/abaqus/domain_mapping_context.cpp +++ b/src/fesa/io/abaqus/domain_mapping_context.cpp @@ -107,6 +107,9 @@ struct RawMaterial { struct RawStep { SourceLocation location; bool has_static{false}; + StaticProcedureKind procedure_kind{ + StaticProcedureKind::kLinearSmallDisplacement}; + bool nlgeom{false}; std::array static_values{}; std::vector boundaries; std::vector loads; @@ -343,6 +346,27 @@ class DomainMappingContext::Impl { return true; } + bool ParseNonlinearStaticDouble(const std::string& text, double& value, + const SourceLocation& location, + const std::string& keyword) { + if (text.empty()) { + return InputFailure("invalid-nonlinear-static-data", location, keyword, + text, + "A nonlinear STATIC field cannot be empty."); + } + char* end = nullptr; + errno = 0; + const double parsed = std::strtod(text.c_str(), &end); + if (errno == ERANGE || end != text.c_str() + text.size() || + !std::isfinite(parsed)) { + return InputFailure("invalid-nonlinear-static-data", location, keyword, + text, + "All four nonlinear STATIC fields must be finite."); + } + value = parsed; + return true; + } + bool ParseModelDouble(const std::string& text, double& value, const SourceLocation& location, const std::string& keyword, @@ -1367,9 +1391,20 @@ class DomainMappingContext::Impl { void ParseStepStart(const KeywordBlock& block) { if (step_seen_) { - InputFailure("unsupported-multiple-step", block.location, - block.canonical_name, "", - "V0 accepts exactly one analysis step."); + const auto* nlgeom = Parameter(block, "NLGEOM"); + const bool nonlinear_second_step = + nlgeom != nullptr && nlgeom->value && + AsciiCaseInsensitiveEquals(*nlgeom->value, "YES"); + if (step_.nlgeom || nonlinear_second_step) { + InputFailure("unsupported-analysis-procedure", block.location, + block.canonical_name, "", + "The nonlinear static subset accepts exactly one " + "procedure step."); + } else { + InputFailure("unsupported-multiple-step", block.location, + block.canonical_name, "", + "V0 accepts exactly one analysis step."); + } return; } if (!assembly_seen_ || materials_.empty()) { @@ -1382,30 +1417,37 @@ class DomainMappingContext::Impl { !RequireNoData(block)) { return; } - const auto* nlgeom = Parameter(block, "NLGEOM"); - if (nlgeom != nullptr) { - if (!nlgeom->value || nlgeom->value->empty()) { + StaticProcedureKind procedure_kind = + StaticProcedureKind::kLinearSmallDisplacement; + bool nlgeom = false; + const auto* nlgeom_parameter = Parameter(block, "NLGEOM"); + if (nlgeom_parameter != nullptr) { + if (!nlgeom_parameter->value || nlgeom_parameter->value->empty()) { InputFailure("invalid-keyword-parameter", block.location, block.canonical_name, "NLGEOM", - "NLGEOM requires NO in the approved subset."); + "NLGEOM requires YES or NO in the approved subset."); return; } - if (!AsciiCaseInsensitiveEquals(*nlgeom->value, "NO")) { - if (model_element_family_ == ElementFamily::kShell) { - InputFailure("unsupported-nonlinear-geometry", block.location, - block.canonical_name, *nlgeom->value, - "Only absent NLGEOM or NLGEOM=NO is supported."); - } else { - ModelFailure("unsupported-nonlinear-geometry", block.location, - block.canonical_name, *nlgeom->value, - "Only absent NLGEOM or NLGEOM=NO is supported."); + if (AsciiCaseInsensitiveEquals(*nlgeom_parameter->value, "YES")) { + if (model_element_family_ != ElementFamily::kShell) { + InputFailure("unsupported-analysis-procedure", block.location, + block.canonical_name, *nlgeom_parameter->value, + "NLGEOM=YES requires an S4 or S4R shell model."); + return; } + procedure_kind = StaticProcedureKind::kNonlinearFullNewton; + nlgeom = true; + } else if (!AsciiCaseInsensitiveEquals(*nlgeom_parameter->value, "NO")) { + InputFailure("unsupported-analysis-procedure", block.location, + block.canonical_name, *nlgeom_parameter->value, + "NLGEOM must select YES or NO."); return; } } step_seen_ = true; in_step_ = true; - step_ = RawStep{block.location, false, {}, {}, {}}; + step_ = RawStep{block.location, false, procedure_kind, nlgeom, {}, {}, + {}}; step_load_seen_ = false; step_no_op_seen_ = false; } @@ -1485,6 +1527,14 @@ class DomainMappingContext::Impl { ParseOutputChild(block); } else { active_output_ = false; + if (step_.procedure_kind == + StaticProcedureKind::kNonlinearFullNewton && + !step_.has_static) { + InputFailure("unsupported-analysis-procedure", block.location, + block.canonical_name, "", + "The nonlinear step supports only the STATIC procedure."); + return; + } RejectUnknown(block); } } @@ -1493,41 +1543,75 @@ class DomainMappingContext::Impl { if (step_.has_static || !ValidateParameters(block, {}) || block.data.size() != 1U || block.data[0].fields.size() != 4U) { if (!failure_) { - InputFailure("invalid-static-data", block.location, + InputFailure(step_.nlgeom ? "invalid-nonlinear-static-data" + : "invalid-static-data", + block.location, block.canonical_name, "", "STATIC requires exactly one row of four values."); } return; } for (std::size_t field = 0U; field < 4U; ++field) { - if (!ParseDouble(block.data[0].fields[field], step_.static_values[field], - block.data[0].location, block.canonical_name)) { + const std::string& text = block.data[0].fields[field]; + const bool parsed = step_.nlgeom + ? ParseNonlinearStaticDouble( + text, step_.static_values[field], + block.data[0].location, + block.canonical_name) + : ParseDouble(text, step_.static_values[field], + block.data[0].location, + block.canonical_name); + if (!parsed) { return; } if (step_.static_values[field] <= 0.0) { - InputFailure("invalid-static-data", block.data[0].location, + InputFailure(step_.nlgeom ? "invalid-nonlinear-static-data" + : "invalid-static-data", + block.data[0].location, block.canonical_name, "", "All four STATIC fields must be positive."); return; } } if (step_.static_values[2] > step_.static_values[3]) { - InputFailure("invalid-static-data", block.data[0].location, + InputFailure(step_.nlgeom ? "invalid-nonlinear-static-data" + : "invalid-static-data", + block.data[0].location, block.canonical_name, "", "STATIC minimum increment cannot exceed maximum increment."); return; } + if (step_.nlgeom && step_.static_values[1] != 1.0) { + InputFailure("invalid-nonlinear-static-data", block.data[0].location, + block.canonical_name, "", + "The nonlinear STATIC time period must be exactly 1.0."); + return; + } step_.has_static = true; } void ParseOutputRoot(const KeywordBlock& block) { + if (!ValidateParameters(block, {"FIELD", "HISTORY", "VARIABLE"})) { + return; + } const auto* field = Parameter(block, "FIELD"); const auto* history = Parameter(block, "HISTORY"); + const auto* variable = Parameter(block, "VARIABLE"); if ((field == nullptr) == (history == nullptr) || (field != nullptr && field->value) || (history != nullptr && history->value)) { - InputFailure("unsupported-keyword", block.location, block.canonical_name, - "", "OUTPUT must select exactly FIELD or HISTORY."); + InputFailure(step_.nlgeom ? "invalid-keyword-parameter" + : "unsupported-keyword", + block.location, block.canonical_name, "", + "OUTPUT must select exactly FIELD or HISTORY."); + return; + } + if (step_.nlgeom && + (variable == nullptr || !variable->value || + !AsciiCaseInsensitiveEquals(*variable->value, "PRESELECT"))) { + InputFailure("invalid-keyword-parameter", block.location, + block.canonical_name, "VARIABLE", + "Nonlinear OUTPUT requires VARIABLE=PRESELECT."); return; } active_output_ = true; @@ -2176,10 +2260,10 @@ class DomainMappingContext::Impl { // Static time-control values are provenance only: V0 creates exactly // the canonical final frame 0 and performs no increment loop here. - definition_.steps.push_back({"Step-1", std::move(boundaries), step_.loads, - step_.static_values[0], step_.static_values[1], - step_.static_values[2], step_.static_values[3], - step_.location}); + definition_.steps.push_back( + {"Step-1", std::move(boundaries), step_.loads, step_.procedure_kind, + step_.nlgeom, step_.static_values[0], step_.static_values[1], + step_.static_values[2], step_.static_values[3], step_.location}); } const ParsedInput& input_; diff --git a/src/fesa/model/domain.cpp b/src/fesa/model/domain.cpp index 60f2c5a..b9d97f1 100644 --- a/src/fesa/model/domain.cpp +++ b/src/fesa/model/domain.cpp @@ -9,6 +9,8 @@ namespace fesa { StepDefinition::StepDefinition(StaticStepDefinition definition) : name_{std::move(definition.name)}, + procedure_kind_{definition.procedure_kind}, + nlgeom_{definition.nlgeom}, initial_increment_{definition.initial_increment}, time_period_{definition.time_period}, minimum_increment_{definition.minimum_increment}, @@ -60,6 +62,14 @@ StepDefinition::ConcentratedLoads() const noexcept { return concentrated_loads_view_; } +StaticProcedureKind StepDefinition::ProcedureKind() const noexcept { + return procedure_kind_; +} + +bool StepDefinition::IsNonlinearStatic() const noexcept { + return procedure_kind_ == StaticProcedureKind::kNonlinearFullNewton; +} + double StepDefinition::InitialIncrement() const noexcept { return initial_increment_; } diff --git a/tests/test_harness_preset_contract.py b/tests/test_harness_preset_contract.py new file mode 100644 index 0000000..185fda8 --- /dev/null +++ b/tests/test_harness_preset_contract.py @@ -0,0 +1,80 @@ +import json +from pathlib import Path +import sys + + +ROOT = Path(__file__).resolve().parents[1] +SCRIPTS = ROOT / "scripts" +sys.path.insert(0, str(SCRIPTS)) + +from msvc_harness.adapters.cmake import CMakeAdapter +from msvc_harness.config import load_config +from msvc_harness.models import ProjectKind, ProjectSelection, Toolchain + + +PRESET_NAME = "windows-msvc-ninja-debug" +BINARY_DIR = ".harness/build-ninja-msvc-debug" + + +def test_harness_uses_tracked_ninja_msvc_presets(tmp_path): + presets = json.loads((ROOT / "CMakePresets.json").read_text(encoding="utf-8")) + configure = presets["configurePresets"][0] + assert configure == { + "name": PRESET_NAME, + "displayName": "Windows MSVC x64 Debug (Ninja)", + "generator": "Ninja", + "binaryDir": f"${{sourceDir}}/{BINARY_DIR}", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug", + "FESA_GTEST_SOURCE_DIR": "$env{FESA_GTEST_SOURCE_DIR}", + "MKL_DIR": "$env{MKL_DIR}", + "TBB_DIR": "$env{TBB_DIR}", + "HDF5_DIR": "$env{HDF5_DIR}", + }, + } + assert presets["buildPresets"] == [ + {"name": PRESET_NAME, "configurePreset": PRESET_NAME} + ] + assert presets["testPresets"] == [ + {"name": PRESET_NAME, "configurePreset": PRESET_NAME} + ] + + example = json.loads( + (ROOT / ".harness" / "config.example.json").read_text(encoding="utf-8") + ) + assert example == { + "version": 1, + "projectType": "cmake", + "cmake": { + "sourceDir": ".", + "binaryDir": BINARY_DIR, + "configurePreset": PRESET_NAME, + "buildPreset": PRESET_NAME, + "testPreset": PRESET_NAME, + }, + } + assert ".harness/build-ninja-msvc-debug/" in ( + ROOT / ".gitignore" + ).read_text(encoding="utf-8").splitlines() + + harness_dir = tmp_path / ".harness" + harness_dir.mkdir() + (harness_dir / "config.json").write_text( + json.dumps(example), encoding="utf-8" + ) + config = load_config(tmp_path) + tools = Toolchain( + installation=tmp_path / "vs", + msbuild=tmp_path / "msbuild.exe", + cmake=tmp_path / "cmake.exe", + ctest=tmp_path / "ctest.exe", + ) + selection = ProjectSelection(ProjectKind.CMAKE, ROOT / "CMakePresets.json") + plan = CMakeAdapter().create_plan(tmp_path, selection, config, tools) + + assert [step.command.argv[1:] for step in plan.steps] == [ + ("--preset", PRESET_NAME), + ("--build", "--preset", PRESET_NAME), + ("--preset", PRESET_NAME, "--show-only=json-v1"), + ("--preset", PRESET_NAME, "--output-on-failure"), + ] diff --git a/tests/unit/io/abaqus/domain_mapper_test.cpp b/tests/unit/io/abaqus/domain_mapper_test.cpp index a022b41..89f0c73 100644 --- a/tests/unit/io/abaqus/domain_mapper_test.cpp +++ b/tests/unit/io/abaqus/domain_mapper_test.cpp @@ -174,6 +174,12 @@ TipSecond, 6, 1. )inp"; } +std::string NonlinearShellDeck() { + return ReplaceOnce( + ReplaceOnce(ShellDeck(), "nlgeom=NO", "nlgeom=YES"), + "0.1, 1., 0.01, 1.", "0.1, 1., 0.001, 0.1"); +} + std::string SupportedInventoryDeck(bool include_no_ops) { const std::string preprint = include_no_ops ? "*Preprint, echo=NO, model=NO, history=NO, contact=NO\n" @@ -570,6 +576,142 @@ TEST(InpDomainMapping, NoOpAllowlistWarnsWithoutSemanticEffect) { plain.Value().Steps()[0].Loads().size()); } +// NSNR-IO-001, NSNR-IO-005, NSNR-IO-007 +TEST(InpDomainMapping, MapsNonlinearStaticShellProcedureAndRawControls) { + auto result = MapText("nonlinear-static-shell", NonlinearShellDeck()); + + ASSERT_TRUE(result.HasValue()); + const fesa::Domain& domain = result.Value(); + ASSERT_EQ(domain.Steps().Size(), 1U); + const auto& step = domain.Steps()[0U]; + EXPECT_EQ(step.ProcedureKind(), + fesa::StaticProcedureKind::kNonlinearFullNewton); + EXPECT_TRUE(step.IsNonlinearStatic()); + EXPECT_DOUBLE_EQ(step.InitialIncrement(), 0.1); + EXPECT_DOUBLE_EQ(step.TimePeriod(), 1.0); + EXPECT_DOUBLE_EQ(step.MinimumIncrement(), 0.001); + EXPECT_DOUBLE_EQ(step.MaximumIncrement(), 0.1); + EXPECT_TRUE(domain.BeamElements().Empty()); + ASSERT_EQ(domain.ShellElements().Size(), 4U); + EXPECT_EQ(domain.ShellElements()[0U].source_type, + fesa::ShellSourceElementType::kS4); + EXPECT_EQ(domain.ShellElements()[1U].source_type, + fesa::ShellSourceElementType::kS4r); +} + +// NSNR-IO-002, NSNR-IO-003 +TEST(InpDomainMapping, KeepsExplicitAndImplicitLinearStaticProcedures) { + const std::vector decks{ + ShellDeck(), ReplaceOnce(ShellDeck(), ", nlgeom=NO", "")}; + + for (std::size_t index = 0U; index < decks.size(); ++index) { + SCOPED_TRACE(index); + auto result = MapText("linear-static-procedure-" + std::to_string(index), + decks[index]); + ASSERT_TRUE(result.HasValue()); + ASSERT_EQ(result.Value().Steps().Size(), 1U); + EXPECT_EQ(result.Value().Steps()[0U].ProcedureKind(), + fesa::StaticProcedureKind::kLinearSmallDisplacement); + EXPECT_FALSE(result.Value().Steps()[0U].IsNonlinearStatic()); + } +} + +// NSNR-IO-004 +TEST(InpDomainMapping, RejectsInvalidNonlinearStaticControlValues) { + struct InvalidCase { + std::string name; + std::string controls; + }; + const std::vector cases{ + {"zero", "0., 1., 0.001, 0.1"}, + {"nonfinite", "nan, 1., 0.001, 0.1"}, + {"nonunit-period", "0.1, 0.5, 0.001, 0.1"}, + {"reversed-bounds", "0.1, 1., 0.2, 0.1"}}; + + for (const auto& test_case : cases) { + SCOPED_TRACE(test_case.name); + auto result = MapText( + "invalid-nonlinear-static-" + test_case.name, + ReplaceOnce(NonlinearShellDeck(), "0.1, 1., 0.001, 0.1", + test_case.controls)); + ASSERT_FALSE(result.HasValue()); + EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput); + ASSERT_NE(FindDiagnostic(result.GetStatus(), "invalid-nonlinear-static-data"), + nullptr); + } +} + +// NSNR-IO-006, NSNR-IO-008 +TEST(InpDomainMapping, RejectsUnsupportedNonlinearProceduresAndMixedModels) { + const std::string nonlinear = NonlinearShellDeck(); + const std::vector> procedure_cases{ + {"dynamic", + ReplaceOnce(nonlinear, "*Static\n0.1, 1., 0.001, 0.1", + "*Dynamic\n0.1, 1., 0.001, 0.1")}, + {"mixed-steps", + nonlinear + "*Step, name=Linear, nlgeom=NO\n*Static\n0.1, 1., 0.01, " + "1.\n*End Step\n"}, + {"beam-nlgeom", + ReplaceOnce(MinimalDeck(), "nlgeom=NO", "nlgeom=YES")}}; + + for (const auto& test_case : procedure_cases) { + SCOPED_TRACE(test_case.first); + auto result = MapText("unsupported-nonlinear-" + test_case.first, + test_case.second); + ASSERT_FALSE(result.HasValue()); + EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput); + ASSERT_NE(FindDiagnostic(result.GetStatus(), "unsupported-analysis-procedure"), + nullptr); + } + + const std::string mixed_model = ReplaceOnce( + nonlinear, "0020, 2, 5, 6, 3\n*Elset", + "0020, 2, 5, 6, 3\n*Element, type=B33\n30, 1, 2\n*Elset"); + auto mixed_result = MapText("mixed-nonlinear-model", mixed_model); + ASSERT_FALSE(mixed_result.HasValue()); + EXPECT_EQ(mixed_result.GetStatus().Category(), fesa::FailureCategory::kInput); + ASSERT_NE(FindDiagnostic(mixed_result.GetStatus(), + "unsupported-mixed-element-model"), + nullptr); +} + +// NSNR-IO-009, NSNR-IO-010, NSNR-IO-011 +TEST(InpDomainMapping, AcceptsOnlyNonlinearPreselectOutputNoOps) { + auto plain = MapText("nonlinear-output-plain", NonlinearShellDeck()); + ASSERT_TRUE(plain.HasValue()); + + for (const std::string_view request : {"field", "history"}) { + const std::string deck = ReplaceOnce( + NonlinearShellDeck(), "*End Step\n", + "*Output, " + std::string{request} + ", variable=PRESELECT\n*End Step\n"); + auto result = MapText("nonlinear-output-" + std::string{request}, deck); + ASSERT_TRUE(result.HasValue()); + EXPECT_EQ(result.Value().Nodes().size(), plain.Value().Nodes().size()); + EXPECT_EQ(result.Value().Steps().Size(), plain.Value().Steps().Size()); + EXPECT_EQ(result.Value().Steps()[0U].BoundaryConditions().size(), + plain.Value().Steps()[0U].BoundaryConditions().size()); + EXPECT_EQ(result.Value().Steps()[0U].Loads().size(), + plain.Value().Steps()[0U].Loads().size()); + ASSERT_EQ(result.Value().Warnings().size(), 1U); + EXPECT_EQ(result.Value().Warnings()[0U].keyword, "OUTPUT"); + } + + const std::vector malformed_requests{ + "*Output, field\n", "*Output, field, history, variable=PRESELECT\n", + "*Output, field, variable=ALL\n"}; + for (std::size_t index = 0U; index < malformed_requests.size(); ++index) { + SCOPED_TRACE(index); + auto result = MapText( + "malformed-nonlinear-output-" + std::to_string(index), + ReplaceOnce(NonlinearShellDeck(), "*End Step\n", + malformed_requests[index] + "*End Step\n")); + ASSERT_FALSE(result.HasValue()); + EXPECT_EQ(result.GetStatus().Category(), fesa::FailureCategory::kInput); + ASSERT_NE(FindDiagnostic(result.GetStatus(), "invalid-keyword-parameter"), + nullptr); + } +} + // MITC4-MAP-001 // C-MODEL-002 TEST(InpDomainMapping, MapsS4AndS4rThroughOneMitc4Identity) { @@ -738,8 +880,6 @@ TEST(InpDomainMapping, const std::vector cases{ {"second-step", base + "*Step\n*Static\n1., 1., 1., 1.\n*End Step\n", "unsupported-multiple-step"}, - {"nonlinear-step", ReplaceOnce(base, "nlgeom=NO", "nlgeom=YES"), - "unsupported-nonlinear-geometry"}, {"other-procedure", ReplaceOnce(base, "*Static\n0.1, 1., 0.01, 1.", "*Dynamic\n0.1, 1., 0.01, 1."), @@ -898,7 +1038,7 @@ TEST(InpDomainMapping, RejectsUnsupportedAndInvalidPortfolio) { {"malformed-node-arity", ReplaceOnce(base, "1, 0., 0., 0.", "1, 0., 0."), "invalid-data-arity", fesa::FailureCategory::kInput}, {"nlgeom", ReplaceOnce(base, "nlgeom=NO", "nlgeom=YES"), - "unsupported-nonlinear-geometry", fesa::FailureCategory::kModel}, + "unsupported-analysis-procedure", fesa::FailureCategory::kInput}, {"unknown-keyword", ReplaceOnce(base, "*Assembly, name=Assembly", "*Density\n1.\n*Assembly, name=Assembly"), diff --git a/tests/unit/io/abaqus/domain_mapping_components_test.cpp b/tests/unit/io/abaqus/domain_mapping_components_test.cpp index b9ffbde..3524551 100644 --- a/tests/unit/io/abaqus/domain_mapping_components_test.cpp +++ b/tests/unit/io/abaqus/domain_mapping_components_test.cpp @@ -150,6 +150,9 @@ TEST(DomainMappingComponents, EXPECT_EQ(domain.Materials().Size(), 1U); EXPECT_EQ(domain.Properties().Size(), 1U); ASSERT_EQ(domain.Steps().Size(), 1U); + EXPECT_EQ(domain.Steps()[0].ProcedureKind(), + StaticProcedureKind::kLinearSmallDisplacement); + EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()); EXPECT_EQ(domain.Steps()[0].BoundaryConditions().size(), 7U); EXPECT_EQ(domain.Steps()[0].Loads().size(), 1U); ASSERT_EQ(domain.Warnings().size(), 3U); diff --git a/tests/unit/model/domain_test.cpp b/tests/unit/model/domain_test.cpp index f4c79e5..93425f4 100644 --- a/tests/unit/model/domain_test.cpp +++ b/tests/unit/model/domain_test.cpp @@ -49,6 +49,8 @@ fesa::ModelDefinition MakeOwnedDefinition() { definition.steps = {{"Step-1", {{"Root", 1, 6, 0.0, {"models/owned.inp", 60U}}}, {{"Tip", 3, -1000.0, {"models/owned.inp", 61U}}}, + fesa::StaticProcedureKind::kLinearSmallDisplacement, + false, 0.1, 1.0, 1.0e-5, @@ -197,6 +199,9 @@ TEST(DomainModel, ImmutableOwnershipPreservesStableOrder) { EXPECT_DOUBLE_EQ(domain.Steps()[0].TimePeriod(), 1.0); EXPECT_DOUBLE_EQ(domain.Steps()[0].MinimumIncrement(), 1.0e-5); EXPECT_DOUBLE_EQ(domain.Steps()[0].MaximumIncrement(), 1.0); + EXPECT_EQ(domain.Steps()[0].ProcedureKind(), + fesa::StaticProcedureKind::kLinearSmallDisplacement); + EXPECT_FALSE(domain.Steps()[0].IsNonlinearStatic()); ASSERT_EQ(domain.Steps()[0].BoundaryConditions().size(), 6U); ASSERT_EQ(domain.Steps()[0].Loads().size(), 1U); ASSERT_EQ(domain.Steps()[0].ConcentratedLoads().Size(), 1U); diff --git a/tests/unit/model/model_types_test.cpp b/tests/unit/model/model_types_test.cpp index 994cb4c..0237d69 100644 --- a/tests/unit/model/model_types_test.cpp +++ b/tests/unit/model/model_types_test.cpp @@ -70,8 +70,9 @@ TEST(DomainModel, SourceAndInternalIdentityRemainDistinct) { "Root", 1, 6, 0.0, {"models/beam.inp", 60U}}; const fesa::NodalLoad load{"Tip", 3, -1000.0, {"models/beam.inp", 70U}}; const fesa::StaticStepDefinition step{ - "Step-1", {boundary}, {load}, 0.1, - 1.0, 1.0e-5, 1.0, {"models/beam.inp", 50U}}; + "Step-1", {boundary}, {load}, + fesa::StaticProcedureKind::kLinearSmallDisplacement, false, 0.1, + 1.0, 1.0e-5, 1.0, {"models/beam.inp", 50U}}; const fesa::NodeSet node_set{ "Root", std::string{"Instance-A"}, {5U}, {"models/beam.inp", 25U}}; const fesa::ElementSet element_set{ @@ -118,6 +119,9 @@ TEST(DomainModel, SourceAndInternalIdentityRemainDistinct) { EXPECT_EQ(definition.steps[0].time_period, 1.0); EXPECT_EQ(definition.steps[0].minimum_increment, 1.0e-5); EXPECT_EQ(definition.steps[0].maximum_increment, 1.0); + EXPECT_EQ(definition.steps[0].procedure_kind, + fesa::StaticProcedureKind::kLinearSmallDisplacement); + EXPECT_FALSE(definition.steps[0].nlgeom); ASSERT_EQ(definition.warnings.size(), 1U); EXPECT_EQ(definition.warnings[0].location.line, 75U); From f2e3de79f724e95ad57aea96e3ed6536f162ad32 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:17:18 +0900 Subject: [PATCH 04/32] chore(nonlinear-static-newton-raphson): step 1 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 41abc68..6e9107f 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -13,7 +13,10 @@ { "step": 1, "name": "nonlinear-static-domain-contract", - "status": "pending" + "status": "completed", + "summary": "Mapped NLGEOM static procedure identity and raw controls while keeping PRESELECT output requests warning-only no-ops.", + "started_at": "2026-08-24T10:42:14+0900", + "completed_at": "2026-08-24T13:17:17+0900" }, { "step": 2, From ee6f380bb3168a33bfb229e663b98f862039b8a2 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:26:00 +0900 Subject: [PATCH 05/32] feat(nonlinear-static-newton-raphson): step 2 - finite-rotation-state --- include/fesa/elements/finite_rotation.h | 63 ++++ src/fesa/CMakeLists.txt | 1 + src/fesa/elements/finite_rotation.cpp | 286 +++++++++++++++++++ tests/CMakeLists.txt | 1 + tests/unit/elements/finite_rotation_test.cpp | 229 +++++++++++++++ 5 files changed, 580 insertions(+) create mode 100644 include/fesa/elements/finite_rotation.h create mode 100644 src/fesa/elements/finite_rotation.cpp create mode 100644 tests/unit/elements/finite_rotation_test.cpp diff --git a/include/fesa/elements/finite_rotation.h b/include/fesa/elements/finite_rotation.h new file mode 100644 index 0000000..29513b5 --- /dev/null +++ b/include/fesa/elements/finite_rotation.h @@ -0,0 +1,63 @@ +#ifndef FESA_ELEMENTS_FINITE_ROTATION_H_ +#define FESA_ELEMENTS_FINITE_ROTATION_H_ + +#include "fesa/core/status.h" +#include "fesa/math/matrix.h" +#include "fesa/math/vector3.h" + +namespace fesa { + +/// @brief Stores one finite-rotation coordinate and its derived triad state. +struct FiniteRotationState { + /// @brief Fixed-global principal-chart rotation coordinate in radians. + Vector3 phi; + + /// @brief Proper orthogonal triad computed as exp(phi^) times the initial + /// frame. + Matrix q; + + /// @brief Current director computed from the third column of q. + Vector3 director; +}; + +/// @brief Computes Rodrigues' exponential of the three-dimensional skew map. +/// @param phi Fixed-global rotation coordinate in radians. +/// @return The 3-by-3 rotation tensor exp(phi^). +/// @pre phi is finite and lies inside the approved principal chart. +Matrix ExpSkew(const Vector3& phi); + +/// @brief Computes the SO(3) left Jacobian for a fixed-global coordinate. +/// @param phi Fixed-global rotation coordinate in radians. +/// @return The 3-by-3 left Jacobian that maps coordinate variations to spatial +/// rotations. +/// @pre phi is finite and lies inside the approved principal chart. +Matrix LeftJacobianSO3(const Vector3& phi); + +/// @brief Computes the inverse transpose of the SO(3) left Jacobian. +/// @param phi Fixed-global rotation coordinate in radians. +/// @return The 3-by-3 inverse-transpose left Jacobian. +/// @pre phi is finite and lies inside the approved principal chart. +Matrix InverseTransposeLeftJacobianSO3(const Vector3& phi); + +/// @brief Builds a checked finite-rotation state from its reference frame. +/// @param phi Fixed-global principal-chart rotation coordinate in radians. +/// @param initial_frame Valid initial right-handed 3-by-3 triad. +/// @return A complete finite state or an `invalid-accepted-state` failure. +/// @note The input frame is validated but never normalized or repaired. +Result MakeFiniteRotationState( + const Vector3& phi, const Matrix& initial_frame); + +/// @brief Applies a fixed-global Newton rotation increment to one state. +/// @param committed Fully validated state that remains unchanged by this call. +/// @param delta_phi Fixed-global additive rotation correction in radians. +/// @param initial_frame Valid initial right-handed 3-by-3 triad. +/// @return A rebuilt trial state or an `invalid-accepted-state` failure. +/// @note The result is recomputed from phi plus delta_phi and initial_frame; +/// incremental tensors are not successively composed. +Result ApplyGlobalRotationIncrement( + const FiniteRotationState& committed, const Vector3& delta_phi, + const Matrix& initial_frame); + +} // namespace fesa + +#endif // FESA_ELEMENTS_FINITE_ROTATION_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 4d41a7f..725a8b1 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -17,6 +17,7 @@ add_library( core/status.cpp elements/element_factory.cpp elements/euler_beam_3d.cpp + elements/finite_rotation.cpp elements/mitc4_shell.cpp fem/dof_manager.cpp io/abaqus/domain_builder.cpp diff --git a/src/fesa/elements/finite_rotation.cpp b/src/fesa/elements/finite_rotation.cpp new file mode 100644 index 0000000..4e82390 --- /dev/null +++ b/src/fesa/elements/finite_rotation.cpp @@ -0,0 +1,286 @@ +#include "fesa/elements/finite_rotation.h" + +#include +#include +#include +#include +#include + +namespace fesa { +namespace { + +constexpr std::size_t kRotationDimension = 3U; +constexpr double kRotationStateTolerance = 1.0e-12; +constexpr double kSmallAngleThreshold = 1.0e-4; + +/// @brief Returns the SO(3) skew-symmetric matrix for a global vector. +Matrix Skew(const Vector3& vector) { + Matrix result{kRotationDimension, kRotationDimension}; + result(0U, 1U) = -vector.Z(); + result(0U, 2U) = vector.Y(); + result(1U, 0U) = vector.Z(); + result(1U, 2U) = -vector.X(); + result(2U, 0U) = -vector.Y(); + result(2U, 1U) = vector.X(); + return result; +} + +/// @brief Returns the 3-by-3 identity matrix. +Matrix Identity() { + Matrix result{kRotationDimension, kRotationDimension}; + for (std::size_t index = 0U; index < kRotationDimension; ++index) { + result(index, index) = 1.0; + } + return result; +} + +/// @brief Builds I plus linear and quadratic skew terms in stable row-major +/// order. +Matrix Polynomial(const Matrix& skew, const Matrix& skew_squared, + const double linear_coefficient, + const double quadratic_coefficient) { + Matrix result = Identity(); + for (std::size_t row = 0U; row < kRotationDimension; ++row) { + for (std::size_t column = 0U; column < kRotationDimension; ++column) { + result(row, column) += linear_coefficient * skew(row, column) + + quadratic_coefficient * + skew_squared(row, column); + } + } + return result; +} + +/// @brief Computes the determinant of one 3-by-3 matrix. +double Determinant(const Matrix& matrix) { + return matrix(0U, 0U) * + (matrix(1U, 1U) * matrix(2U, 2U) - + matrix(1U, 2U) * matrix(2U, 1U)) - + matrix(0U, 1U) * + (matrix(1U, 0U) * matrix(2U, 2U) - + matrix(1U, 2U) * matrix(2U, 0U)) + + matrix(0U, 2U) * + (matrix(1U, 0U) * matrix(2U, 1U) - + matrix(1U, 1U) * matrix(2U, 0U)); +} + +/// @brief Checks that all matrix entries are finite. +bool IsFinite(const Matrix& matrix) { + for (std::size_t row = 0U; row < matrix.Rows(); ++row) { + for (std::size_t column = 0U; column < matrix.Columns(); ++column) { + if (!std::isfinite(matrix(row, column))) { + return false; + } + } + } + return true; +} + +/// @brief Checks the exact 3-by-3 proper-orthogonal frame contract. +bool IsProperOrthogonal(const Matrix& matrix) { + if (matrix.Rows() != kRotationDimension || + matrix.Columns() != kRotationDimension || !IsFinite(matrix)) { + return false; + } + + for (std::size_t row = 0U; row < kRotationDimension; ++row) { + for (std::size_t column = 0U; column < kRotationDimension; ++column) { + double value = 0.0; + for (std::size_t index = 0U; index < kRotationDimension; ++index) { + value += matrix(index, row) * matrix(index, column); + } + if (!std::isfinite(value) || + std::abs(value - (row == column ? 1.0 : 0.0)) > + kRotationStateTolerance) { + return false; + } + } + } + + const double determinant = Determinant(matrix); + return std::isfinite(determinant) && + std::abs(determinant - 1.0) <= kRotationStateTolerance; +} + +/// @brief Checks that the coordinate is finite and away from the pi branch. +bool IsPrincipalCoordinate(const Vector3& phi) { + if (!phi.IsFinite()) { + return false; + } + + const double angle = phi.Norm(); + const double pi = std::acos(-1.0); + const double margin = std::sqrt(std::numeric_limits::epsilon()); + return std::isfinite(angle) && pi - angle > margin; +} + +/// @brief Multiplies a 3-by-3 frame by a global vector. +Vector3 Multiply(const Matrix& matrix, const Vector3& vector) { + return Vector3{ + matrix(0U, 0U) * vector.X() + matrix(0U, 1U) * vector.Y() + + matrix(0U, 2U) * vector.Z(), + matrix(1U, 0U) * vector.X() + matrix(1U, 1U) * vector.Y() + + matrix(1U, 2U) * vector.Z(), + matrix(2U, 0U) * vector.X() + matrix(2U, 1U) * vector.Y() + + matrix(2U, 2U) * vector.Z()}; +} + +/// @brief Checks componentwise agreement without scale-dependent repair. +bool IsNear(const Matrix& actual, const Matrix& expected) { + if (actual.Rows() != expected.Rows() || + actual.Columns() != expected.Columns()) { + return false; + } + for (std::size_t row = 0U; row < actual.Rows(); ++row) { + for (std::size_t column = 0U; column < actual.Columns(); ++column) { + if (!std::isfinite(actual(row, column)) || + !std::isfinite(expected(row, column)) || + std::abs(actual(row, column) - expected(row, column)) > + kRotationStateTolerance) { + return false; + } + } + } + return true; +} + +/// @brief Checks componentwise agreement for a derived director. +bool IsNear(const Vector3& actual, const Vector3& expected) { + return actual.IsFinite() && expected.IsFinite() && + std::abs(actual.X() - expected.X()) <= kRotationStateTolerance && + std::abs(actual.Y() - expected.Y()) <= kRotationStateTolerance && + std::abs(actual.Z() - expected.Z()) <= kRotationStateTolerance; +} + +/// @brief Returns the stable failure used when a nonlinear state is invalid. +Result InvalidAcceptedState(const std::string& message) { + return Result::Failure(Status::Failure( + FailureCategory::kSolver, + {{Severity::kError, "invalid-accepted-state", {{}, 0U}, + "FINITE_ROTATION", "", message}})); +} + +/// @brief Validates that an existing state remains derived from its coordinate. +bool IsConsistentState(const FiniteRotationState& state, + const Matrix& initial_frame) { + if (!IsPrincipalCoordinate(state.phi) || !IsProperOrthogonal(state.q) || + !state.director.IsFinite()) { + return false; + } + + const Matrix expected_q = ExpSkew(state.phi).Multiply(initial_frame); + return IsNear(state.q, expected_q) && + IsNear(state.director, Multiply(state.q, Vector3{0.0, 0.0, 1.0})); +} + +} // namespace + +Matrix ExpSkew(const Vector3& phi) { + const Matrix skew = Skew(phi); + const Matrix skew_squared = skew.Multiply(skew); + const double theta = phi.Norm(); + const double theta_squared = theta * theta; + + double linear_coefficient = 1.0; + double quadratic_coefficient = 0.5; + if (theta >= kSmallAngleThreshold) { + linear_coefficient = std::sin(theta) / theta; + quadratic_coefficient = (1.0 - std::cos(theta)) / theta_squared; + } else { + const double theta_fourth = theta_squared * theta_squared; + const double theta_sixth = theta_fourth * theta_squared; + linear_coefficient = + 1.0 - theta_squared / 6.0 + theta_fourth / 120.0 - + theta_sixth / 5040.0; + quadratic_coefficient = + 0.5 - theta_squared / 24.0 + theta_fourth / 720.0 - + theta_sixth / 40320.0; + } + return Polynomial(skew, skew_squared, linear_coefficient, + quadratic_coefficient); +} + +Matrix LeftJacobianSO3(const Vector3& phi) { + const Matrix skew = Skew(phi); + const Matrix skew_squared = skew.Multiply(skew); + const double theta = phi.Norm(); + const double theta_squared = theta * theta; + + double linear_coefficient = 0.5; + double quadratic_coefficient = 1.0 / 6.0; + if (theta >= kSmallAngleThreshold) { + linear_coefficient = (1.0 - std::cos(theta)) / theta_squared; + quadratic_coefficient = (theta - std::sin(theta)) / + (theta_squared * theta); + } else { + const double theta_fourth = theta_squared * theta_squared; + const double theta_sixth = theta_fourth * theta_squared; + linear_coefficient = + 0.5 - theta_squared / 24.0 + theta_fourth / 720.0 - + theta_sixth / 40320.0; + quadratic_coefficient = + 1.0 / 6.0 - theta_squared / 120.0 + theta_fourth / 5040.0 - + theta_sixth / 362880.0; + } + return Polynomial(skew, skew_squared, linear_coefficient, + quadratic_coefficient); +} + +Matrix InverseTransposeLeftJacobianSO3(const Vector3& phi) { + const Matrix skew = Skew(phi); + const Matrix skew_squared = skew.Multiply(skew); + const double theta = phi.Norm(); + const double theta_squared = theta * theta; + + double quadratic_coefficient = 1.0 / 12.0; + if (theta >= kSmallAngleThreshold) { + const double half_theta = 0.5 * theta; + quadratic_coefficient = + (1.0 - half_theta / std::tan(half_theta)) / theta_squared; + } else { + const double theta_fourth = theta_squared * theta_squared; + const double theta_sixth = theta_fourth * theta_squared; + quadratic_coefficient = + 1.0 / 12.0 + theta_squared / 720.0 + theta_fourth / 30240.0 + + theta_sixth / 1209600.0; + } + return Polynomial(skew, skew_squared, 0.5, quadratic_coefficient); +} + +Result MakeFiniteRotationState( + const Vector3& phi, const Matrix& initial_frame) { + if (!IsPrincipalCoordinate(phi)) { + return InvalidAcceptedState( + "Finite rotation coordinates must be finite and remain inside the " + "principal branch margin."); + } + if (!IsProperOrthogonal(initial_frame)) { + return InvalidAcceptedState( + "The initial finite-rotation frame must be a finite proper " + "orthogonal triad."); + } + + Matrix q = ExpSkew(phi).Multiply(initial_frame); + const Vector3 director = Multiply(q, Vector3{0.0, 0.0, 1.0}); + if (!IsProperOrthogonal(q) || !director.IsFinite()) { + return InvalidAcceptedState( + "Finite rotation state construction produced an invalid triad."); + } + return Result::Success( + FiniteRotationState{phi, std::move(q), director}); +} + +Result ApplyGlobalRotationIncrement( + const FiniteRotationState& committed, const Vector3& delta_phi, + const Matrix& initial_frame) { + if (!IsProperOrthogonal(initial_frame) || + !IsConsistentState(committed, initial_frame) || + !delta_phi.IsFinite()) { + return InvalidAcceptedState( + "The accepted finite rotation state and its correction must remain " + "finite and consistent with the initial frame."); + } + + return MakeFiniteRotationState(committed.phi + delta_phi, initial_frame); +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index da05c4c..e7444f5 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -18,6 +18,7 @@ add_executable( unit/core/status_test.cpp unit/elements/element_factory_test.cpp unit/elements/euler_beam_3d_test.cpp + unit/elements/finite_rotation_test.cpp unit/elements/mitc4_shell_test.cpp unit/fem/dof_manager_test.cpp unit/math/dense_blas_internal_test.cpp diff --git a/tests/unit/elements/finite_rotation_test.cpp b/tests/unit/elements/finite_rotation_test.cpp new file mode 100644 index 0000000..913ec79 --- /dev/null +++ b/tests/unit/elements/finite_rotation_test.cpp @@ -0,0 +1,229 @@ +#include "fesa/elements/finite_rotation.h" + +#include + +#include +#include +#include +#include + +namespace fesa { +namespace { + +constexpr std::size_t kRotationDimension = 3U; + +Matrix InitialFrame() { + Matrix frame{kRotationDimension, kRotationDimension}; + frame(0U, 0U) = 1.0; + frame(1U, 2U) = -1.0; + frame(2U, 1U) = 1.0; + return frame; +} + +Matrix Transpose(const Matrix& matrix) { + Matrix result{matrix.Columns(), matrix.Rows()}; + for (std::size_t row = 0U; row < matrix.Rows(); ++row) { + for (std::size_t column = 0U; column < matrix.Columns(); ++column) { + result(column, row) = matrix(row, column); + } + } + return result; +} + +Vector3 Multiply(const Matrix& matrix, const Vector3& vector) { + return Vector3{ + matrix(0U, 0U) * vector.X() + matrix(0U, 1U) * vector.Y() + + matrix(0U, 2U) * vector.Z(), + matrix(1U, 0U) * vector.X() + matrix(1U, 1U) * vector.Y() + + matrix(1U, 2U) * vector.Z(), + matrix(2U, 0U) * vector.X() + matrix(2U, 1U) * vector.Y() + + matrix(2U, 2U) * vector.Z()}; +} + +double Determinant(const Matrix& matrix) { + return matrix(0U, 0U) * + (matrix(1U, 1U) * matrix(2U, 2U) - + matrix(1U, 2U) * matrix(2U, 1U)) - + matrix(0U, 1U) * + (matrix(1U, 0U) * matrix(2U, 2U) - + matrix(1U, 2U) * matrix(2U, 0U)) + + matrix(0U, 2U) * + (matrix(1U, 0U) * matrix(2U, 1U) - + matrix(1U, 1U) * matrix(2U, 0U)); +} + +bool IsFinite(const Matrix& matrix) { + for (std::size_t row = 0U; row < matrix.Rows(); ++row) { + for (std::size_t column = 0U; column < matrix.Columns(); ++column) { + if (!std::isfinite(matrix(row, column))) { + return false; + } + } + } + return true; +} + +void ExpectMatrixNear(const Matrix& actual, const Matrix& expected, + const double tolerance = 1.0e-12) { + ASSERT_EQ(actual.Rows(), expected.Rows()); + ASSERT_EQ(actual.Columns(), expected.Columns()); + for (std::size_t row = 0U; row < actual.Rows(); ++row) { + for (std::size_t column = 0U; column < actual.Columns(); ++column) { + EXPECT_NEAR(actual(row, column), expected(row, column), tolerance) + << "matrix entry (" << row << ", " << column << ")"; + } + } +} + +void ExpectVectorNear(const Vector3& actual, const Vector3& expected, + const double tolerance = 1.0e-12) { + EXPECT_NEAR(actual.X(), expected.X(), tolerance); + EXPECT_NEAR(actual.Y(), expected.Y(), tolerance); + EXPECT_NEAR(actual.Z(), expected.Z(), tolerance); +} + +void ExpectProperOrthogonal(const Matrix& rotation) { + const Matrix orthogonality = Transpose(rotation).Multiply(rotation); + ASSERT_EQ(orthogonality.Rows(), kRotationDimension); + ASSERT_EQ(orthogonality.Columns(), kRotationDimension); + for (std::size_t row = 0U; row < kRotationDimension; ++row) { + for (std::size_t column = 0U; column < kRotationDimension; ++column) { + EXPECT_NEAR(orthogonality(row, column), row == column ? 1.0 : 0.0, + 1.0e-12); + } + } + EXPECT_NEAR(Determinant(rotation), 1.0, 1.0e-12); +} + +TEST(FiniteRotation, ZeroCoordinatePreservesInitialFrameAndDirector) { + const Matrix initial_frame = InitialFrame(); + + const Result result = + MakeFiniteRotationState(Vector3{}, initial_frame); + + ASSERT_TRUE(result.HasValue()); + EXPECT_EQ(result.Value().phi, Vector3{}); + ExpectMatrixNear(result.Value().q, initial_frame); + ExpectVectorNear(result.Value().director, + Multiply(initial_frame, Vector3{0.0, 0.0, 1.0})); +} + +TEST(FiniteRotation, FiniteCoordinateBuildsProperTriadAndDirector) { + const Matrix initial_frame = InitialFrame(); + const Vector3 phi{0.3, -0.4, 0.5}; + + const Result result = + MakeFiniteRotationState(phi, initial_frame); + + ASSERT_TRUE(result.HasValue()); + const Matrix expected_q = ExpSkew(phi).Multiply(initial_frame); + ExpectMatrixNear(result.Value().q, expected_q); + ExpectProperOrthogonal(result.Value().q); + ExpectVectorNear(result.Value().director, + Multiply(result.Value().q, Vector3{0.0, 0.0, 1.0})); +} + +TEST(FiniteRotation, GlobalIncrementRebuildsFixedReferenceOrientation) { + const Matrix initial_frame = InitialFrame(); + const Vector3 phi{0.2, -0.1, 0.3}; + const Vector3 delta_phi{-0.05, 0.15, 0.1}; + const Result committed = + MakeFiniteRotationState(phi, initial_frame); + ASSERT_TRUE(committed.HasValue()); + + const Result updated = + ApplyGlobalRotationIncrement(committed.Value(), delta_phi, initial_frame); + + ASSERT_TRUE(updated.HasValue()); + const Vector3 expected_phi = phi + delta_phi; + EXPECT_EQ(updated.Value().phi, expected_phi); + ExpectMatrixNear(updated.Value().q, + ExpSkew(expected_phi).Multiply(initial_frame)); + ExpectVectorNear(updated.Value().director, + Multiply(updated.Value().q, Vector3{0.0, 0.0, 1.0})); + ExpectMatrixNear(committed.Value().q, ExpSkew(phi).Multiply(initial_frame)); +} + +TEST(FiniteRotation, RejectsCoordinatesInsidePrincipalBranchMargin) { + const Matrix initial_frame = InitialFrame(); + const double pi = std::acos(-1.0); + const double margin = std::sqrt(std::numeric_limits::epsilon()); + + EXPECT_TRUE(MakeFiniteRotationState(Vector3{pi - 2.0 * margin, 0.0, 0.0}, + initial_frame) + .HasValue()); + const Result ambiguous = + MakeFiniteRotationState(Vector3{pi - margin, 0.0, 0.0}, initial_frame); + ASSERT_FALSE(ambiguous.HasValue()); + ASSERT_FALSE(ambiguous.GetStatus().IsOk()); + ASSERT_EQ(ambiguous.GetStatus().Diagnostics().size(), 1U); + EXPECT_EQ(ambiguous.GetStatus().Diagnostics()[0U].code, + "invalid-accepted-state"); +} + +TEST(FiniteRotation, + JacobiansAreFiniteInverseTransposeAndDerivativeConsistent) { + const double pi = std::acos(-1.0); + const std::array rotations{ + Vector3{1.0e-9, -2.0e-9, 3.0e-9}, Vector3{0.4, -0.2, 0.3}, + Vector3{0.0, pi - 1.0e-3, 0.0}}; + const Vector3 direction{0.2, -0.3, 0.5}; + const double perturbation = 1.0e-7; + + for (const Vector3& phi : rotations) { + const Matrix left_jacobian = LeftJacobianSO3(phi); + const Matrix inverse_transpose = InverseTransposeLeftJacobianSO3(phi); + EXPECT_TRUE(IsFinite(left_jacobian)); + EXPECT_TRUE(IsFinite(inverse_transpose)); + + const Matrix identity = + Transpose(left_jacobian).Multiply(inverse_transpose); + for (std::size_t row = 0U; row < kRotationDimension; ++row) { + for (std::size_t column = 0U; column < kRotationDimension; ++column) { + EXPECT_NEAR(identity(row, column), row == column ? 1.0 : 0.0, + 1.0e-11); + } + } + + const Vector3 director = Multiply(ExpSkew(phi), Vector3{0.0, 0.0, 1.0}); + const Vector3 positive = + Multiply(ExpSkew(phi + perturbation * direction), + Vector3{0.0, 0.0, 1.0}); + const Vector3 negative = + Multiply(ExpSkew(phi - perturbation * direction), + Vector3{0.0, 0.0, 1.0}); + const Vector3 observed = (positive - negative) / (2.0 * perturbation); + const Vector3 expected = + Multiply(left_jacobian, direction).Cross(director); + ExpectVectorNear(observed, expected, 1.0e-8); + } +} + +TEST(FiniteRotation, RejectsNonfiniteCoordinatesAndInvalidInitialFrames) { + const Matrix initial_frame = InitialFrame(); + const double infinity = std::numeric_limits::infinity(); + const Result nonfinite = + MakeFiniteRotationState(Vector3{infinity, 0.0, 0.0}, initial_frame); + ASSERT_FALSE(nonfinite.HasValue()); + ASSERT_EQ(nonfinite.GetStatus().Diagnostics().size(), 1U); + EXPECT_EQ(nonfinite.GetStatus().Diagnostics()[0U].code, + "invalid-accepted-state"); + + Matrix invalid_frame = initial_frame; + invalid_frame(0U, 0U) = 2.0; + EXPECT_FALSE(MakeFiniteRotationState(Vector3{}, invalid_frame).HasValue()); + + const Result committed = + MakeFiniteRotationState(Vector3{}, initial_frame); + ASSERT_TRUE(committed.HasValue()); + const Result invalid_increment = + ApplyGlobalRotationIncrement(committed.Value(), + Vector3{0.0, infinity, 0.0}, initial_frame); + ASSERT_FALSE(invalid_increment.HasValue()); + ASSERT_EQ(invalid_increment.GetStatus().Diagnostics().size(), 1U); + EXPECT_EQ(invalid_increment.GetStatus().Diagnostics()[0U].code, + "invalid-accepted-state"); +} + +} // namespace +} // namespace fesa From f767024aa828c4df85265fbbf3c534d23c4284b4 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:26:00 +0900 Subject: [PATCH 06/32] chore(nonlinear-static-newton-raphson): step 2 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 6e9107f..e724d5d 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -21,7 +21,10 @@ { "step": 2, "name": "finite-rotation-state", - "status": "pending" + "status": "completed", + "summary": "Added checked SO(3) finite-rotation state, Jacobians, branch rejection, and unit coverage.", + "started_at": "2026-08-24T13:17:18+0900", + "completed_at": "2026-08-24T13:26:00+0900" }, { "step": 3, From 18f42f72df90b6171fcefc3274cbc6d657392ed6 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:36:35 +0900 Subject: [PATCH 07/32] feat(nonlinear-static-newton-raphson): step 3 - nonlinear-mitc4-kinematics-and-recovery --- include/fesa/elements/nonlinear_mitc4_shell.h | 86 +++ src/fesa/CMakeLists.txt | 1 + src/fesa/elements/nonlinear_mitc4_shell.cpp | 614 ++++++++++++++++++ tests/CMakeLists.txt | 1 + .../elements/nonlinear_mitc4_shell_test.cpp | 263 ++++++++ 5 files changed, 965 insertions(+) create mode 100644 include/fesa/elements/nonlinear_mitc4_shell.h create mode 100644 src/fesa/elements/nonlinear_mitc4_shell.cpp create mode 100644 tests/unit/elements/nonlinear_mitc4_shell_test.cpp diff --git a/include/fesa/elements/nonlinear_mitc4_shell.h b/include/fesa/elements/nonlinear_mitc4_shell.h new file mode 100644 index 0000000..e9fcb73 --- /dev/null +++ b/include/fesa/elements/nonlinear_mitc4_shell.h @@ -0,0 +1,86 @@ +#ifndef FESA_ELEMENTS_NONLINEAR_MITC4_SHELL_H_ +#define FESA_ELEMENTS_NONLINEAR_MITC4_SHELL_H_ + +#include +#include + +#include "fesa/core/status.h" +#include "fesa/elements/mitc4_shell.h" +#include "fesa/math/matrix.h" +#include "fesa/math/vector3.h" +#include "fesa/model/model_types.h" +#include "fesa/results/result_records.h" + +namespace fesa { + +/// @brief Stores one four-node nonlinear shell trial in global coordinates. +struct NonlinearMitc4TrialDofs { + std::array displacement; + std::array rotation_vector; +}; + +/// @brief Stores physical shell recovery at one midsurface Gauss location. +struct NonlinearMitc4RecoveryPoint { + ShellMidsurfaceLocation location; + std::array natural_coordinates; + Mitc4LocalFrame local_frame; + std::array generalized_strain; + std::array section_resultant; + std::array stress; +}; + +/// @brief Stores the fixed four-row nonlinear physical recovery inventory. +struct NonlinearMitc4Recovery { + std::array gauss_points; + double physical_strain_energy; +}; + +/// @brief Evaluates fixed-reference Total Lagrangian MITC4 kinematics. +/// @note This class owns no mutable trial or accepted analysis state. +class NonlinearMitc4Shell { + public: + /// @brief Creates one checked nonlinear MITC4 element kinematics object. + /// @param nodes Four non-owning source nodes in natural source order. + /// @param initial_frames Matching fixed initial node frames in source order. + /// @param section Centered positive-thickness shell section. + /// @param material Homogeneous isotropic material with shell-valid constants. + /// @return A checked evaluator or a structured model failure. + static Result Create( + std::array nodes, + std::array initial_frames, + const ShellSection& section, const LinearElasticMaterial& material); + + /// @brief Evaluates trial physical kinematics and fixed recovery rows. + /// @param trial Global nodal translation and fixed-global rotation vectors. + /// @return Physical recovery or a fail-closed trial diagnostic. + [[nodiscard]] Result EvaluateKinematics( + const NonlinearMitc4TrialDofs& trial) const; + + /// @brief Recovers the same physical quantities for one complete trial. + /// @param trial Global nodal translation and fixed-global rotation vectors. + /// @return Four ordered Gauss rows without nodal stress projection. + [[nodiscard]] Result RecoverState( + const NonlinearMitc4TrialDofs& trial) const; + + private: + /// @brief Retains validated fixed-reference data without analysis ownership. + NonlinearMitc4Shell(std::array coordinates, + std::array initial_frames, + std::array initial_directors, + double thickness, double youngs_modulus, + double poisson_ratio, SourceLocation source_location, + std::string identity); + + std::array coordinates_; + std::array initial_frames_; + std::array initial_directors_; + double thickness_; + double youngs_modulus_; + double poisson_ratio_; + SourceLocation source_location_; + std::string identity_; +}; + +} // namespace fesa + +#endif // FESA_ELEMENTS_NONLINEAR_MITC4_SHELL_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 725a8b1..de0913d 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -19,6 +19,7 @@ add_library( elements/euler_beam_3d.cpp elements/finite_rotation.cpp elements/mitc4_shell.cpp + elements/nonlinear_mitc4_shell.cpp fem/dof_manager.cpp io/abaqus/domain_builder.cpp io/abaqus/domain_mapping_context.cpp diff --git a/src/fesa/elements/nonlinear_mitc4_shell.cpp b/src/fesa/elements/nonlinear_mitc4_shell.cpp new file mode 100644 index 0000000..0fa7548 --- /dev/null +++ b/src/fesa/elements/nonlinear_mitc4_shell.cpp @@ -0,0 +1,614 @@ +#include "fesa/elements/nonlinear_mitc4_shell.h" + +#include +#include +#include +#include +#include +#include + +#include "fesa/elements/finite_rotation.h" + +namespace fesa { +namespace { + +constexpr std::size_t kNodeCount = 4U; +constexpr double kFrameTolerance = 1.0e-12; +constexpr double kDirectorOppositionTolerance = 1.0e-8; +constexpr double kShearCorrection = 5.0 / 6.0; + +using Tensor = std::array, 3>; +using EngineeringStrain = std::array; +using EngineeringStress = std::array; + +struct Geometry { + std::array reference_covariant; + std::array current_covariant; + std::array reciprocal; + Mitc4LocalFrame local_frame; + double reference_jacobian; +}; + +struct PointEvaluation { + Geometry geometry; + EngineeringStrain strain; + EngineeringStress stress; +}; + +/// @brief Builds one deterministic structured nonlinear-shell failure. +template +Result Failure(const std::string& code, const SourceLocation& location, + const std::string& identity, std::string message) { + return Result::Failure(Status::Failure( + FailureCategory::kModel, + {{Severity::kError, code, location, "*ELEMENT", identity, + std::move(message)}})); +} + +/// @brief Builds the stable source label concatenation used by diagnostics. +std::string ElementIdentity(const std::array& nodes) { + std::string identity; + for (const Node* node : nodes) { + if (node == nullptr) { + continue; + } + if (!identity.empty()) { + identity += "-"; + } + identity += node->source_id.source_label_text; + } + return identity; +} + +/// @brief Forms a weighted vector sum in source-node order. +Vector3 WeightedSum(const std::array& weights, + const std::array& values) { + Vector3 result{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + result = result + weights[node] * values[node]; + } + return result; +} + +/// @brief Forms a stable derivative sum after cancelling the constant term. +Vector3 DerivativeSum(const std::array& derivatives, + const std::array& values) { + std::array relative{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + relative[node] = values[node] - values[0U]; + } + return WeightedSum(derivatives, relative); +} + +/// @brief Returns a frame matrix whose columns are a, b and the director. +Matrix FrameMatrix(const ShellNodeInitialFrame& frame) { + Matrix result{3U, 3U}; + for (std::size_t row = 0U; row < 3U; ++row) { + result(row, 0U) = frame.tangent_a[row]; + result(row, 1U) = frame.tangent_b[row]; + result(row, 2U) = frame.director[row]; + } + return result; +} + +/// @brief Checks every scalar in a tensor before recovery commits it. +bool IsFinite(const Tensor& tensor) { + for (const auto& row : tensor) { + for (const double value : row) { + if (!std::isfinite(value)) { + return false; + } + } + } + return true; +} + +/// @brief Checks every scalar in one fixed-size engineering quantity. +template +bool IsFinite(const std::array& values) { + return std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); }); +} + +/// @brief Evaluates a determinant from covariant basis columns. +double Determinant(const std::array& covariant) { + return covariant[0U].Dot(covariant[1U].Cross(covariant[2U])); +} + +/// @brief Builds one proper fixed reference local frame at a midsurface point. +bool MakeLocalFrame(const Vector3& midsurface_xi, const Vector3& midsurface_eta, + const Vector3& director, Mitc4LocalFrame& frame) { + const Vector3 area = midsurface_xi.Cross(midsurface_eta); + const double director_norm = director.Norm(); + if (!area.IsFinite() || !director.IsFinite() || + !(director_norm > kDirectorOppositionTolerance) || + !std::isfinite(director_norm)) { + return false; + } + + const Vector3 e3 = director / director_norm; + if (!(area.Dot(e3) > 0.0)) { + return false; + } + const Vector3 e1_candidate = midsurface_xi - midsurface_xi.Dot(e3) * e3; + const double e1_norm = e1_candidate.Norm(); + if (!e1_candidate.IsFinite() || !std::isfinite(e1_norm) || + !(e1_norm > 0.0)) { + return false; + } + const Vector3 e1 = e1_candidate / e1_norm; + const Vector3 e2 = e3.Cross(e1); + if (!e2.IsFinite()) { + return false; + } + frame = {e1.Components(), e2.Components(), e3.Components()}; + return true; +} + +/// @brief Evaluates fixed-reference and trial covariant geometry together. +bool EvaluateGeometry(const std::array& coordinates, + const std::array& initial_directors, + const std::array& directors, + const NonlinearMitc4TrialDofs& trial, + const double thickness, const double xi, const double eta, + const double zeta, Geometry& geometry) { + const Mitc4ShapeFunctions shape = Mitc4Shell::ShapeFunctions(xi, eta); + const Vector3 reference_xi = + DerivativeSum(shape.xi_derivatives, coordinates); + const Vector3 reference_eta = + DerivativeSum(shape.eta_derivatives, coordinates); + const Vector3 initial_director_xi = + DerivativeSum(shape.xi_derivatives, initial_directors); + const Vector3 initial_director_eta = + DerivativeSum(shape.eta_derivatives, initial_directors); + const Vector3 initial_director = WeightedSum(shape.values, initial_directors); + const Vector3 displacement_xi = + DerivativeSum(shape.xi_derivatives, trial.displacement); + const Vector3 displacement_eta = + DerivativeSum(shape.eta_derivatives, trial.displacement); + const Vector3 director_xi = DerivativeSum(shape.xi_derivatives, directors); + const Vector3 director_eta = DerivativeSum(shape.eta_derivatives, directors); + const Vector3 director = WeightedSum(shape.values, directors); + const double half_thickness = 0.5 * thickness; + + geometry.reference_covariant[0U] = + reference_xi + half_thickness * zeta * initial_director_xi; + geometry.reference_covariant[1U] = + reference_eta + half_thickness * zeta * initial_director_eta; + geometry.reference_covariant[2U] = half_thickness * initial_director; + geometry.current_covariant[0U] = + reference_xi + displacement_xi + half_thickness * zeta * director_xi; + geometry.current_covariant[1U] = + reference_eta + displacement_eta + half_thickness * zeta * director_eta; + geometry.current_covariant[2U] = half_thickness * director; + geometry.reference_jacobian = Determinant(geometry.reference_covariant); + const double current_jacobian = Determinant(geometry.current_covariant); + + if (!reference_xi.IsFinite() || !reference_eta.IsFinite() || + !initial_director.IsFinite() || !director.IsFinite() || + !(director.Norm() > kDirectorOppositionTolerance) || + !std::isfinite(geometry.reference_jacobian) || + !(geometry.reference_jacobian > 0.0) || + !std::isfinite(current_jacobian) || !(current_jacobian > 0.0)) { + return false; + } + + geometry.reciprocal[0U] = + geometry.reference_covariant[1U].Cross(geometry.reference_covariant[2U]) / + geometry.reference_jacobian; + geometry.reciprocal[1U] = + geometry.reference_covariant[2U].Cross(geometry.reference_covariant[0U]) / + geometry.reference_jacobian; + geometry.reciprocal[2U] = + geometry.reference_covariant[0U].Cross(geometry.reference_covariant[1U]) / + geometry.reference_jacobian; + if (!geometry.reciprocal[0U].IsFinite() || + !geometry.reciprocal[1U].IsFinite() || + !geometry.reciprocal[2U].IsFinite()) { + return false; + } + return MakeLocalFrame(reference_xi, reference_eta, initial_director, + geometry.local_frame); +} + +/// @brief Forms the direct Green-Lagrange covariant strain with E33 excluded. +Tensor DirectStrain(const Geometry& geometry) { + Tensor strain{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + strain[row][column] = + 0.5 * (geometry.current_covariant[row].Dot( + geometry.current_covariant[column]) - + geometry.reference_covariant[row].Dot( + geometry.reference_covariant[column])); + } + } + strain[2U][2U] = 0.0; + return strain; +} + +/// @brief Reconstructs a fixed-reference Cartesian strain from covariant data. +Tensor CartesianStrain(const Tensor& covariant, + const std::array& reciprocal) { + Tensor cartesian{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + for (std::size_t first = 0U; first < 3U; ++first) { + for (std::size_t second = 0U; second < 3U; ++second) { + cartesian[row][column] += covariant[first][second] * + reciprocal[first][row] * + reciprocal[second][column]; + } + } + } + } + return cartesian; +} + +/// @brief Evaluates a tensor component in a fixed local reference frame. +double FrameComponent(const Vector3& left, const Tensor& tensor, + const Vector3& right) { + double value = 0.0; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + value += left[row] * tensor[row][column] * right[column]; + } + } + return value; +} + +/// @brief Converts fixed-reference Cartesian strain to engineering components. +EngineeringStrain LocalEngineering(const Tensor& tensor, + const Mitc4LocalFrame& frame) { + const Vector3 e1{frame.e1}; + const Vector3 e2{frame.e2}; + const Vector3 e3{frame.e3}; + return {FrameComponent(e1, tensor, e1), FrameComponent(e2, tensor, e2), + 2.0 * FrameComponent(e1, tensor, e2), + 2.0 * FrameComponent(e1, tensor, e3), + 2.0 * FrameComponent(e2, tensor, e3)}; +} + +/// @brief Applies the approved homogeneous plane-stress plus shear law. +EngineeringStress Stress(const EngineeringStrain& strain, const double youngs, + const double poisson) { + const double factor = youngs / (1.0 - poisson * poisson); + const double shear = kShearCorrection * youngs / (2.0 * (1.0 + poisson)); + return {factor * (strain[0U] + poisson * strain[1U]), + factor * (poisson * strain[0U] + strain[1U]), + factor * (1.0 - poisson) * 0.5 * strain[2U], + shear * strain[3U], shear * strain[4U]}; +} + +/// @brief Evaluates direct strain at one mandatory edge-midpoint tying point. +bool EvaluateTyingSample(const std::array& coordinates, + const std::array& initial_directors, + const std::array& directors, + const NonlinearMitc4TrialDofs& trial, + const double thickness, const double xi, + const double eta, Tensor& strain) { + Geometry geometry{}; + if (!EvaluateGeometry(coordinates, initial_directors, directors, trial, + thickness, xi, eta, 0.0, geometry)) { + return false; + } + strain = DirectStrain(geometry); + return IsFinite(strain); +} + +/// @brief Computes one MITC-projected local strain and material stress point. +bool EvaluatePoint(const std::array& coordinates, + const std::array& initial_directors, + const std::array& directors, + const NonlinearMitc4TrialDofs& trial, + const std::array& tying_samples, + const double thickness, const double youngs, + const double poisson, const double xi, const double eta, + const double zeta, PointEvaluation& point) { + if (!EvaluateGeometry(coordinates, initial_directors, directors, trial, + thickness, xi, eta, zeta, point.geometry)) { + return false; + } + Tensor covariant = DirectStrain(point.geometry); + const Mitc4TyingWeights weights = Mitc4Shell::TyingWeights(xi, eta); + covariant[0U][2U] = weights.xi_zeta[0U] * tying_samples[0U][0U][2U] + + weights.xi_zeta[1U] * tying_samples[1U][0U][2U]; + covariant[2U][0U] = covariant[0U][2U]; + covariant[1U][2U] = weights.eta_zeta[0U] * tying_samples[2U][1U][2U] + + weights.eta_zeta[1U] * tying_samples[3U][1U][2U]; + covariant[2U][1U] = covariant[1U][2U]; + const Tensor cartesian = CartesianStrain(covariant, point.geometry.reciprocal); + point.strain = LocalEngineering(cartesian, point.geometry.local_frame); + point.stress = Stress(point.strain, youngs, poisson); + return IsFinite(covariant) && IsFinite(cartesian) && IsFinite(point.strain) && + IsFinite(point.stress); +} + +/// @brief Tests the fixed-order physical recovery inventory for finite values. +bool IsFinite(const NonlinearMitc4Recovery& recovery) { + if (!std::isfinite(recovery.physical_strain_energy)) { + return false; + } + for (const auto& point : recovery.gauss_points) { + if (!IsFinite(point.generalized_strain) || + !IsFinite(point.section_resultant)) { + return false; + } + for (const auto& stress : point.stress) { + if (!IsFinite(stress.components)) { + return false; + } + } + } + return true; +} + +} // namespace + +NonlinearMitc4Shell::NonlinearMitc4Shell( + std::array coordinates, std::array initial_frames, + std::array initial_directors, const double thickness, + const double youngs_modulus, const double poisson_ratio, + SourceLocation source_location, std::string identity) + : coordinates_{std::move(coordinates)}, + initial_frames_{std::move(initial_frames)}, + initial_directors_{std::move(initial_directors)}, + thickness_{thickness}, + youngs_modulus_{youngs_modulus}, + poisson_ratio_{poisson_ratio}, + source_location_{std::move(source_location)}, + identity_{std::move(identity)} {} + +Result NonlinearMitc4Shell::Create( + std::array nodes, + std::array initial_frames, + const ShellSection& section, const LinearElasticMaterial& material) { + const std::string identity = ElementIdentity(nodes); + if (std::any_of(nodes.begin(), nodes.end(), + [](const Node* node) { return node == nullptr; })) { + return Failure( + "invalid-nonlinear-shell-geometry", section.location, identity, + "Nonlinear MITC4 creation requires four valid node references."); + } + + std::array coordinates{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + coordinates[node] = Vector3{nodes[node]->coordinates}; + if (!coordinates[node].IsFinite()) { + return Failure( + "invalid-nonlinear-shell-geometry", nodes[node]->location, identity, + "Nonlinear MITC4 node coordinates must be finite."); + } + for (std::size_t previous = 0U; previous < node; ++previous) { + if (coordinates[node] == coordinates[previous]) { + return Failure( + "invalid-nonlinear-shell-geometry", nodes[node]->location, + identity, "Nonlinear MITC4 nodes must have distinct coordinates."); + } + if (initial_frames[node].node_index == initial_frames[previous].node_index) { + return Failure( + "invalid-nonlinear-shell-frame", nodes[node]->location, identity, + "Nonlinear MITC4 initial frames must identify four distinct nodes."); + } + } + } + + std::array frames{Matrix{3U, 3U}, Matrix{3U, 3U}, + Matrix{3U, 3U}, Matrix{3U, 3U}}; + std::array directors{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + frames[node] = FrameMatrix(initial_frames[node]); + const auto state = MakeFiniteRotationState(Vector3{}, frames[node]); + if (!state.HasValue()) { + return Failure( + "invalid-nonlinear-shell-frame", nodes[node]->location, identity, + "Nonlinear MITC4 initial frames must be finite proper triads."); + } + directors[node] = state.Value().director; + if ((directors[node] - Vector3{initial_frames[node].director}).Norm() > + kFrameTolerance) { + return Failure( + "invalid-nonlinear-shell-frame", nodes[node]->location, identity, + "Nonlinear MITC4 initial frame director must be its third axis."); + } + } + + const Mitc4ShapeFunctions center = Mitc4Shell::ShapeFunctions(0.0, 0.0); + const Vector3 center_xi = DerivativeSum(center.xi_derivatives, coordinates); + const Vector3 center_eta = DerivativeSum(center.eta_derivatives, coordinates); + const Vector3 center_area = center_xi.Cross(center_eta); + const double center_measure = center_area.Norm(); + if (!center_area.IsFinite() || !std::isfinite(center_measure) || + !(center_measure > 0.0)) { + return Failure( + "invalid-nonlinear-shell-geometry", nodes[0U]->location, identity, + "Nonlinear MITC4 center surface basis must be finite and nonzero."); + } + const Vector3 positive_face = center_area / center_measure; + if (std::any_of(directors.begin(), directors.end(), + [&positive_face](const Vector3& director) { + return !(positive_face.Dot(director) > 0.0); + })) { + return Failure( + "invalid-nonlinear-shell-frame", nodes[0U]->location, identity, + "Nonlinear MITC4 initial directors must follow the source positive face."); + } + + if (!std::isfinite(section.thickness) || !(section.thickness > 0.0)) { + return Failure( + "invalid-nonlinear-shell-section", section.location, identity, + "Nonlinear MITC4 shell thickness must be finite and positive."); + } + if (!std::isfinite(material.youngs_modulus) || + !(material.youngs_modulus > 0.0) || + !std::isfinite(material.poisson_ratio) || + !(material.poisson_ratio > -1.0) || !(material.poisson_ratio < 0.5)) { + return Failure( + "invalid-nonlinear-shell-material", material.location, identity, + "Nonlinear MITC4 requires finite E>0 and -1location, + identity}; + const auto reference = shell.EvaluateKinematics(NonlinearMitc4TrialDofs{}); + if (!reference.HasValue()) { + return Result::Failure(reference.GetStatus()); + } + return Result::Success(std::move(shell)); +} + +Result NonlinearMitc4Shell::EvaluateKinematics( + const NonlinearMitc4TrialDofs& trial) const { + std::array directors{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + if (!trial.displacement[node].IsFinite() || + !trial.rotation_vector[node].IsFinite()) { + return Failure( + "invalid-nonlinear-shell-trial", source_location_, identity_, + "Nonlinear MITC4 trial displacements and rotations must be finite."); + } + const auto state = + MakeFiniteRotationState(trial.rotation_vector[node], initial_frames_[node]); + if (!state.HasValue()) { + return Failure( + "invalid-nonlinear-shell-rotation", source_location_, identity_, + "Nonlinear MITC4 trial rotations must remain in the principal chart."); + } + directors[node] = state.Value().director; + } + for (std::size_t node = 0U; node < kNodeCount; ++node) { + for (std::size_t other = 0U; other < node; ++other) { + if (!(directors[node].Dot(directors[other]) > + -1.0 + kDirectorOppositionTolerance)) { + return Failure( + "invalid-nonlinear-shell-director", source_location_, identity_, + "Nonlinear MITC4 trial directors must not be opposed."); + } + } + } + + Geometry center{}; + if (!EvaluateGeometry(coordinates_, initial_directors_, directors, trial, + thickness_, 0.0, 0.0, 0.0, center)) { + return Failure( + "invalid-nonlinear-shell-geometry", source_location_, identity_, + "Nonlinear MITC4 center reference or trial geometry is invalid."); + } + + constexpr std::array, 4> tying_locations{ + std::array{0.0, -1.0}, std::array{0.0, 1.0}, + std::array{-1.0, 0.0}, std::array{1.0, 0.0}}; + std::array tying_samples{}; + for (std::size_t point = 0U; point < tying_locations.size(); ++point) { + if (!EvaluateTyingSample(coordinates_, initial_directors_, directors, trial, + thickness_, tying_locations[point][0U], + tying_locations[point][1U], tying_samples[point])) { + return Failure( + "invalid-nonlinear-shell-geometry", source_location_, identity_, + "Nonlinear MITC4 tying-point reference or trial geometry is invalid."); + } + } + + const double gauss = 1.0 / std::sqrt(3.0); + constexpr std::array locations{ + ShellMidsurfaceLocation::kGp1, ShellMidsurfaceLocation::kGp2, + ShellMidsurfaceLocation::kGp3, ShellMidsurfaceLocation::kGp4}; + const std::array, 4> surface_points{ + std::array{-gauss, -gauss}, + std::array{gauss, -gauss}, + std::array{gauss, gauss}, + std::array{-gauss, gauss}}; + constexpr std::array thickness_gauss{-1.0, 1.0}; + constexpr std::array stress_zeta{-1.0, 0.0, 1.0}; + constexpr std::array stress_position{ + ShellSectionPosition::kBottom, ShellSectionPosition::kMiddle, + ShellSectionPosition::kTop}; + + NonlinearMitc4Recovery recovery{}; + for (std::size_t surface = 0U; surface < surface_points.size(); ++surface) { + auto& row = recovery.gauss_points[surface]; + row.location = locations[surface]; + row.natural_coordinates = surface_points[surface]; + Geometry midpoint{}; + if (!EvaluateGeometry(coordinates_, initial_directors_, directors, trial, + thickness_, row.natural_coordinates[0U], + row.natural_coordinates[1U], 0.0, midpoint)) { + return Failure( + "invalid-nonlinear-shell-geometry", source_location_, identity_, + "Nonlinear MITC4 midsurface recovery geometry is invalid."); + } + row.local_frame = midpoint.local_frame; + + for (const double thickness_sign : thickness_gauss) { + PointEvaluation point{}; + if (!EvaluatePoint(coordinates_, initial_directors_, directors, trial, + tying_samples, thickness_, youngs_modulus_, + poisson_ratio_, row.natural_coordinates[0U], + row.natural_coordinates[1U], thickness_sign * gauss, + point)) { + return Failure( + "invalid-nonlinear-shell-geometry", source_location_, identity_, + "Nonlinear MITC4 volume recovery geometry is invalid."); + } + for (std::size_t component = 0U; component < 3U; ++component) { + row.generalized_strain[component] += 0.5 * point.strain[component]; + row.generalized_strain[3U + component] += + 3.0 * thickness_sign * gauss * point.strain[component] / + thickness_; + row.section_resultant[component] += + 0.5 * thickness_ * point.stress[component]; + row.section_resultant[3U + component] += + 0.25 * thickness_ * thickness_sign * gauss * point.stress[component]; + } + for (std::size_t component = 0U; component < 2U; ++component) { + row.generalized_strain[6U + component] += + 0.5 * point.strain[3U + component]; + row.section_resultant[6U + component] += + 0.5 * thickness_ * point.stress[3U + component]; + } + double density = 0.0; + for (std::size_t component = 0U; component < point.strain.size(); + ++component) { + density += point.strain[component] * point.stress[component]; + } + recovery.physical_strain_energy += + 0.5 * density * point.geometry.reference_jacobian; + } + + for (std::size_t position = 0U; position < stress_zeta.size(); ++position) { + PointEvaluation point{}; + if (!EvaluatePoint(coordinates_, initial_directors_, directors, trial, + tying_samples, thickness_, youngs_modulus_, + poisson_ratio_, row.natural_coordinates[0U], + row.natural_coordinates[1U], stress_zeta[position], + point)) { + return Failure( + "invalid-nonlinear-shell-geometry", source_location_, identity_, + "Nonlinear MITC4 section-position recovery geometry is invalid."); + } + row.stress[position] = {stress_position[position], stress_zeta[position], + {point.stress[0U], point.stress[1U], + point.stress[2U]}}; + } + } + + if (!IsFinite(recovery)) { + return Failure( + "invalid-nonlinear-shell-recovery", source_location_, identity_, + "Nonlinear MITC4 physical recovery must remain finite."); + } + return Result::Success(std::move(recovery)); +} + +Result NonlinearMitc4Shell::RecoverState( + const NonlinearMitc4TrialDofs& trial) const { + return EvaluateKinematics(trial); +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e7444f5..69d92e9 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -20,6 +20,7 @@ add_executable( unit/elements/euler_beam_3d_test.cpp unit/elements/finite_rotation_test.cpp unit/elements/mitc4_shell_test.cpp + unit/elements/nonlinear_mitc4_shell_test.cpp unit/fem/dof_manager_test.cpp unit/math/dense_blas_internal_test.cpp unit/math/matrix_test.cpp diff --git a/tests/unit/elements/nonlinear_mitc4_shell_test.cpp b/tests/unit/elements/nonlinear_mitc4_shell_test.cpp new file mode 100644 index 0000000..f293d18 --- /dev/null +++ b/tests/unit/elements/nonlinear_mitc4_shell_test.cpp @@ -0,0 +1,263 @@ +#include "fesa/elements/nonlinear_mitc4_shell.h" + +#include + +#include +#include +#include +#include +#include +#include + +#include "fesa/elements/finite_rotation.h" +#include "fesa/elements/mitc4_shell.h" +#include "fesa/model/model_types.h" + +namespace { + +using Vector3 = std::array; + +fesa::Node Node(const std::int64_t label, const Vector3 coordinates) { + return {{"Shell-Instance", label, std::to_string(label)}, coordinates, + {"nonlinear-mitc4.inp", static_cast(label)}}; +} + +std::array Nodes() { + return {Node(1, {-1.0, -1.0, 0.0}), Node(2, {1.0, -1.0, 0.0}), + Node(3, {1.0, 1.0, 0.0}), Node(4, {-1.0, 1.0, 0.0})}; +} + +std::array NodePointers( + const std::array& nodes) { + return {&nodes[0], &nodes[1], &nodes[2], &nodes[3]}; +} + +std::array Frames() { + return {{{0U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {1U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {2U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {3U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}}}; +} + +fesa::ShellSection Section() { + return {"Section", 0.2, 0U, {"nonlinear-mitc4.inp", 20U}}; +} + +fesa::LinearElasticMaterial Material() { + return {"Material", 120.0, 0.25, {"nonlinear-mitc4.inp", 21U}}; +} + +fesa::NonlinearMitc4TrialDofs ZeroTrial() { return {}; } + +fesa::Vector3 Multiply(const fesa::Matrix& matrix, const fesa::Vector3& value) { + return {matrix(0U, 0U) * value.X() + matrix(0U, 1U) * value.Y() + + matrix(0U, 2U) * value.Z(), + matrix(1U, 0U) * value.X() + matrix(1U, 1U) * value.Y() + + matrix(1U, 2U) * value.Z(), + matrix(2U, 0U) * value.X() + matrix(2U, 1U) * value.Y() + + matrix(2U, 2U) * value.Z()}; +} + +void ExpectZeroRecovery(const fesa::NonlinearMitc4Recovery& recovery) { + EXPECT_DOUBLE_EQ(recovery.physical_strain_energy, 0.0); + for (const auto& point : recovery.gauss_points) { + for (const double value : point.generalized_strain) { + EXPECT_DOUBLE_EQ(value, 0.0); + } + for (const double value : point.section_resultant) { + EXPECT_DOUBLE_EQ(value, 0.0); + } + for (const auto& stress : point.stress) { + for (const double value : stress.components) { + EXPECT_DOUBLE_EQ(value, 0.0); + } + } + } +} + +fesa::NonlinearMitc4Shell Shell(const std::array& nodes) { + const auto result = fesa::NonlinearMitc4Shell::Create( + NodePointers(nodes), Frames(), Section(), Material()); + EXPECT_TRUE(result.HasValue()); + return result.Value(); +} + +// NSNR-ELEM-KIN-001 +TEST(NonlinearMitc4Shell, UndeformedStateHasZeroPhysicalRecovery) { + const auto nodes = Nodes(); + const auto recovery = Shell(nodes).RecoverState(ZeroTrial()); + + ASSERT_TRUE(recovery.HasValue()); + ExpectZeroRecovery(recovery.Value()); +} + +// NSNR-ELEM-KIN-001A +TEST(NonlinearMitc4Shell, RejectsInvalidNodeAndInitialFrameContracts) { + const auto nodes = Nodes(); + auto node_pointers = NodePointers(nodes); + node_pointers[3U] = nullptr; + const auto null_node = fesa::NonlinearMitc4Shell::Create( + node_pointers, Frames(), Section(), Material()); + ASSERT_FALSE(null_node.HasValue()); + EXPECT_EQ(null_node.GetStatus().Diagnostics()[0U].code, + "invalid-nonlinear-shell-geometry"); + + auto frames = Frames(); + frames[2U].node_index = frames[1U].node_index; + const auto duplicate_frame = fesa::NonlinearMitc4Shell::Create( + NodePointers(nodes), frames, Section(), Material()); + ASSERT_FALSE(duplicate_frame.HasValue()); + EXPECT_EQ(duplicate_frame.GetStatus().Diagnostics()[0U].code, + "invalid-nonlinear-shell-frame"); + + frames = Frames(); + frames[0U].tangent_b = {1.0, 0.0, 0.0}; + const auto invalid_frame = fesa::NonlinearMitc4Shell::Create( + NodePointers(nodes), frames, Section(), Material()); + ASSERT_FALSE(invalid_frame.HasValue()); + EXPECT_EQ(invalid_frame.GetStatus().Diagnostics()[0U].code, + "invalid-nonlinear-shell-frame"); +} + +// NSNR-ELEM-KIN-002 +TEST(NonlinearMitc4Shell, UsesFixedInitialReferenceGeometry) { + const auto nodes = Nodes(); + auto trial = ZeroTrial(); + for (auto& displacement : trial.displacement) { + displacement = {0.2, -0.3, 0.4}; + } + + const auto recovery = Shell(nodes).EvaluateKinematics(trial); + ASSERT_TRUE(recovery.HasValue()); + ExpectZeroRecovery(recovery.Value()); +} + +// NSNR-ELEM-KIN-003 +TEST(NonlinearMitc4Shell, PreservesUnnormalizedInterpolatedDirector) { + const auto nodes = Nodes(); + auto trial = ZeroTrial(); + trial.rotation_vector[0U] = {0.8, 0.0, 0.0}; + trial.rotation_vector[1U] = {-0.8, 0.0, 0.0}; + trial.rotation_vector[2U] = {-0.8, 0.0, 0.0}; + trial.rotation_vector[3U] = {0.8, 0.0, 0.0}; + + const auto recovery = Shell(nodes).EvaluateKinematics(trial); + ASSERT_TRUE(recovery.HasValue()); + EXPECT_GT(recovery.Value().physical_strain_energy, 0.0); + const double expected_membrane = + 0.01 * std::sin(0.8) * std::sin(0.8) / 6.0; + EXPECT_NEAR(recovery.Value().gauss_points[0U].generalized_strain[0U], + expected_membrane, 1.0e-12); +} + +// NSNR-ELEM-KIN-004 +TEST(NonlinearMitc4Shell, RejectsOpposedOrDegenerateCurrentDirectors) { + const auto nodes = Nodes(); + auto trial = ZeroTrial(); + trial.rotation_vector[0U] = {std::acos(-1.0) - 1.0e-5, 0.0, 0.0}; + trial.rotation_vector[1U] = {-(std::acos(-1.0) - 1.0e-5), 0.0, 0.0}; + + const auto recovery = Shell(nodes).EvaluateKinematics(trial); + ASSERT_FALSE(recovery.HasValue()); + EXPECT_EQ(recovery.GetStatus().Diagnostics()[0U].code, + "invalid-nonlinear-shell-director"); +} + +// NSNR-ELEM-KIN-005 +TEST(NonlinearMitc4Shell, MatchesLinearMitc4RecoveryInSmallRotationLimit) { + const auto nodes = Nodes(); + const auto linear = fesa::Mitc4Shell::Create( + NodePointers(nodes), + std::array{{{0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}, + {0.0, 0.0, 1.0}, {0.0, 0.0, 1.0}}}, + Section(), Material()); + ASSERT_TRUE(linear.HasValue()); + + auto trial = ZeroTrial(); + fesa::Vector linear_dofs{24U}; + for (std::size_t node = 0U; node < 4U; ++node) { + const double x = nodes[node].coordinates[0U]; + const double y = nodes[node].coordinates[1U]; + trial.displacement[node] = {1.0e-7 * x, -2.0e-7 * y, 3.0e-7 * x * y}; + trial.rotation_vector[node] = {-2.0e-7 * y, 1.0e-7 * x, 0.0}; + for (std::size_t component = 0U; component < 3U; ++component) { + linear_dofs[6U * node + component] = trial.displacement[node][component]; + linear_dofs[6U * node + 3U + component] = + trial.rotation_vector[node][component]; + } + } + + const auto nonlinear_recovery = Shell(nodes).EvaluateKinematics(trial); + const auto linear_recovery = linear.Value().RecoverPhysical(linear_dofs); + ASSERT_TRUE(nonlinear_recovery.HasValue()); + ASSERT_TRUE(linear_recovery.HasValue()); + for (std::size_t point = 0U; point < 4U; ++point) { + for (std::size_t component = 0U; component < 8U; ++component) { + EXPECT_NEAR(nonlinear_recovery.Value().gauss_points[point] + .generalized_strain[component], + linear_recovery.Value().points[point] + .generalized_strain[component], + 1.0e-11); + } + } +} + +// NSNR-ELEM-KIN-006 +TEST(NonlinearMitc4Shell, FiniteRigidMotionIsObjective) { + const auto nodes = Nodes(); + const fesa::Vector3 rotation{0.3, -0.2, 0.1}; + const fesa::Matrix rigid_rotation = fesa::ExpSkew(rotation); + const fesa::Vector3 translation{0.7, -0.4, 1.2}; + auto trial = ZeroTrial(); + for (std::size_t node = 0U; node < 4U; ++node) { + const fesa::Vector3 initial{nodes[node].coordinates}; + trial.displacement[node] = + Multiply(rigid_rotation, initial) + translation - initial; + trial.rotation_vector[node] = rotation; + } + + const auto recovery = Shell(nodes).EvaluateKinematics(trial); + ASSERT_TRUE(recovery.HasValue()); + for (const auto& point : recovery.Value().gauss_points) { + for (const double value : point.generalized_strain) { + EXPECT_NEAR(value, 0.0, 1.0e-12); + } + for (const auto& stress : point.stress) { + for (const double value : stress.components) { + EXPECT_NEAR(value, 0.0, 1.0e-12); + } + } + } + EXPECT_NEAR(recovery.Value().physical_strain_energy, 0.0, 1.0e-12); +} + +// NSNR-ELEM-KIN-007 and NSNR-ELEM-KIN-008 +TEST(NonlinearMitc4Recovery, EmitsOnlyFixedPhysicalGaussAndStressRows) { + const auto nodes = Nodes(); + const auto recovery = Shell(nodes).RecoverState(ZeroTrial()); + ASSERT_TRUE(recovery.HasValue()); + const double gauss = 1.0 / std::sqrt(3.0); + constexpr std::array locations{ + fesa::ShellMidsurfaceLocation::kGp1, fesa::ShellMidsurfaceLocation::kGp2, + fesa::ShellMidsurfaceLocation::kGp3, fesa::ShellMidsurfaceLocation::kGp4}; + constexpr std::array positions{ + fesa::ShellSectionPosition::kBottom, fesa::ShellSectionPosition::kMiddle, + fesa::ShellSectionPosition::kTop}; + constexpr std::array zeta{-1.0, 0.0, 1.0}; + + for (std::size_t point = 0U; point < recovery.Value().gauss_points.size(); + ++point) { + const auto& row = recovery.Value().gauss_points[point]; + EXPECT_EQ(row.location, locations[point]); + EXPECT_EQ(row.natural_coordinates[0U], point == 0U || point == 3U ? -gauss + : gauss); + EXPECT_EQ(row.natural_coordinates[1U], point < 2U ? -gauss : gauss); + for (std::size_t stress = 0U; stress < row.stress.size(); ++stress) { + EXPECT_EQ(row.stress[stress].position, positions[stress]); + EXPECT_EQ(row.stress[stress].zeta, zeta[stress]); + EXPECT_EQ(row.stress[stress].components.size(), 3U); + } + } +} + +} // namespace From 9a829614d8b73acb587acb25033c11c421ae48a9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 13:36:35 +0900 Subject: [PATCH 08/32] chore(nonlinear-static-newton-raphson): step 3 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index e724d5d..75c2098 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -29,7 +29,10 @@ { "step": 3, "name": "nonlinear-mitc4-kinematics-and-recovery", - "status": "pending" + "status": "completed", + "summary": "Added nonlinear MITC4 fixed-reference kinematics, MITC recovery rows, and finite-rotation/objectivity coverage.", + "started_at": "2026-08-24T13:26:00+0900", + "completed_at": "2026-08-24T13:36:34+0900" }, { "step": 4, From ab44ada4cf52bdecf6c0010ddb3721c7d0a93ffe Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:00:06 +0900 Subject: [PATCH 09/32] feat(nonlinear-static-newton-raphson): step 4 - nonlinear-mitc4-residual-and-tangent --- include/fesa/elements/nonlinear_mitc4_shell.h | 30 +- src/fesa/elements/nonlinear_mitc4_shell.cpp | 742 +++++++++++++++++- tests/CMakeLists.txt | 1 + .../nonlinear_mitc4_shell_tangent_test.cpp | 420 ++++++++++ 4 files changed, 1190 insertions(+), 3 deletions(-) create mode 100644 tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp diff --git a/include/fesa/elements/nonlinear_mitc4_shell.h b/include/fesa/elements/nonlinear_mitc4_shell.h index e9fcb73..bab0476 100644 --- a/include/fesa/elements/nonlinear_mitc4_shell.h +++ b/include/fesa/elements/nonlinear_mitc4_shell.h @@ -7,6 +7,7 @@ #include "fesa/core/status.h" #include "fesa/elements/mitc4_shell.h" #include "fesa/math/matrix.h" +#include "fesa/math/vector.h" #include "fesa/math/vector3.h" #include "fesa/model/model_types.h" #include "fesa/results/result_records.h" @@ -35,6 +36,26 @@ struct NonlinearMitc4Recovery { double physical_strain_energy; }; +/// @brief Stores complete internal equilibrium data for one nonlinear trial. +struct NonlinearMitc4InternalEquilibrium { + Vector internal_residual; + Matrix internal_tangent; + Vector internal_force; + NonlinearMitc4Recovery recovery; + double physical_strain_energy; +}; + +class NonlinearMitc4Shell; + +/// @brief Evaluates the internal residual and tangent at one complete trial. +/// @param element Immutable nonlinear MITC4 reference evaluator. +/// @param trial Complete global translation and rotation trial coordinates. +/// @return Internal force, consistent tangent and physical recovery, or +/// failure. +/// @note External load vectors and their tangents are intentionally excluded. +Result EvaluateInternalResidualAndTangent( + const NonlinearMitc4Shell& element, const NonlinearMitc4TrialDofs& trial); + /// @brief Evaluates fixed-reference Total Lagrangian MITC4 kinematics. /// @note This class owns no mutable trial or accepted analysis state. class NonlinearMitc4Shell { @@ -68,8 +89,12 @@ class NonlinearMitc4Shell { std::array initial_frames, std::array initial_directors, double thickness, double youngs_modulus, - double poisson_ratio, SourceLocation source_location, - std::string identity); + double poisson_ratio, double drilling_stiffness, + SourceLocation source_location, std::string identity); + + friend Result + EvaluateInternalResidualAndTangent(const NonlinearMitc4Shell& element, + const NonlinearMitc4TrialDofs& trial); std::array coordinates_; std::array initial_frames_; @@ -77,6 +102,7 @@ class NonlinearMitc4Shell { double thickness_; double youngs_modulus_; double poisson_ratio_; + double drilling_stiffness_; SourceLocation source_location_; std::string identity_; }; diff --git a/src/fesa/elements/nonlinear_mitc4_shell.cpp b/src/fesa/elements/nonlinear_mitc4_shell.cpp index 0fa7548..48d117a 100644 --- a/src/fesa/elements/nonlinear_mitc4_shell.cpp +++ b/src/fesa/elements/nonlinear_mitc4_shell.cpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include @@ -343,19 +345,675 @@ bool IsFinite(const NonlinearMitc4Recovery& recovery) { return true; } +constexpr std::size_t kGlobalDofCount = 24U; +constexpr std::size_t kHessianSize = kGlobalDofCount * kGlobalDofCount; + +/// @brief Carries exact first and second trial-coordinate variations. +class Hessian { + public: + Hessian() : values_{std::make_shared>()} {} + + double& operator[](const std::size_t index) { return (*values_)[index]; } + + const double& operator[](const std::size_t index) const { + return (*values_)[index]; + } + + auto begin() const { return values_->begin(); } + + auto end() const { return values_->end(); } + + private: + std::shared_ptr> values_; +}; + +/// @brief Carries exact first and second trial-coordinate variations. +struct Jet { + double value{}; + std::array first{}; + Hessian second; +}; + +using JetVector3 = std::array; +using JetMatrix3 = std::array, 3>; +using JetTensor = std::array, 3>; + +/// @brief Returns a constant second-order trial-coordinate quantity. +Jet Constant(const double value) { + Jet result{}; + result.value = value; + return result; +} + +/// @brief Returns one independent global trial coordinate. +Jet Variable(const double value, const std::size_t index) { + Jet result = Constant(value); + result.first[index] = 1.0; + return result; +} + +/// @brief Adds two second-order trial-coordinate quantities. +Jet operator+(const Jet& left, const Jet& right) { + Jet result{}; + result.value = left.value + right.value; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = left.first[index] + right.first[index]; + } + for (std::size_t index = 0U; index < kHessianSize; ++index) { + result.second[index] = left.second[index] + right.second[index]; + } + return result; +} + +/// @brief Subtracts two second-order trial-coordinate quantities. +Jet operator-(const Jet& left, const Jet& right) { + Jet result{}; + result.value = left.value - right.value; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = left.first[index] - right.first[index]; + } + for (std::size_t index = 0U; index < kHessianSize; ++index) { + result.second[index] = left.second[index] - right.second[index]; + } + return result; +} + +/// @brief Multiplies two second-order trial-coordinate quantities. +Jet operator*(const Jet& left, const Jet& right) { + Jet result{}; + result.value = left.value * right.value; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = + left.first[index] * right.value + left.value * right.first[index]; + } + for (std::size_t row = 0U; row < kGlobalDofCount; ++row) { + for (std::size_t column = 0U; column < kGlobalDofCount; ++column) { + const std::size_t index = row * kGlobalDofCount + column; + result.second[index] = left.second[index] * right.value + + left.first[row] * right.first[column] + + left.first[column] * right.first[row] + + left.value * right.second[index]; + } + } + return result; +} + +/// @brief Scales a second-order trial-coordinate quantity. +Jet operator*(const double scalar, const Jet& value) { + Jet result{}; + result.value = scalar * value.value; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = scalar * value.first[index]; + } + for (std::size_t index = 0U; index < kHessianSize; ++index) { + result.second[index] = scalar * value.second[index]; + } + return result; +} + +/// @brief Scales a second-order trial-coordinate quantity. +Jet operator*(const Jet& value, const double scalar) { return scalar * value; } + +/// @brief Applies a scalar unary function through its first two derivatives. +Jet Compose(const Jet& input, const double value, const double first, + const double second) { + Jet result{}; + result.value = value; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = first * input.first[index]; + } + for (std::size_t row = 0U; row < kGlobalDofCount; ++row) { + for (std::size_t column = 0U; column < kGlobalDofCount; ++column) { + const std::size_t index = row * kGlobalDofCount + column; + result.second[index] = first * input.second[index] + + second * input.first[row] * input.first[column]; + } + } + return result; +} + +/// @brief Forms an analytic reciprocal without a secant approximation. +Jet Reciprocal(const Jet& value) { + const double inverse = 1.0 / value.value; + return Compose(value, inverse, -inverse * inverse, + 2.0 * inverse * inverse * inverse); +} + +/// @brief Divides two second-order trial-coordinate quantities. +Jet operator/(const Jet& left, const Jet& right) { + return left * Reciprocal(right); +} + +/// @brief Computes the analytic square root variation. +Jet Sqrt(const Jet& value) { + const double root = std::sqrt(value.value); + return Compose(value, root, 0.5 / root, -0.25 / (root * root * root)); +} + +/// @brief Computes the analytic sine variation. +Jet Sin(const Jet& value) { + return Compose(value, std::sin(value.value), std::cos(value.value), + -std::sin(value.value)); +} + +/// @brief Computes the analytic cosine variation. +Jet Cos(const Jet& value) { + return Compose(value, std::cos(value.value), -std::sin(value.value), + -std::cos(value.value)); +} + +/// @brief Computes the two-argument angle and its analytic first/second map. +Jet Atan2(const Jet& y, const Jet& x) { + const double radius_squared = x.value * x.value + y.value * y.value; + Jet result{}; + result.value = std::atan2(y.value, x.value); + const double derivative_y = x.value / radius_squared; + const double derivative_x = -y.value / radius_squared; + const double radius_fourth = radius_squared * radius_squared; + const double derivative_yy = -2.0 * x.value * y.value / radius_fourth; + const double derivative_yx = + (y.value * y.value - x.value * x.value) / radius_fourth; + const double derivative_xx = 2.0 * x.value * y.value / radius_fourth; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + result.first[index] = + derivative_y * y.first[index] + derivative_x * x.first[index]; + } + for (std::size_t row = 0U; row < kGlobalDofCount; ++row) { + for (std::size_t column = 0U; column < kGlobalDofCount; ++column) { + const std::size_t index = row * kGlobalDofCount + column; + result.second[index] = derivative_y * y.second[index] + + derivative_x * x.second[index] + + derivative_yy * y.first[row] * y.first[column] + + derivative_yx * (y.first[row] * x.first[column] + + x.first[row] * y.first[column]) + + derivative_xx * x.first[row] * x.first[column]; + } + } + return result; +} + +/// @brief Checks every coefficient in an automatic-differentiation quantity. +bool IsFinite(const Jet& value) { + if (!std::isfinite(value.value)) { + return false; + } + return std::all_of(value.first.begin(), value.first.end(), + [](const double coefficient) { + return std::isfinite(coefficient); + }) && + std::all_of(value.second.begin(), value.second.end(), + [](const double coefficient) { + return std::isfinite(coefficient); + }); +} + +/// @brief Forms a Jet vector from a fixed reference vector. +JetVector3 ConstantVector(const Vector3& value) { + return {Constant(value.X()), Constant(value.Y()), Constant(value.Z())}; +} + +/// @brief Adds two Jet vectors. +JetVector3 Add(const JetVector3& left, const JetVector3& right) { + return {left[0U] + right[0U], left[1U] + right[1U], left[2U] + right[2U]}; +} + +/// @brief Subtracts two Jet vectors. +JetVector3 Subtract(const JetVector3& left, const JetVector3& right) { + return {left[0U] - right[0U], left[1U] - right[1U], left[2U] - right[2U]}; +} + +/// @brief Scales a Jet vector. +JetVector3 Scale(const Jet& scalar, const JetVector3& vector) { + return {scalar * vector[0U], scalar * vector[1U], scalar * vector[2U]}; +} + +/// @brief Scales a Jet vector by a fixed value. +JetVector3 Scale(const double scalar, const JetVector3& vector) { + return {scalar * vector[0U], scalar * vector[1U], scalar * vector[2U]}; +} + +/// @brief Computes the Jet dot product. +Jet Dot(const JetVector3& left, const JetVector3& right) { + return left[0U] * right[0U] + left[1U] * right[1U] + left[2U] * right[2U]; +} + +/// @brief Computes the Jet right-handed cross product. +JetVector3 Cross(const JetVector3& left, const JetVector3& right) { + return {left[1U] * right[2U] - left[2U] * right[1U], + left[2U] * right[0U] - left[0U] * right[2U], + left[0U] * right[1U] - left[1U] * right[0U]}; +} + +/// @brief Builds a Jet identity matrix. +JetMatrix3 Identity() { + JetMatrix3 result{}; + for (std::size_t index = 0U; index < 3U; ++index) { + result[index][index] = Constant(1.0); + } + return result; +} + +/// @brief Forms a skew matrix from a Jet vector. +JetMatrix3 Skew(const JetVector3& value) { + JetMatrix3 result{}; + result[0U][1U] = -1.0 * value[2U]; + result[0U][2U] = value[1U]; + result[1U][0U] = value[2U]; + result[1U][2U] = -1.0 * value[0U]; + result[2U][0U] = -1.0 * value[1U]; + result[2U][1U] = value[0U]; + return result; +} + +/// @brief Multiplies two three-by-three Jet matrices. +JetMatrix3 Multiply(const JetMatrix3& left, const JetMatrix3& right) { + JetMatrix3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + for (std::size_t index = 0U; index < 3U; ++index) { + result[row][column] = + result[row][column] + left[row][index] * right[index][column]; + } + } + } + return result; +} + +/// @brief Multiplies a Jet matrix by a Jet vector. +JetVector3 Multiply(const JetMatrix3& matrix, const JetVector3& vector) { + JetVector3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row] = result[row] + matrix[row][column] * vector[column]; + } + } + return result; +} + +/// @brief Transposes a three-by-three Jet matrix. +JetMatrix3 Transpose(const JetMatrix3& matrix) { + JetMatrix3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = matrix[column][row]; + } + } + return result; +} + +/// @brief Returns a scalar multiple of a Jet matrix. +JetMatrix3 Scale(const double scalar, const JetMatrix3& matrix) { + JetMatrix3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = scalar * matrix[row][column]; + } + } + return result; +} + +/// @brief Returns a trial-coordinate scalar multiple of a Jet matrix. +JetMatrix3 Scale(const Jet& scalar, const JetMatrix3& matrix) { + JetMatrix3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = scalar * matrix[row][column]; + } + } + return result; +} + +/// @brief Adds two three-by-three Jet matrices. +JetMatrix3 Add(const JetMatrix3& left, const JetMatrix3& right) { + JetMatrix3 result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = left[row][column] + right[row][column]; + } + } + return result; +} + +/// @brief Computes the analytic three-by-three inverse through its adjugate. +JetMatrix3 Inverse(const JetMatrix3& matrix) { + JetMatrix3 cofactor{}; + cofactor[0U][0U] = + matrix[1U][1U] * matrix[2U][2U] - matrix[1U][2U] * matrix[2U][1U]; + cofactor[0U][1U] = + matrix[1U][2U] * matrix[2U][0U] - matrix[1U][0U] * matrix[2U][2U]; + cofactor[0U][2U] = + matrix[1U][0U] * matrix[2U][1U] - matrix[1U][1U] * matrix[2U][0U]; + cofactor[1U][0U] = + matrix[0U][2U] * matrix[2U][1U] - matrix[0U][1U] * matrix[2U][2U]; + cofactor[1U][1U] = + matrix[0U][0U] * matrix[2U][2U] - matrix[0U][2U] * matrix[2U][0U]; + cofactor[1U][2U] = + matrix[0U][1U] * matrix[2U][0U] - matrix[0U][0U] * matrix[2U][1U]; + cofactor[2U][0U] = + matrix[0U][1U] * matrix[1U][2U] - matrix[0U][2U] * matrix[1U][1U]; + cofactor[2U][1U] = + matrix[0U][2U] * matrix[1U][0U] - matrix[0U][0U] * matrix[1U][2U]; + cofactor[2U][2U] = + matrix[0U][0U] * matrix[1U][1U] - matrix[0U][1U] * matrix[1U][0U]; + const Jet determinant = matrix[0U][0U] * cofactor[0U][0U] + + matrix[0U][1U] * cofactor[0U][1U] + + matrix[0U][2U] * cofactor[0U][2U]; + JetMatrix3 result{}; + const Jet inverse_determinant = Reciprocal(determinant); + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = cofactor[column][row] * inverse_determinant; + } + } + return result; +} + +/// @brief Evaluates Rodrigues' map with an analytic near-zero series branch. +JetMatrix3 ExpSkew(const JetVector3& rotation) { + const Jet squared_norm = Dot(rotation, rotation); + Jet sine_over_norm{}; + Jet one_minus_cosine_over_norm_squared{}; + if (squared_norm.value < 1.0e-8) { + const Jet squared = squared_norm * squared_norm; + const Jet cubed = squared * squared_norm; + sine_over_norm = Constant(1.0) - squared_norm / Constant(6.0) + + squared / Constant(120.0) - cubed / Constant(5040.0); + one_minus_cosine_over_norm_squared = + Constant(0.5) - squared_norm / Constant(24.0) + + squared / Constant(720.0) - cubed / Constant(40320.0); + } else { + const Jet norm = Sqrt(squared_norm); + sine_over_norm = Sin(norm) / norm; + one_minus_cosine_over_norm_squared = + (Constant(1.0) - Cos(norm)) / squared_norm; + } + const JetMatrix3 skew = Skew(rotation); + return Add(Add(Identity(), Scale(sine_over_norm, skew)), + Scale(one_minus_cosine_over_norm_squared, Multiply(skew, skew))); +} + +/// @brief Stores the complete Jet-valued global element trial coordinates. +struct JetTrial { + std::array displacement; + std::array rotation; + std::array director; +}; + +/// @brief Lifts one validated nonlinear trial into independent Jet variables. +JetTrial MakeJetTrial(const NonlinearMitc4TrialDofs& trial, + const std::array& initial_frames) { + JetTrial result{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + for (std::size_t component = 0U; component < 3U; ++component) { + result.displacement[node][component] = + Variable(trial.displacement[node][component], 6U * node + component); + result.rotation[node][component] = Variable( + trial.rotation_vector[node][component], 6U * node + 3U + component); + } + JetMatrix3 frame{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + frame[row][column] = Constant(initial_frames[node](row, column)); + } + } + const JetVector3 initial_director{frame[0U][2U], frame[1U][2U], + frame[2U][2U]}; + result.director[node] = + Multiply(ExpSkew(result.rotation[node]), initial_director); + } + return result; +} + +/// @brief Forms one current covariant basis from the exact trial variables. +std::array CurrentCovariant( + const std::array& coordinates, const JetTrial& trial, + const double thickness, const double xi, const double eta, + const double zeta) { + const Mitc4ShapeFunctions shape = Mitc4Shell::ShapeFunctions(xi, eta); + JetVector3 displacement_xi{}; + JetVector3 displacement_eta{}; + JetVector3 director{}; + JetVector3 director_xi{}; + JetVector3 director_eta{}; + Vector3 reference_xi{}; + Vector3 reference_eta{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + reference_xi = + reference_xi + shape.xi_derivatives[node] * coordinates[node]; + reference_eta = + reference_eta + shape.eta_derivatives[node] * coordinates[node]; + displacement_xi = Add(displacement_xi, Scale(shape.xi_derivatives[node], + trial.displacement[node])); + displacement_eta = Add(displacement_eta, Scale(shape.eta_derivatives[node], + trial.displacement[node])); + director = Add(director, Scale(shape.values[node], trial.director[node])); + director_xi = Add(director_xi, + Scale(shape.xi_derivatives[node], trial.director[node])); + director_eta = Add( + director_eta, Scale(shape.eta_derivatives[node], trial.director[node])); + } + const double half_thickness = 0.5 * thickness; + return {Add(Add(ConstantVector(reference_xi), displacement_xi), + Scale(half_thickness * zeta, director_xi)), + Add(Add(ConstantVector(reference_eta), displacement_eta), + Scale(half_thickness * zeta, director_eta)), + Scale(half_thickness, director)}; +} + +/// @brief Forms the direct covariant Green--Lagrange strain tensor. +JetTensor DirectStrain(const std::array& current, + const Geometry& reference) { + JetTensor result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result[row][column] = + 0.5 * (Dot(current[row], current[column]) - + Constant(reference.reference_covariant[row].Dot( + reference.reference_covariant[column]))); + } + } + result[2U][2U] = Constant(0.0); + return result; +} + +/// @brief Reconstructs a fixed-reference Cartesian Jet strain tensor. +JetTensor CartesianStrain(const JetTensor& covariant, + const Geometry& reference) { + JetTensor result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + for (std::size_t first = 0U; first < 3U; ++first) { + for (std::size_t second = 0U; second < 3U; ++second) { + result[row][column] = + result[row][column] + reference.reciprocal[first][row] * + reference.reciprocal[second][column] * + covariant[first][second]; + } + } + } + } + return result; +} + +/// @brief Forms one fixed-frame engineering strain component. +Jet FrameComponent(const JetVector3& left, const JetTensor& tensor, + const JetVector3& right) { + Jet result{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + result = result + left[row] * tensor[row][column] * right[column]; + } + } + return result; +} + +/// @brief Evaluates the physical strain energy through exact Jet variations. +Jet PhysicalEnergy(const std::array& coordinates, + const std::array& initial_directors, + const JetTrial& trial, const double thickness, + const double youngs, const double poisson, bool& valid) { + const NonlinearMitc4TrialDofs reference_trial{}; + constexpr std::array, 4> tying_locations{ + std::array{0.0, -1.0}, std::array{0.0, 1.0}, + std::array{-1.0, 0.0}, std::array{1.0, 0.0}}; + std::array tying{}; + for (std::size_t point = 0U; point < tying_locations.size(); ++point) { + Geometry reference{}; + if (!EvaluateGeometry(coordinates, initial_directors, initial_directors, + reference_trial, thickness, + tying_locations[point][0U], + tying_locations[point][1U], 0.0, reference)) { + valid = false; + return {}; + } + tying[point] = + DirectStrain(CurrentCovariant(coordinates, trial, thickness, + tying_locations[point][0U], + tying_locations[point][1U], 0.0), + reference); + } + + const double gauss = 1.0 / std::sqrt(3.0); + const std::array, 4> surface_points{ + std::array{-gauss, -gauss}, + std::array{gauss, -gauss}, std::array{gauss, gauss}, + std::array{-gauss, gauss}}; + const std::array thickness_points{-gauss, gauss}; + const double plane_stress = youngs / (1.0 - poisson * poisson); + const double shear = kShearCorrection * youngs / (2.0 * (1.0 + poisson)); + Jet energy{}; + for (const auto& surface : surface_points) { + for (const double zeta : thickness_points) { + Geometry reference{}; + if (!EvaluateGeometry(coordinates, initial_directors, initial_directors, + reference_trial, thickness, surface[0U], + surface[1U], zeta, reference)) { + valid = false; + return {}; + } + JetTensor covariant = + DirectStrain(CurrentCovariant(coordinates, trial, thickness, + surface[0U], surface[1U], zeta), + reference); + const Mitc4TyingWeights weights = + Mitc4Shell::TyingWeights(surface[0U], surface[1U]); + covariant[0U][2U] = weights.xi_zeta[0U] * tying[0U][0U][2U] + + weights.xi_zeta[1U] * tying[1U][0U][2U]; + covariant[2U][0U] = covariant[0U][2U]; + covariant[1U][2U] = weights.eta_zeta[0U] * tying[2U][1U][2U] + + weights.eta_zeta[1U] * tying[3U][1U][2U]; + covariant[2U][1U] = covariant[1U][2U]; + const JetTensor cartesian = CartesianStrain(covariant, reference); + const JetVector3 e1 = ConstantVector(Vector3{reference.local_frame.e1}); + const JetVector3 e2 = ConstantVector(Vector3{reference.local_frame.e2}); + const JetVector3 e3 = ConstantVector(Vector3{reference.local_frame.e3}); + const std::array strain{FrameComponent(e1, cartesian, e1), + FrameComponent(e2, cartesian, e2), + 2.0 * FrameComponent(e1, cartesian, e2), + 2.0 * FrameComponent(e1, cartesian, e3), + 2.0 * FrameComponent(e2, cartesian, e3)}; + const std::array stress{ + plane_stress * (strain[0U] + poisson * strain[1U]), + plane_stress * (poisson * strain[0U] + strain[1U]), + plane_stress * (1.0 - poisson) * 0.5 * strain[2U], shear * strain[3U], + shear * strain[4U]}; + Jet density{}; + for (std::size_t component = 0U; component < strain.size(); ++component) { + density = density + strain[component] * stress[component]; + } + energy = energy + 0.5 * reference.reference_jacobian * density; + } + } + if (!IsFinite(energy)) { + valid = false; + } + return energy; +} + +/// @brief Computes a fixed-iteration analytic polar factor for drill +/// corotation. +JetMatrix3 PolarRotation(const JetMatrix3& deformation) { + JetMatrix3 result = deformation; + for (std::size_t iteration = 0U; iteration < 12U; ++iteration) { + result = Scale(0.5, Add(result, Transpose(Inverse(result)))); + } + return result; +} + +/// @brief Evaluates the objective numerical drilling potential and variations. +Jet DrillingEnergy(const std::array& coordinates, + const std::array& initial_directors, + const JetTrial& trial, const double thickness, + const double drilling_stiffness, bool& valid) { + const NonlinearMitc4TrialDofs reference_trial{}; + Geometry reference{}; + if (!EvaluateGeometry(coordinates, initial_directors, initial_directors, + reference_trial, thickness, 0.0, 0.0, 0.0, reference)) { + valid = false; + return {}; + } + const auto current = + CurrentCovariant(coordinates, trial, thickness, 0.0, 0.0, 0.0); + JetMatrix3 deformation{}; + for (std::size_t row = 0U; row < 3U; ++row) { + for (std::size_t column = 0U; column < 3U; ++column) { + for (std::size_t alpha = 0U; alpha < 3U; ++alpha) { + deformation[row][column] = + deformation[row][column] + + current[alpha][row] * reference.reciprocal[alpha][column]; + } + } + } + const JetMatrix3 element_rotation = PolarRotation(deformation); + Jet energy{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + const JetMatrix3 nodal_rotation = ExpSkew(trial.rotation[node]); + const JetMatrix3 corotated = + Multiply(Transpose(element_rotation), nodal_rotation); + const JetVector3 initial_director = ConstantVector(initial_directors[node]); + const JetVector3 swung_director = Multiply(corotated, initial_director); + const Jet alignment = Dot(initial_director, swung_director); + if (!std::isfinite(alignment.value) || + !(alignment.value > -1.0 + kDirectorOppositionTolerance)) { + valid = false; + return {}; + } + const JetVector3 swing_axis = Cross(initial_director, swung_director); + const JetMatrix3 swing_skew = Skew(swing_axis); + const JetMatrix3 swing = Add(Add(Identity(), swing_skew), + Scale(Reciprocal(Constant(1.0) + alignment), + Multiply(swing_skew, swing_skew))); + const JetMatrix3 twist = Multiply(Transpose(swing), corotated); + const JetVector3 twist_vex{twist[2U][1U] - twist[1U][2U], + twist[0U][2U] - twist[2U][0U], + twist[1U][0U] - twist[0U][1U]}; + const Jet sine = 0.5 * Dot(initial_director, twist_vex); + const Jet cosine = + 0.5 * (twist[0U][0U] + twist[1U][1U] + twist[2U][2U] - Constant(1.0)); + const Jet gamma = Atan2(sine, cosine); + energy = energy + 0.5 * drilling_stiffness * gamma * gamma; + } + if (!IsFinite(energy)) { + valid = false; + } + return energy; +} + } // namespace NonlinearMitc4Shell::NonlinearMitc4Shell( std::array coordinates, std::array initial_frames, std::array initial_directors, const double thickness, const double youngs_modulus, const double poisson_ratio, - SourceLocation source_location, std::string identity) + const double drilling_stiffness, SourceLocation source_location, + std::string identity) : coordinates_{std::move(coordinates)}, initial_frames_{std::move(initial_frames)}, initial_directors_{std::move(initial_directors)}, thickness_{thickness}, youngs_modulus_{youngs_modulus}, poisson_ratio_{poisson_ratio}, + drilling_stiffness_{drilling_stiffness}, source_location_{std::move(source_location)}, identity_{std::move(identity)} {} @@ -448,12 +1106,31 @@ Result NonlinearMitc4Shell::Create( "Nonlinear MITC4 requires finite E>0 and -1, kNodeCount> director_components{}; + for (std::size_t node = 0U; node < kNodeCount; ++node) { + director_components[node] = directors[node].Components(); + } + const auto linear_shell = + Mitc4Shell::Create(nodes, director_components, section, material); + if (!linear_shell.HasValue()) { + return Result::Failure(linear_shell.GetStatus()); + } + const auto linear_stiffness = linear_shell.Value().Stiffness(); + if (!linear_stiffness.HasValue() || + !std::isfinite(linear_stiffness.Value().drilling_stiffness) || + !(linear_stiffness.Value().drilling_stiffness > 0.0)) { + return Failure( + "invalid-nonlinear-shell-drilling", section.location, identity, + "Nonlinear MITC4 requires a finite positive fixed drilling stiffness."); + } + NonlinearMitc4Shell shell{coordinates, std::move(frames), directors, section.thickness, material.youngs_modulus, material.poisson_ratio, + linear_stiffness.Value().drilling_stiffness, nodes[0U]->location, identity}; const auto reference = shell.EvaluateKinematics(NonlinearMitc4TrialDofs{}); @@ -611,4 +1288,67 @@ Result NonlinearMitc4Shell::RecoverState( return EvaluateKinematics(trial); } +Result EvaluateInternalResidualAndTangent( + const NonlinearMitc4Shell& element, const NonlinearMitc4TrialDofs& trial) { + const auto recovery = element.EvaluateKinematics(trial); + if (!recovery.HasValue()) { + return Result::Failure( + recovery.GetStatus()); + } + + bool valid = true; + const JetTrial jet_trial = MakeJetTrial(trial, element.initial_frames_); + const Jet physical = + PhysicalEnergy(element.coordinates_, element.initial_directors_, + jet_trial, element.thickness_, element.youngs_modulus_, + element.poisson_ratio_, valid); + const Jet drilling = DrillingEnergy( + element.coordinates_, element.initial_directors_, jet_trial, + element.thickness_, element.drilling_stiffness_, valid); + const Jet internal_energy = physical + drilling; + if (!valid || !IsFinite(internal_energy)) { + return Failure( + "invalid-nonlinear-shell-equilibrium", element.source_location_, + element.identity_, + "Nonlinear MITC4 internal residual and tangent must remain finite."); + } + + Vector internal_residual{kGlobalDofCount}; + Matrix internal_tangent{kGlobalDofCount, kGlobalDofCount}; + for (std::size_t row = 0U; row < kGlobalDofCount; ++row) { + internal_residual[row] = internal_energy.first[row]; + for (std::size_t column = 0U; column < kGlobalDofCount; ++column) { + internal_tangent(row, column) = + internal_energy.second[row * kGlobalDofCount + column]; + } + } + for (std::size_t row = 0U; row < kGlobalDofCount; ++row) { + if (!std::isfinite(internal_residual[row])) { + return Failure( + "invalid-nonlinear-shell-equilibrium", element.source_location_, + element.identity_, + "Nonlinear MITC4 internal residual and tangent must remain finite."); + } + for (std::size_t column = 0U; column < kGlobalDofCount; ++column) { + if (!std::isfinite(internal_tangent(row, column))) { + return Failure( + "invalid-nonlinear-shell-equilibrium", element.source_location_, + element.identity_, + "Nonlinear MITC4 internal residual and tangent must remain " + "finite."); + } + } + } + + NonlinearMitc4InternalEquilibrium equilibrium{ + std::move(internal_residual), std::move(internal_tangent), + Vector{kGlobalDofCount}, recovery.Value(), + recovery.Value().physical_strain_energy}; + for (std::size_t index = 0U; index < kGlobalDofCount; ++index) { + equilibrium.internal_force[index] = equilibrium.internal_residual[index]; + } + return Result::Success( + std::move(equilibrium)); +} + } // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 69d92e9..d94a2a1 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -21,6 +21,7 @@ add_executable( unit/elements/finite_rotation_test.cpp unit/elements/mitc4_shell_test.cpp unit/elements/nonlinear_mitc4_shell_test.cpp + unit/elements/nonlinear_mitc4_shell_tangent_test.cpp unit/fem/dof_manager_test.cpp unit/math/dense_blas_internal_test.cpp unit/math/matrix_test.cpp diff --git a/tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp b/tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp new file mode 100644 index 0000000..2379f1e --- /dev/null +++ b/tests/unit/elements/nonlinear_mitc4_shell_tangent_test.cpp @@ -0,0 +1,420 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/elements/finite_rotation.h" +#include "fesa/elements/nonlinear_mitc4_shell.h" +#include "fesa/model/model_types.h" + +namespace { + +using Coordinates = std::array; + +fesa::Node Node(const std::int64_t label, const Coordinates coordinates) { + return {{"Shell-Instance", label, std::to_string(label)}, + coordinates, + {"nonlinear-mitc4-tangent.inp", static_cast(label)}}; +} + +std::array Nodes() { + return {Node(1, {-1.0, -1.0, 0.0}), Node(2, {1.0, -1.0, 0.0}), + Node(3, {1.0, 1.0, 0.0}), Node(4, {-1.0, 1.0, 0.0})}; +} + +std::array NodePointers( + const std::array& nodes) { + return {&nodes[0], &nodes[1], &nodes[2], &nodes[3]}; +} + +std::array Frames() { + return {{{0U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {1U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {2U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}, + {3U, {0.0, 0.0, 1.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}}}}; +} + +fesa::NonlinearMitc4Shell Shell(const std::array& nodes) { + const fesa::ShellSection section{ + "Section", 0.2, 0U, {"nonlinear-mitc4-tangent.inp", 20U}}; + const fesa::LinearElasticMaterial material{ + "Material", 120.0, 0.25, {"nonlinear-mitc4-tangent.inp", 21U}}; + const auto shell = fesa::NonlinearMitc4Shell::Create( + NodePointers(nodes), Frames(), section, material); + if (!shell.HasValue()) { + throw std::runtime_error{shell.GetStatus().Diagnostics()[0U].code}; + } + return shell.Value(); +} + +fesa::NonlinearMitc4TrialDofs Trial() { + fesa::NonlinearMitc4TrialDofs trial{}; + trial.displacement[0U] = {-0.02, 0.01, 0.03}; + trial.displacement[1U] = {0.01, -0.03, -0.01}; + trial.displacement[2U] = {0.03, 0.02, 0.04}; + trial.displacement[3U] = {-0.01, 0.04, -0.02}; + trial.rotation_vector[0U] = {0.03, -0.02, 0.01}; + trial.rotation_vector[1U] = {-0.01, 0.04, -0.02}; + trial.rotation_vector[2U] = {0.02, 0.01, 0.03}; + trial.rotation_vector[3U] = {-0.03, 0.02, -0.01}; + return trial; +} + +fesa::NonlinearMitc4TrialDofs AddScaled( + const fesa::NonlinearMitc4TrialDofs& trial, + const fesa::NonlinearMitc4TrialDofs& direction, const double scale) { + fesa::NonlinearMitc4TrialDofs result = trial; + for (std::size_t node = 0U; node < 4U; ++node) { + result.displacement[node] = + result.displacement[node] + scale * direction.displacement[node]; + result.rotation_vector[node] = + result.rotation_vector[node] + scale * direction.rotation_vector[node]; + } + return result; +} + +fesa::NonlinearMitc4TrialDofs Direction() { + fesa::NonlinearMitc4TrialDofs direction{}; + direction.displacement[0U] = {0.5, -0.2, 0.1}; + direction.displacement[1U] = {-0.1, 0.3, -0.4}; + direction.displacement[2U] = {0.2, 0.1, 0.5}; + direction.displacement[3U] = {-0.3, -0.4, -0.2}; + direction.rotation_vector[0U] = {0.2, -0.1, 0.3}; + direction.rotation_vector[1U] = {-0.3, 0.2, -0.1}; + direction.rotation_vector[2U] = {0.1, 0.3, -0.2}; + direction.rotation_vector[3U] = {-0.2, -0.3, 0.1}; + return direction; +} + +fesa::Vector ToVector(const fesa::NonlinearMitc4TrialDofs& trial) { + fesa::Vector result{24U}; + for (std::size_t node = 0U; node < 4U; ++node) { + for (std::size_t component = 0U; component < 3U; ++component) { + result[6U * node + component] = trial.displacement[node][component]; + result[6U * node + 3U + component] = + trial.rotation_vector[node][component]; + } + } + return result; +} + +double ReferenceLength(const std::array& nodes) { + double length = 0.0; + for (std::size_t first = 0U; first < nodes.size(); ++first) { + for (std::size_t second = first + 1U; second < nodes.size(); ++second) { + length = (std::max)(length, (fesa::Vector3{nodes[first].coordinates} - + fesa::Vector3{nodes[second].coordinates}) + .Norm()); + } + } + return length; +} + +fesa::NonlinearMitc4TrialDofs WorkConjugateDirection( + const std::array& nodes) { + auto direction = Direction(); + double maximum_component = 0.0; + for (std::size_t node = 0U; node < 4U; ++node) { + for (std::size_t component = 0U; component < 3U; ++component) { + maximum_component = + (std::max)(maximum_component, + std::abs(direction.displacement[node][component])); + maximum_component = + (std::max)(maximum_component, + std::abs(direction.rotation_vector[node][component])); + } + } + const double length = ReferenceLength(nodes); + for (std::size_t node = 0U; node < 4U; ++node) { + direction.displacement[node] = + length * direction.displacement[node] / maximum_component; + direction.rotation_vector[node] = + direction.rotation_vector[node] / maximum_component; + } + return direction; +} + +fesa::Vector WorkConjugate(const fesa::Vector& vector, const double length) { + fesa::Vector result = vector; + for (std::size_t node = 0U; node < 4U; ++node) { + for (std::size_t component = 0U; component < 3U; ++component) { + result[6U * node + component] *= length; + } + } + return result; +} + +double ChannelNorm(const fesa::Vector& vector, const bool translation) { + double sum = 0.0; + const std::size_t offset = translation ? 0U : 3U; + for (std::size_t node = 0U; node < 4U; ++node) { + for (std::size_t component = 0U; component < 3U; ++component) { + const double value = vector[6U * node + offset + component]; + sum += value * value; + } + } + return std::sqrt(sum); +} + +double FrobeniusNorm(const fesa::Matrix& matrix) { + double sum = 0.0; + for (std::size_t row = 0U; row < matrix.Rows(); ++row) { + for (std::size_t column = 0U; column < matrix.Columns(); ++column) { + sum += matrix(row, column) * matrix(row, column); + } + } + return std::sqrt(sum); +} + +fesa::Matrix WorkConjugateTangent(const fesa::Matrix& tangent, + const double length) { + fesa::Matrix result = tangent; + for (std::size_t row = 0U; row < tangent.Rows(); ++row) { + const double row_scale = row % 6U < 3U ? length : 1.0; + for (std::size_t column = 0U; column < tangent.Columns(); ++column) { + const double column_scale = column % 6U < 3U ? length : 1.0; + result(row, column) *= row_scale * column_scale; + } + } + return result; +} + +void ExpectRelative(const double actual, const double expected) { + if (expected == 0.0) { + EXPECT_LE(std::abs(actual), 1.0e-12); + return; + } + EXPECT_LE(std::abs(actual - expected) / std::abs(expected), 1.0e-9); +} + +// NSNR-ELEM-TAN-001 +TEST(NonlinearMitc4Residual, EvaluatesResidualTangentAndRecoveryAtOneTrial) { + const auto nodes = Nodes(); + const auto shell = Shell(nodes); + const auto trial = Trial(); + const auto recovery = shell.RecoverState(trial); + const auto result = fesa::EvaluateInternalResidualAndTangent(shell, trial); + + ASSERT_TRUE(recovery.HasValue()); + ASSERT_TRUE(result.HasValue()); + EXPECT_EQ(result.Value().internal_residual.Size(), 24U); + EXPECT_EQ(result.Value().internal_tangent.Rows(), 24U); + EXPECT_EQ(result.Value().internal_tangent.Columns(), 24U); + EXPECT_DOUBLE_EQ(result.Value().physical_strain_energy, + result.Value().recovery.physical_strain_energy); + EXPECT_DOUBLE_EQ(result.Value().recovery.physical_strain_energy, + recovery.Value().physical_strain_energy); + for (std::size_t index = 0U; index < 24U; ++index) { + EXPECT_DOUBLE_EQ(result.Value().internal_residual[index], + result.Value().internal_force[index]); + } + for (std::size_t point = 0U; + point < result.Value().recovery.gauss_points.size(); ++point) { + EXPECT_EQ(result.Value().recovery.gauss_points[point].generalized_strain, + recovery.Value().gauss_points[point].generalized_strain); + EXPECT_EQ(result.Value().recovery.gauss_points[point].section_resultant, + recovery.Value().gauss_points[point].section_resultant); + } +} + +// NSNR-ELEM-TAN-002 and NSNR-ELEM-TAN-003 +TEST(NonlinearMitc4Tangent, MatchesTheApprovedDirectionalSchedule) { + const auto nodes = Nodes(); + const auto shell = Shell(nodes); + const auto trial = Trial(); + const auto direction = WorkConjugateDirection(nodes); + const double length = ReferenceLength(nodes); + const auto equilibrium = + fesa::EvaluateInternalResidualAndTangent(shell, trial); + ASSERT_TRUE(equilibrium.HasValue()); + + const fesa::Vector direction_vector = ToVector(direction); + const fesa::Vector analytical = WorkConjugate( + equilibrium.Value().internal_tangent.Multiply(direction_vector), length); + const std::array steps{1.0e-3, 3.0e-4, 1.0e-4, 3.0e-5, + 1.0e-5, 3.0e-6, 1.0e-6, 3.0e-7}; + std::array force_errors{}; + std::array moment_errors{}; + ASSERT_GT(ChannelNorm(analytical, true), 0.0); + ASSERT_GT(ChannelNorm(analytical, false), 0.0); + for (std::size_t index = 0U; index < steps.size(); ++index) { + const auto plus = fesa::EvaluateInternalResidualAndTangent( + shell, AddScaled(trial, direction, steps[index])); + const auto minus = fesa::EvaluateInternalResidualAndTangent( + shell, AddScaled(trial, direction, -steps[index])); + ASSERT_TRUE(plus.HasValue()); + ASSERT_TRUE(minus.HasValue()); + fesa::Vector derivative = plus.Value().internal_residual; + derivative.Axpy(-1.0, minus.Value().internal_residual); + derivative.Scale(0.5 / steps[index]); + derivative = WorkConjugate(derivative, length); + derivative.Axpy(-1.0, analytical); + force_errors[index] = + ChannelNorm(derivative, true) / ChannelNorm(analytical, true); + moment_errors[index] = + ChannelNorm(derivative, false) / ChannelNorm(analytical, false); + } + + std::size_t force_order_count = 0U; + std::size_t moment_order_count = 0U; + for (std::size_t index = 1U; index < force_errors.size(); ++index) { + if (force_errors[index - 1U] > 0.0 && force_errors[index] > 0.0) { + const double order = + std::log(force_errors[index - 1U] / force_errors[index]) / + std::log(steps[index - 1U] / steps[index]); + if (order >= 1.5) { + ++force_order_count; + } + } + if (moment_errors[index - 1U] > 0.0 && moment_errors[index] > 0.0) { + const double order = + std::log(moment_errors[index - 1U] / moment_errors[index]) / + std::log(steps[index - 1U] / steps[index]); + if (order >= 1.5) { + ++moment_order_count; + } + } + } + EXPECT_GE(force_order_count, 2U); + EXPECT_GE(moment_order_count, 2U); + EXPECT_LE(force_errors[3U], 1.0e-6); + EXPECT_LE(moment_errors[3U], 1.0e-6); +} + +// NSNR-ELEM-TAN-004 and NSNR-ELEM-TAN-005 +TEST(NonlinearMitc4Tangent, PreservesRigidTranslationNullspaceAndSymmetry) { + const auto nodes = Nodes(); + const auto equilibrium = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), {}); + ASSERT_TRUE(equilibrium.HasValue()); + const double length = ReferenceLength(nodes); + + fesa::NonlinearMitc4TrialDofs rigid_translation{}; + for (auto& displacement : rigid_translation.displacement) { + displacement = {0.3, -0.2, 0.4}; + } + const fesa::Vector null_action = + WorkConjugate(equilibrium.Value().internal_tangent.Multiply( + ToVector(rigid_translation)), + length); + EXPECT_LE(null_action.Norm(), 1.0e-10); + + const fesa::Matrix scaled_tangent = + WorkConjugateTangent(equilibrium.Value().internal_tangent, length); + fesa::Matrix antisymmetric = scaled_tangent; + for (std::size_t row = 0U; row < antisymmetric.Rows(); ++row) { + for (std::size_t column = 0U; column < antisymmetric.Columns(); ++column) { + antisymmetric(row, column) -= scaled_tangent(column, row); + } + } + ASSERT_GT(FrobeniusNorm(scaled_tangent), 0.0); + EXPECT_LE(FrobeniusNorm(antisymmetric) / FrobeniusNorm(scaled_tangent), + 1.0e-12); +} + +// NSNR-ELEM-TAN-006 +TEST(NonlinearMitc4Residual, DoesNotAcceptExternalLoadShares) { + const auto nodes = Nodes(); + const auto first = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), Trial()); + const auto second = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), Trial()); + ASSERT_TRUE(first.HasValue()); + ASSERT_TRUE(second.HasValue()); + for (std::size_t index = 0U; index < 24U; ++index) { + EXPECT_DOUBLE_EQ(first.Value().internal_residual[index], + second.Value().internal_residual[index]); + } +} + +// NSNR-ELEM-TAN-007 +TEST(NonlinearMitc4Objectivity, FiniteRigidMotionHasZeroInternalForce) { + const auto nodes = Nodes(); + const fesa::Vector3 rotation{0.3, -0.2, 0.1}; + const fesa::Matrix tensor = fesa::ExpSkew(rotation); + fesa::NonlinearMitc4TrialDofs trial{}; + for (std::size_t node = 0U; node < nodes.size(); ++node) { + const fesa::Vector3 initial{nodes[node].coordinates}; + const fesa::Vector3 rotated{ + tensor(0U, 0U) * initial.X() + tensor(0U, 1U) * initial.Y() + + tensor(0U, 2U) * initial.Z(), + tensor(1U, 0U) * initial.X() + tensor(1U, 1U) * initial.Y() + + tensor(1U, 2U) * initial.Z(), + tensor(2U, 0U) * initial.X() + tensor(2U, 1U) * initial.Y() + + tensor(2U, 2U) * initial.Z()}; + trial.displacement[node] = + rotated + fesa::Vector3{0.7, -0.4, 1.2} - initial; + trial.rotation_vector[node] = rotation; + } + const auto result = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), trial); + ASSERT_TRUE(result.HasValue()); + EXPECT_LE(result.Value().internal_residual.Norm(), 1.0e-10); + EXPECT_LE(result.Value().physical_strain_energy, 1.0e-12); +} + +// NSNR-ELEM-TAN-008 +TEST(NonlinearMitc4Patch, RetainsPhysicalRecoveryIdentities) { + const auto nodes = Nodes(); + const auto shell = Shell(nodes); + constexpr double kMembraneStrain = 1.0e-2; + const double green_strain = + kMembraneStrain + 0.5 * kMembraneStrain * kMembraneStrain; + constexpr double kYoungsModulus = 120.0; + constexpr double kPoissonRatio = 0.25; + constexpr double kThickness = 0.2; + const double plane_stress = + kYoungsModulus / (1.0 - kPoissonRatio * kPoissonRatio); + const double s11 = plane_stress * green_strain; + const double s22 = plane_stress * kPoissonRatio * green_strain; + fesa::NonlinearMitc4TrialDofs trial{}; + for (std::size_t node = 0U; node < nodes.size(); ++node) { + trial.displacement[node] = {kMembraneStrain * nodes[node].coordinates[0U], + 0.0, 0.0}; + } + const auto result = fesa::EvaluateInternalResidualAndTangent(shell, trial); + ASSERT_TRUE(result.HasValue()); + for (const auto& point : result.Value().recovery.gauss_points) { + ExpectRelative(point.generalized_strain[0U], green_strain); + for (std::size_t component = 1U; component < 8U; ++component) { + ExpectRelative(point.generalized_strain[component], 0.0); + } + ExpectRelative(point.section_resultant[0U], kThickness * s11); + ExpectRelative(point.section_resultant[1U], kThickness * s22); + for (std::size_t component = 2U; component < 8U; ++component) { + ExpectRelative(point.section_resultant[component], 0.0); + } + for (const auto& stress : point.stress) { + ExpectRelative(stress.components[0U], s11); + ExpectRelative(stress.components[1U], s22); + ExpectRelative(stress.components[2U], 0.0); + } + } +} + +// NSNR-ELEM-TAN-009 +TEST(NonlinearMitc4Residual, RejectsNonfiniteTrialData) { + const auto nodes = Nodes(); + auto trial = Trial(); + trial.rotation_vector[2U] = {std::numeric_limits::quiet_NaN(), 0.0, + 0.0}; + const auto result = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), trial); + ASSERT_FALSE(result.HasValue()); + EXPECT_EQ(result.GetStatus().Diagnostics()[0U].code, + "invalid-nonlinear-shell-trial"); + + auto overflow = Trial(); + overflow.displacement[1U] = {1.0e300, 0.0, 0.0}; + const auto overflow_result = + fesa::EvaluateInternalResidualAndTangent(Shell(nodes), overflow); + EXPECT_FALSE(overflow_result.HasValue()); +} + +} // namespace From 33997293b555e54a46d36b943f9717848d77cece Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:00:06 +0900 Subject: [PATCH 10/32] chore(nonlinear-static-newton-raphson): step 4 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 75c2098..a0cca16 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -37,7 +37,10 @@ { "step": 4, "name": "nonlinear-mitc4-residual-and-tangent", - "status": "pending" + "status": "completed", + "summary": "Added same-trial nonlinear MITC4 internal residual/tangent with objective drilling and directional, symmetry, objectivity, patch, and nonfinite coverage.", + "started_at": "2026-08-24T13:36:35+0900", + "completed_at": "2026-08-24T14:00:06+0900" }, { "step": 5, From a5676814118bd56b506966bff40164a2c3355c3d Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:13:14 +0900 Subject: [PATCH 11/32] feat(nonlinear-static-newton-raphson): step 5 - load-boundary-path-and-convergence-gates --- .../fesa/analysis/nonlinear_static_control.h | 131 +++++ src/fesa/CMakeLists.txt | 1 + .../analysis/nonlinear_static_control.cpp | 548 ++++++++++++++++++ tests/CMakeLists.txt | 1 + .../nonlinear_static_control_test.cpp | 365 ++++++++++++ 5 files changed, 1046 insertions(+) create mode 100644 include/fesa/analysis/nonlinear_static_control.h create mode 100644 src/fesa/analysis/nonlinear_static_control.cpp create mode 100644 tests/unit/analysis/nonlinear_static_control_test.cpp diff --git a/include/fesa/analysis/nonlinear_static_control.h b/include/fesa/analysis/nonlinear_static_control.h new file mode 100644 index 0000000..82a0be1 --- /dev/null +++ b/include/fesa/analysis/nonlinear_static_control.h @@ -0,0 +1,131 @@ +#ifndef FESA_ANALYSIS_NONLINEAR_STATIC_CONTROL_H_ +#define FESA_ANALYSIS_NONLINEAR_STATIC_CONTROL_H_ + +#include +#include +#include + +#include "fesa/core/diagnostic.h" +#include "fesa/core/status.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/math/sparse_matrix.h" +#include "fesa/math/vector.h" +#include "fesa/math/vector3.h" +#include "fesa/model/domain.h" + +namespace fesa { + +/// @brief Identifies one deterministic nonlinear load-factor increment. +struct LoadFactorIncrement { + std::uint32_t increment_index; + double load_factor; + bool is_factor_one; +}; + +/// @brief Identifies the physical dimension of a convergence threshold. +enum class NewtonChannelUnit { + kForce, + kForceLength, + kLength, + kDimensionless, +}; + +inline constexpr double kNewtonRelativeThreshold = 1.0e-2; +inline constexpr double kNewtonZeroScaleThreshold = 1.0e-3; + +/// @brief Carries one same-trial free residual convergence channel. +struct NewtonResidualChannelInput { + std::string identity; + Vector free_residual; + Vector free_internal; + Vector free_external; +}; + +/// @brief Carries one same-iteration free correction convergence channel. +struct NewtonCorrectionChannelInput { + std::string identity; + Vector fresh_correction; + Vector current_increment; +}; + +/// @brief Groups the four approved Newton convergence channels. +struct NewtonConvergenceInput { + NewtonResidualChannelInput force_residual; + NewtonResidualChannelInput moment_residual; + NewtonCorrectionChannelInput translation_correction; + NewtonCorrectionChannelInput rotation_correction; +}; + +/// @brief Identifies the only approved Newton convergence comparison branch. +enum class NewtonConvergenceBranch { kRelative, kZeroScale }; + +/// @brief Records the deterministic decision for one Newton channel. +struct NewtonChannelDecision { + std::string identity; + double numerator_norm; + double denominator_scale; + NewtonConvergenceBranch branch; + double threshold; + NewtonChannelUnit threshold_unit; + bool passed; +}; + +/// @brief Groups all four channel decisions and their logical conjunction. +struct NewtonConvergenceResult { + NewtonChannelDecision force_residual; + NewtonChannelDecision moment_residual; + NewtonChannelDecision translation_correction; + NewtonChannelDecision rotation_correction; + bool combined_passed; +}; + +/// @brief Stores the full-space fixed-load vector and its exact tangent. +struct GlobalFixedLoadContribution { + Vector generalized_external_force; + SparseMatrix generalized_external_tangent; + std::vector diagnostics; +}; + +/// @brief Derives the fixed nonlinear factor path from raw static controls. +/// @param step Immutable nonlinear static step that owns raw source controls. +/// @return Ordered factors ending in an exactly assigned factor one, or an +/// input failure. +Result> BuildFixedLoadFactorSequence( + const StepDefinition& step); + +/// @brief Scales factor-one prescribed targets from the zero step-start state. +/// @param step Immutable nonlinear step whose boundary order fixes output +/// order. +/// @param load_factor Current finite factor in the closed interval [0, 1]. +/// @return One absolute prescribed value per step boundary component, or an +/// input failure. +Result ApplyAbsolutePrescribedDisplacementTarget( + const StepDefinition& step, double load_factor); + +/// @brief Assembles fixed-global CLOAD work once in full generalized space. +/// @param domain Immutable nonlinear semantic model with one active step. +/// @param dofs Stable full-DOF mapping for domain nodes. +/// @param trial_generalized_coordinates Current full global [u, phi] trial. +/// @param load_factor Current finite factor in the closed interval [0, 1]. +/// @return External vector and tangent for r=f_int-f_ext and K=K_int-K_ext, +/// or a structured model/solver failure. +Result AssembleGlobalFixedLoadContribution( + const Domain& domain, const DofManager& dofs, + const Vector& trial_generalized_coordinates, double load_factor); + +/// @brief Rejects a nonzero source moment with director-parallel work. +/// @param director Current finite unit director in global coordinates. +/// @param source_moment Immutable fixed-global source moment. +/// @return Success when rho_M is at most 1e-12 or the source moment is zero. +Status CheckMomentAdmissibility(const Vector3& director, + const Vector3& source_moment); + +/// @brief Evaluates the four immutable, typed Newton convergence gates. +/// @param input Same-trial free residuals and same-iteration corrections. +/// @return Per-channel decision records and their logical conjunction. +NewtonConvergenceResult EvaluateNewtonConvergence( + const NewtonConvergenceInput& input); + +} // namespace fesa + +#endif // FESA_ANALYSIS_NONLINEAR_STATIC_CONTROL_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index de0913d..1f38875 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -4,6 +4,7 @@ add_library( analysis/analysis_model.cpp analysis/analysis_state.cpp analysis/linear_static_analysis.cpp + analysis/nonlinear_static_control.cpp app/fesa_application.cpp app/output_paths.cpp assembly/load_assembler.cpp diff --git a/src/fesa/analysis/nonlinear_static_control.cpp b/src/fesa/analysis/nonlinear_static_control.cpp new file mode 100644 index 0000000..543ce8f --- /dev/null +++ b/src/fesa/analysis/nonlinear_static_control.cpp @@ -0,0 +1,548 @@ +#include "fesa/analysis/nonlinear_static_control.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/assembly/load_assembler.h" +#include "fesa/elements/finite_rotation.h" + +namespace fesa { +namespace { + +constexpr std::size_t kDofsPerNode = 6U; +constexpr std::size_t kTranslationDofCount = 3U; +constexpr double kMomentAdmissibilityThreshold = 1.0e-12; + +/// @brief Creates a deterministic control-layer diagnostic status. +Status ControlFailure(const FailureCategory category, const std::string& code, + const SourceLocation& location, + const std::string& keyword, const std::string& identity, + const std::string& message) { + return Status::Failure(category, {{Severity::kError, code, location, keyword, + identity, message}}); +} + +/// @brief Verifies raw nonlinear static controls without deriving state. +Status ValidateNonlinearStaticControls(const StepDefinition& step) { + if (!step.IsNonlinearStatic() || !std::isfinite(step.InitialIncrement()) || + !(step.InitialIncrement() > 0.0) || !std::isfinite(step.TimePeriod()) || + step.TimePeriod() != 1.0 || !std::isfinite(step.MinimumIncrement()) || + !(step.MinimumIncrement() > 0.0) || + !std::isfinite(step.MaximumIncrement()) || + !(step.MaximumIncrement() > 0.0)) { + return ControlFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + step.Location(), "STATIC", step.Name(), + "A nonlinear static step requires four positive finite controls and " + "an exactly factor-one time period."); + } + return Status::Ok(); +} + +/// @brief Returns a finite three-component vector from full trial storage. +Result RotationVectorForNode(const Vector& trial, + const std::size_t node) { + const std::size_t first = node * kDofsPerNode + kTranslationDofCount; + if (first + kTranslationDofCount > trial.Size()) { + return Result::Failure(ControlFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {{}, 0U}, + "NONLINEAR_STATIC_CONTROL", std::to_string(node), + "The full trial coordinate vector does not contain every nodal " + "rotation component.")); + } + const Vector3 rotation{trial[first], trial[first + 1U], trial[first + 2U]}; + if (!rotation.IsFinite()) { + return Result::Failure(ControlFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {{}, 0U}, + "NONLINEAR_STATIC_CONTROL", std::to_string(node), + "The current trial rotation coordinate must be finite.")); + } + return Result::Success(rotation); +} + +/// @brief Builds a proper initial frame from its semantic nodal record. +Matrix InitialFrame(const ShellNodeInitialFrame& frame) { + Matrix result{3U, 3U}; + for (std::size_t row = 0U; row < kTranslationDofCount; ++row) { + result(row, 0U) = frame.tangent_a[row]; + result(row, 1U) = frame.tangent_b[row]; + result(row, 2U) = frame.director[row]; + } + return result; +} + +/// @brief Multiplies a 3-by-3 matrix by a Vector3. +Vector3 Multiply(const Matrix& matrix, const Vector3& vector) { + return {matrix(0U, 0U) * vector.X() + matrix(0U, 1U) * vector.Y() + + matrix(0U, 2U) * vector.Z(), + matrix(1U, 0U) * vector.X() + matrix(1U, 1U) * vector.Y() + + matrix(1U, 2U) * vector.Z(), + matrix(2U, 0U) * vector.X() + matrix(2U, 1U) * vector.Y() + + matrix(2U, 2U) * vector.Z()}; +} + +/// @brief Multiplies a 3-by-3 matrix transpose by a Vector3. +Vector3 MultiplyTranspose(const Matrix& matrix, const Vector3& vector) { + return {matrix(0U, 0U) * vector.X() + matrix(1U, 0U) * vector.Y() + + matrix(2U, 0U) * vector.Z(), + matrix(0U, 1U) * vector.X() + matrix(1U, 1U) * vector.Y() + + matrix(2U, 1U) * vector.Z(), + matrix(0U, 2U) * vector.X() + matrix(1U, 2U) * vector.Y() + + matrix(2U, 2U) * vector.Z()}; +} + +/// @brief Forms the three-dimensional skew matrix of a global vector. +Matrix Skew(const Vector3& vector) { + Matrix result{3U, 3U}; + result(0U, 1U) = -vector.Z(); + result(0U, 2U) = vector.Y(); + result(1U, 0U) = vector.Z(); + result(1U, 2U) = -vector.X(); + result(2U, 0U) = -vector.Y(); + result(2U, 1U) = vector.X(); + return result; +} + +/// @brief Scales a small dense matrix without changing its shape. +Matrix Scale(const Matrix& matrix, const double scale) { + Matrix result{matrix.Rows(), matrix.Columns()}; + for (std::size_t row = 0U; row < matrix.Rows(); ++row) { + for (std::size_t column = 0U; column < matrix.Columns(); ++column) { + result(row, column) = scale * matrix(row, column); + } + } + return result; +} + +/// @brief Adds matching small dense matrices. +Matrix Add(const Matrix& left, const Matrix& right) { + Matrix result{left.Rows(), left.Columns()}; + for (std::size_t row = 0U; row < left.Rows(); ++row) { + for (std::size_t column = 0U; column < left.Columns(); ++column) { + result(row, column) = left(row, column) + right(row, column); + } + } + return result; +} + +/// @brief Evaluates left-Jacobian coefficients and derivatives by theta +/// squared. +void LeftJacobianCoefficients(const double theta_squared, double& a, double& b, + double& da_dtheta_squared, + double& db_dtheta_squared) { + if (theta_squared < 1.0e-8) { + const double theta_fourth = theta_squared * theta_squared; + const double theta_sixth = theta_fourth * theta_squared; + a = 0.5 - theta_squared / 24.0 + theta_fourth / 720.0 - + theta_sixth / 40320.0; + b = 1.0 / 6.0 - theta_squared / 120.0 + theta_fourth / 5040.0 - + theta_sixth / 362880.0; + da_dtheta_squared = + -1.0 / 24.0 + theta_squared / 360.0 - theta_fourth / 13440.0; + db_dtheta_squared = + -1.0 / 120.0 + theta_squared / 2520.0 - theta_fourth / 120960.0; + return; + } + + const double theta = std::sqrt(theta_squared); + const double sine = std::sin(theta); + const double cosine = std::cos(theta); + a = (1.0 - cosine) / theta_squared; + b = (theta - sine) / (theta_squared * theta); + da_dtheta_squared = (theta * sine - 2.0 * (1.0 - cosine)) / + (2.0 * theta_squared * theta_squared); + db_dtheta_squared = + (1.0 - cosine) / (2.0 * theta_squared * theta_squared) - + 3.0 * (theta - sine) / (2.0 * theta_squared * theta_squared * theta); +} + +/// @brief Differentiates the SO(3) left Jacobian along one coordinate vector. +Matrix LeftJacobianDerivative(const Vector3& phi, const Vector3& direction) { + const Matrix skew = Skew(phi); + const Matrix direction_skew = Skew(direction); + const Matrix skew_squared = skew.Multiply(skew); + double a = 0.0; + double b = 0.0; + double da_dtheta_squared = 0.0; + double db_dtheta_squared = 0.0; + LeftJacobianCoefficients(phi.Dot(phi), a, b, da_dtheta_squared, + db_dtheta_squared); + const double derivative_scale = 2.0 * phi.Dot(direction); + return Add(Add(Scale(skew, derivative_scale * da_dtheta_squared), + Scale(direction_skew, a)), + Add(Scale(skew_squared, derivative_scale * db_dtheta_squared), + Scale(Add(direction_skew.Multiply(skew), + skew.Multiply(direction_skew)), + b))); +} + +/// @brief Projects the immutable source moment into current director tangent +/// space. +Vector3 ProjectMoment(const Vector3& director, const Vector3& source_moment) { + return source_moment - director.Dot(source_moment) * director; +} + +/// @brief Differentiates the projected moment along a coordinate direction. +Vector3 ProjectMomentDerivative(const Vector3& director, + const Vector3& director_derivative, + const Vector3& source_moment) { + return -director.Dot(source_moment) * director_derivative - + director_derivative.Dot(source_moment) * director; +} + +/// @brief Computes the infinity norm and reports finite input validity. +double InfinityNorm(const Vector& values, bool& is_finite) { + double result = 0.0; + for (std::size_t index = 0U; index < values.Size(); ++index) { + if (!std::isfinite(values[index])) { + is_finite = false; + return std::numeric_limits::quiet_NaN(); + } + result = (std::max)(result, std::abs(values[index])); + } + return result; +} + +/// @brief Evaluates one residual channel with its fixed physical zero-scale +/// unit. +NewtonChannelDecision EvaluateResidualChannel( + const NewtonResidualChannelInput& input, const NewtonChannelUnit unit) { + bool is_finite = input.free_residual.Size() == input.free_internal.Size() && + input.free_residual.Size() == input.free_external.Size(); + const double numerator = InfinityNorm(input.free_residual, is_finite); + const double internal = InfinityNorm(input.free_internal, is_finite); + const double external = InfinityNorm(input.free_external, is_finite); + const double denominator = (std::max)(internal, external); + if (!is_finite) { + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kZeroScale, + kNewtonZeroScaleThreshold, + unit, + false}; + } + if (denominator == 0.0) { + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kZeroScale, + kNewtonZeroScaleThreshold, + unit, + numerator <= kNewtonZeroScaleThreshold}; + } + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kRelative, + kNewtonRelativeThreshold, + NewtonChannelUnit::kDimensionless, + numerator / denominator <= kNewtonRelativeThreshold}; +} + +/// @brief Evaluates one correction channel with its fixed physical zero-scale +/// unit. +NewtonChannelDecision EvaluateCorrectionChannel( + const NewtonCorrectionChannelInput& input, const NewtonChannelUnit unit) { + bool is_finite = + input.fresh_correction.Size() == input.current_increment.Size(); + const double numerator = InfinityNorm(input.fresh_correction, is_finite); + const double denominator = InfinityNorm(input.current_increment, is_finite); + if (!is_finite) { + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kZeroScale, + kNewtonZeroScaleThreshold, + unit, + false}; + } + if (denominator == 0.0) { + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kZeroScale, + kNewtonZeroScaleThreshold, + unit, + numerator <= kNewtonZeroScaleThreshold}; + } + return {input.identity, + numerator, + denominator, + NewtonConvergenceBranch::kRelative, + kNewtonRelativeThreshold, + NewtonChannelUnit::kDimensionless, + numerator / denominator <= kNewtonRelativeThreshold}; +} + +} // namespace + +Result> BuildFixedLoadFactorSequence( + const StepDefinition& step) { + const Status control_status = ValidateNonlinearStaticControls(step); + if (!control_status.IsOk()) { + return Result>::Failure(control_status); + } + + std::vector increments; + std::uint32_t increment_index = 1U; + while (true) { + const double ordinal_factor = + static_cast(increment_index) * step.InitialIncrement(); + if (!std::isfinite(ordinal_factor)) { + return Result>::Failure(ControlFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + step.Location(), "STATIC", step.Name(), + "The fixed load-factor sequence must remain finite.")); + } + if (!(ordinal_factor < 1.0)) { + increments.push_back({increment_index, 1.0, true}); + break; + } + increments.push_back({increment_index, ordinal_factor, false}); + if (increment_index == (std::numeric_limits::max)()) { + return Result>::Failure(ControlFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + step.Location(), "STATIC", step.Name(), + "The fixed load-factor sequence exceeds the supported increment " + "identity range.")); + } + ++increment_index; + } + return Result>::Success( + std::move(increments)); +} + +Result ApplyAbsolutePrescribedDisplacementTarget( + const StepDefinition& step, const double load_factor) { + const Status control_status = ValidateNonlinearStaticControls(step); + if (!control_status.IsOk()) { + return Result::Failure(control_status); + } + if (!std::isfinite(load_factor) || load_factor < 0.0 || load_factor > 1.0) { + return Result::Failure(ControlFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + step.Location(), "BOUNDARY", step.Name(), + "The prescribed-displacement path requires a finite load factor in " + "the closed interval from zero to one.")); + } + + const auto& boundaries = step.PrescribedDisplacements(); + Vector targets{boundaries.Size()}; + for (std::size_t index = 0U; index < boundaries.Size(); ++index) { + const double target = boundaries[index].PrescribedValue(); + const double value = load_factor * target; + if (!std::isfinite(target) || !std::isfinite(value)) { + return Result::Failure(ControlFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + boundaries[index].Location(), "BOUNDARY", + boundaries[index].Target().target_name_or_label, + "The factor-one prescribed displacement target must remain finite.")); + } + targets[index] = value; + } + return Result::Success(std::move(targets)); +} + +Status CheckMomentAdmissibility(const Vector3& director, + const Vector3& source_moment) { + if (!source_moment.IsFinite()) { + return ControlFailure(FailureCategory::kModel, "nonfinite-newton-data", + {{}, 0U}, "CLOAD", "", + "The fixed-global source moment must be finite."); + } + if (source_moment == Vector3{}) { + return Status::Ok(); + } + if (!director.IsFinite() || !(director.Norm() > 0.0)) { + return ControlFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {{}, 0U}, "CLOAD", + "", "The current shell director must be finite and nonzero."); + } + const double source_norm = source_moment.Norm(); + const double rho = std::abs(director.Dot(source_moment)) / source_norm; + if (!std::isfinite(source_norm) || !(source_norm > 0.0) || + !std::isfinite(rho)) { + return ControlFailure( + FailureCategory::kModel, "nonfinite-newton-data", {{}, 0U}, "CLOAD", "", + "The fixed-global source moment norm must be finite."); + } + if (!(rho <= kMomentAdmissibilityThreshold)) { + return ControlFailure( + FailureCategory::kModel, "unsupported-drilling-load", {{}, 0U}, "CLOAD", + "", + "The aggregate nodal moment has an unsupported director-parallel " + "component."); + } + return Status::Ok(); +} + +Result AssembleGlobalFixedLoadContribution( + const Domain& domain, const DofManager& dofs, + const Vector& trial_generalized_coordinates, const double load_factor) { + if (!std::isfinite(load_factor) || load_factor < 0.0 || load_factor > 1.0 || + domain.Steps().Size() != 1U || !domain.Steps()[0U].IsNonlinearStatic()) { + return Result::Failure(ControlFailure( + FailureCategory::kModel, "invalid-nonlinear-static-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_CONTROL", + domain.SourceContentIdentity(), + "Fixed-load assembly requires one nonlinear step and a finite load " + "factor in the closed interval from zero to one.")); + } + const Status dof_status = dofs.ValidateInvariants(); + if (!dof_status.IsOk()) { + return Result::Failure(dof_status); + } + if (dofs.FullDofCount() != trial_generalized_coordinates.Size() || + domain.Nodes().size() > + (std::numeric_limits::max)() / kDofsPerNode || + dofs.FullDofCount() != domain.Nodes().size() * kDofsPerNode) { + return Result::Failure(ControlFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_CONTROL", + domain.SourceContentIdentity(), + "The full trial coordinates must match the stable Domain DOF " + "dimension.")); + } + for (std::size_t index = 0U; index < trial_generalized_coordinates.Size(); + ++index) { + if (!std::isfinite(trial_generalized_coordinates[index])) { + return Result::Failure(ControlFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_CONTROL", + std::to_string(index), + "The full trial coordinate vector must contain finite values.")); + } + } + + auto model = AnalysisModel::Create(domain); + if (!model.HasValue()) { + return Result::Failure(model.GetStatus()); + } + auto source_load = LoadAssembler::AssembleFullNodalLoad(model.Value(), dofs); + if (!source_load.HasValue()) { + return Result::Failure( + source_load.GetStatus()); + } + + Vector external_force{dofs.FullDofCount()}; + for (std::size_t index = 0U; index < external_force.Size(); ++index) { + external_force[index] = load_factor * source_load.Value()[index]; + } + + std::vector frames(domain.Nodes().size(), + nullptr); + for (const auto& frame : domain.ShellNodeInitialFrames()) { + if (frame.node_index >= frames.size() || + frames[frame.node_index] != nullptr) { + return Result::Failure(ControlFailure( + FailureCategory::kModel, "invalid-shell-director", + {domain.SourcePath(), 0U}, "NODE", std::to_string(frame.node_index), + "Shell nodal frames must provide one unique record per node.")); + } + frames[frame.node_index] = &frame; + } + + std::vector tangent_contributions; + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + const std::size_t first_rotation = + node * kDofsPerNode + kTranslationDofCount; + const Vector3 source_moment{source_load.Value()[first_rotation], + source_load.Value()[first_rotation + 1U], + source_load.Value()[first_rotation + 2U]}; + if (source_moment == Vector3{}) { + continue; + } + if (frames[node] == nullptr) { + return Result::Failure(ControlFailure( + FailureCategory::kModel, "invalid-shell-director", + domain.Nodes()[node].location, "NODE", + domain.Nodes()[node].source_id.source_label_text, + "A node carrying a moment requires an initial shell frame.")); + } + auto phi = RotationVectorForNode(trial_generalized_coordinates, node); + if (!phi.HasValue()) { + return Result::Failure(phi.GetStatus()); + } + auto rotation = + MakeFiniteRotationState(phi.Value(), InitialFrame(*frames[node])); + if (!rotation.HasValue()) { + return Result::Failure(rotation.GetStatus()); + } + const Status admissibility = + CheckMomentAdmissibility(rotation.Value().director, source_moment); + if (!admissibility.IsOk()) { + return Result::Failure(admissibility); + } + + const Matrix left_jacobian = LeftJacobianSO3(phi.Value()); + const Vector3 projected = + ProjectMoment(rotation.Value().director, source_moment); + const Vector3 rotational_force = + load_factor * MultiplyTranspose(left_jacobian, projected); + for (std::size_t row = 0U; row < kTranslationDofCount; ++row) { + external_force[first_rotation + row] = rotational_force[row]; + } + + for (std::size_t column = 0U; column < kTranslationDofCount; ++column) { + Vector3 direction{}; + if (column == 0U) { + direction = {1.0, 0.0, 0.0}; + } else if (column == 1U) { + direction = {0.0, 1.0, 0.0}; + } else { + direction = {0.0, 0.0, 1.0}; + } + const Matrix left_jacobian_derivative = + LeftJacobianDerivative(phi.Value(), direction); + const Vector3 director_derivative = + Multiply(left_jacobian, direction).Cross(rotation.Value().director); + const Vector3 projected_derivative = ProjectMomentDerivative( + rotation.Value().director, director_derivative, source_moment); + const Vector3 tangent_column = + load_factor * + (MultiplyTranspose(left_jacobian_derivative, projected) + + MultiplyTranspose(left_jacobian, projected_derivative)); + for (std::size_t row = 0U; row < kTranslationDofCount; ++row) { + tangent_contributions.push_back( + {first_rotation + row, first_rotation + column, tangent_column[row], + node, row * kTranslationDofCount + column}); + } + } + } + + auto tangent = SparseMatrix::FromCoo(dofs.FullDofCount(), dofs.FullDofCount(), + std::move(tangent_contributions), + dofs.GetSparsePattern()); + if (!tangent.HasValue()) { + return Result::Failure(tangent.GetStatus()); + } + return Result::Success( + {std::move(external_force), std::move(tangent.Value()), {}}); +} + +NewtonConvergenceResult EvaluateNewtonConvergence( + const NewtonConvergenceInput& input) { + NewtonConvergenceResult result{ + EvaluateResidualChannel(input.force_residual, NewtonChannelUnit::kForce), + EvaluateResidualChannel(input.moment_residual, + NewtonChannelUnit::kForceLength), + EvaluateCorrectionChannel(input.translation_correction, + NewtonChannelUnit::kLength), + EvaluateCorrectionChannel(input.rotation_correction, + NewtonChannelUnit::kDimensionless), + false}; + result.combined_passed = + result.force_residual.passed && result.moment_residual.passed && + result.translation_correction.passed && result.rotation_correction.passed; + return result; +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d94a2a1..e39e5be 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,6 +6,7 @@ add_executable( unit/analysis/analysis_test.cpp unit/analysis/analysis_model_test.cpp unit/analysis/analysis_state_test.cpp + unit/analysis/nonlinear_static_control_test.cpp unit/assembly/parallel_for_test.cpp unit/assembly/load_assembler_test.cpp unit/assembly/sparse_assembler_test.cpp diff --git a/tests/unit/analysis/nonlinear_static_control_test.cpp b/tests/unit/analysis/nonlinear_static_control_test.cpp new file mode 100644 index 0000000..a64c959 --- /dev/null +++ b/tests/unit/analysis/nonlinear_static_control_test.cpp @@ -0,0 +1,365 @@ +#include "fesa/analysis/nonlinear_static_control.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/model/domain.h" +#include "fesa/model/model_types.h" + +namespace { + +fesa::Vector VectorFrom(const std::vector& values) { + fesa::Vector result{values.size()}; + for (std::size_t index = 0U; index < values.size(); ++index) { + result[index] = values[index]; + } + return result; +} + +struct Fixture { + std::unique_ptr domain; + std::unique_ptr model; + std::unique_ptr dofs; +}; + +Fixture MakeFixture( + std::vector boundaries = {}, + std::vector loads = {}, + const double initial_increment = 0.1, const double time_period = 1.0, + const double minimum_increment = 1.0e-9, + const double maximum_increment = 5.0) { + const std::filesystem::path source{"nonlinear-static-control.inp"}; + fesa::ModelDefinition definition{}; + definition.source_path = source; + definition.source_content_identity = "control-fixture"; + definition.nodes = { + {{"Shell-1", 10, "10"}, {0.0, 0.0, 0.0}, {source, 1U}}, + {{"Shell-1", 20, "20"}, {1.0, 0.0, 0.0}, {source, 2U}}, + {{"Shell-1", 30, "30"}, {1.0, 1.0, 0.0}, {source, 3U}}, + {{"Shell-1", 40, "40"}, {0.0, 1.0, 0.0}, {source, 4U}}, + {{"Shell-1", 50, "50"}, {-1.0, 1.0, 0.0}, {source, 5U}}, + {{"Shell-1", 60, "60"}, {-1.0, 0.0, 0.0}, {source, 6U}}, + }; + definition.materials = {{"Material", 1000.0, 0.25, {source, 7U}}}; + definition.shell_sections = {{"Shell", 0.1, 0U, {source, 8U}}}; + definition.shell_elements = { + {{"Shell-1", 1, "1"}, + fesa::ShellSourceElementType::kS4, + {0U, 1U, 2U, 3U}, + 0U, + 0U, + {source, 9U}}, + {{"Shell-1", 2, "2"}, + fesa::ShellSourceElementType::kS4, + {0U, 3U, 4U, 5U}, + 0U, + 0U, + {source, 10U}}, + }; + for (std::size_t node = 0U; node < definition.nodes.size(); ++node) { + definition.shell_node_initial_frames.push_back( + {static_cast(node), + {0.0, 0.0, 1.0}, + {1.0, 0.0, 0.0}, + {0.0, 1.0, 0.0}}); + } + definition.steps = {{"Step-1", + std::move(boundaries), + std::move(loads), + fesa::StaticProcedureKind::kNonlinearFullNewton, + true, + initial_increment, + time_period, + minimum_increment, + maximum_increment, + {source, 11U}}}; + + auto domain_result = fesa::Domain::Create(std::move(definition)); + if (!domain_result.HasValue()) { + throw std::runtime_error{"Control fixture Domain construction failed."}; + } + auto domain = + std::make_unique(std::move(domain_result.Value())); + auto model_result = fesa::AnalysisModel::Create(*domain); + if (!model_result.HasValue()) { + throw std::runtime_error{ + "Control fixture AnalysisModel construction failed."}; + } + auto model = + std::make_unique(std::move(model_result.Value())); + auto dofs_result = fesa::DofManager::Create(*model); + if (!dofs_result.HasValue()) { + throw std::runtime_error{"Control fixture DofManager construction failed."}; + } + auto dofs = + std::make_unique(std::move(dofs_result.Value())); + return {std::move(domain), std::move(model), std::move(dofs)}; +} + +fesa::Vector TrialCoordinates(const Fixture& fixture) { + return fesa::Vector{fixture.dofs->FullDofCount()}; +} + +fesa::Vector AddScaled(const fesa::Vector& values, + const fesa::Vector& direction, const double scale) { + fesa::Vector result = values; + result.Axpy(scale, direction); + return result; +} + +double MaximumAbsoluteDifference(const fesa::Vector& left, + const fesa::Vector& right) { + if (left.Size() != right.Size()) { + throw std::invalid_argument{"Vector dimensions must match."}; + } + double maximum = 0.0; + for (std::size_t index = 0U; index < left.Size(); ++index) { + maximum = (std::max)(maximum, std::abs(left[index] - right[index])); + } + return maximum; +} + +fesa::NewtonConvergenceInput RelativeConvergenceInput() { + return { + {"residual_force", VectorFrom({1.0e-2}), VectorFrom({1.0}), + VectorFrom({0.5})}, + {"residual_moment", VectorFrom({1.0e-2}), VectorFrom({1.0}), + VectorFrom({0.25})}, + {"correction_translation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + {"correction_rotation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + }; +} + +// NSNR-CTRL-001, NSNR-CTRL-002, and NSNR-CTRL-017 +TEST(NonlinearStaticControl, BuildsFixedFactorSequenceWithExactEndpoint) { + const auto fixture = MakeFixture(); + const auto result = + fesa::BuildFixedLoadFactorSequence(fixture.domain->Steps()[0U]); + + ASSERT_TRUE(result.HasValue()); + ASSERT_EQ(result.Value().size(), 10U); + for (std::size_t index = 0U; index < result.Value().size(); ++index) { + const auto& increment = result.Value()[index]; + EXPECT_EQ(increment.increment_index, + static_cast(index + 1U)); + EXPECT_DOUBLE_EQ(increment.load_factor, + static_cast(index + 1U) * 0.1); + EXPECT_EQ(increment.is_factor_one, index + 1U == result.Value().size()); + } + EXPECT_DOUBLE_EQ(result.Value().back().load_factor, 1.0); + + const auto one_hundred = MakeFixture({}, {}, 0.01); + const auto one_hundred_result = + fesa::BuildFixedLoadFactorSequence(one_hundred.domain->Steps()[0U]); + ASSERT_TRUE(one_hundred_result.HasValue()); + ASSERT_EQ(one_hundred_result.Value().size(), 100U); + EXPECT_EQ(one_hundred_result.Value().back().increment_index, 100U); + EXPECT_TRUE(one_hundred_result.Value().back().is_factor_one); +} + +// NSNR-CTRL-003 +TEST(NonlinearStaticControl, IgnoresPositiveMinimumAndMaximumDuringStepping) { + const auto first = MakeFixture({}, {}, 0.3, 1.0, 1.0e-12, 100.0); + const auto second = MakeFixture({}, {}, 0.3, 1.0, 0.29, 0.31); + const auto first_result = + fesa::BuildFixedLoadFactorSequence(first.domain->Steps()[0U]); + const auto second_result = + fesa::BuildFixedLoadFactorSequence(second.domain->Steps()[0U]); + + ASSERT_TRUE(first_result.HasValue()); + ASSERT_TRUE(second_result.HasValue()); + ASSERT_EQ(first_result.Value().size(), second_result.Value().size()); + for (std::size_t index = 0U; index < first_result.Value().size(); ++index) { + EXPECT_DOUBLE_EQ(first_result.Value()[index].load_factor, + second_result.Value()[index].load_factor); + EXPECT_EQ(first_result.Value()[index].increment_index, + second_result.Value()[index].increment_index); + } +} + +// NSNR-CTRL-004 and NSNR-CTRL-005 +TEST(NonlinearLoadBoundary, AppliesAbsoluteBoundaryTargetsWithoutCorrection) { + const std::filesystem::path source{"nonlinear-static-control.inp"}; + const auto fixture = MakeFixture( + {{"10", 1, 1, 4.0, {source, 12U}}, {"20", 4, 4, -0.5, {source, 13U}}}); + const auto result = fesa::ApplyAbsolutePrescribedDisplacementTarget( + fixture.domain->Steps()[0U], 0.25); + + ASSERT_TRUE(result.HasValue()); + ASSERT_EQ(result.Value().Size(), 2U); + EXPECT_DOUBLE_EQ(result.Value()[0U], 1.0); + EXPECT_DOUBLE_EQ(result.Value()[1U], -0.125); + for (const std::size_t constrained : fixture.dofs->ConstrainedDofs()) { + EXPECT_EQ(TrialCoordinates(fixture)[constrained], 0.0); + } +} + +// NSNR-CTRL-006 and NSNR-CTRL-008 +TEST(NonlinearLoadBoundary, AssemblesEverySharedNodeLoadOnceInFixedGlobalAxes) { + const std::filesystem::path source{"nonlinear-static-control.inp"}; + const std::vector loads{ + {"10", 1, 8.0, {source, 20U}}, + {"10", 2, -4.0, {source, 21U}}, + {"10", 4, 2.0, {source, 22U}}, + }; + const auto fixture = MakeFixture({}, loads); + const fesa::Vector trial = TrialCoordinates(fixture); + const auto result = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, trial, 0.25); + + ASSERT_TRUE(result.HasValue()); + ASSERT_EQ(result.Value().generalized_external_force.Size(), + fixture.dofs->FullDofCount()); + EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[0U], 2.0); + EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[1U], -1.0); + EXPECT_DOUBLE_EQ(result.Value().generalized_external_force[3U], 0.5); + EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] + .ConcentratedLoads()[0U] + .GlobalComponents()[0U], + 8.0); + EXPECT_DOUBLE_EQ(fixture.domain->Steps()[0U] + .ConcentratedLoads()[2U] + .GlobalComponents()[3U], + 2.0); +} + +// NSNR-CTRL-007 +TEST(NonlinearLoadBoundary, RejectsDirectorAlignedMomentAboveTheExactBand) { + const fesa::Vector3 director{0.0, 0.0, 1.0}; + EXPECT_TRUE( + fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 1.0e-12}).IsOk()); + const auto rejected = + fesa::CheckMomentAdmissibility(director, {1.0, 0.0, 2.0e-12}); + EXPECT_FALSE(rejected.IsOk()); + ASSERT_EQ(rejected.Diagnostics().size(), 1U); + EXPECT_EQ(rejected.Diagnostics()[0U].code, "unsupported-drilling-load"); +} + +// NSNR-CTRL-009 +TEST(NonlinearLoadBoundary, PreservesSourceOrderDuringGlobalAccumulation) { + const std::filesystem::path source{"nonlinear-static-control.inp"}; + const auto fixture = MakeFixture({}, {{"10", 1, 1.0e16, {source, 30U}}, + {"10", 1, -1.0e16, {source, 31U}}, + {"10", 1, 1.0, {source, 32U}}}); + const fesa::Vector trial = TrialCoordinates(fixture); + const auto first = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, trial, 1.0); + const auto second = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, trial, 1.0); + + ASSERT_TRUE(first.HasValue()); + ASSERT_TRUE(second.HasValue()); + EXPECT_DOUBLE_EQ(first.Value().generalized_external_force[0U], 1.0); + EXPECT_EQ(first.Value().generalized_external_tangent.RowOffsets(), + second.Value().generalized_external_tangent.RowOffsets()); + EXPECT_EQ(first.Value().generalized_external_tangent.ColumnIndices(), + second.Value().generalized_external_tangent.ColumnIndices()); + EXPECT_EQ(first.Value().generalized_external_tangent.Values(), + second.Value().generalized_external_tangent.Values()); +} + +// NSNR-CTRL-010 and NSNR-CTRL-011 +TEST(NonlinearLoadBoundary, + DifferentiatesOneFixedSpatialMomentAndUsesSubtraction) { + const std::filesystem::path source{"nonlinear-static-control.inp"}; + const auto fixture = MakeFixture({}, {{"10", 4, 3.0, {source, 40U}}}); + fesa::Vector trial = TrialCoordinates(fixture); + trial[5U] = 0.4; + const auto result = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, trial, 0.7); + ASSERT_TRUE(result.HasValue()); + + fesa::Vector direction{fixture.dofs->FullDofCount()}; + direction[5U] = 1.0; + constexpr double kStep = 1.0e-6; + const auto plus = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, AddScaled(trial, direction, kStep), 0.7); + const auto minus = fesa::AssembleGlobalFixedLoadContribution( + *fixture.domain, *fixture.dofs, AddScaled(trial, direction, -kStep), 0.7); + ASSERT_TRUE(plus.HasValue()); + ASSERT_TRUE(minus.HasValue()); + + fesa::Vector derivative = plus.Value().generalized_external_force; + derivative.Axpy(-1.0, minus.Value().generalized_external_force); + derivative.Scale(0.5 / kStep); + const fesa::Vector tangent_action = + result.Value().generalized_external_tangent.Multiply(direction); + EXPECT_LE(MaximumAbsoluteDifference(derivative, tangent_action), 1.0e-8); + + fesa::Vector internal{fixture.dofs->FullDofCount()}; + internal[3U] = 5.0; + fesa::Vector residual = internal; + residual.Axpy(-1.0, result.Value().generalized_external_force); + EXPECT_DOUBLE_EQ(residual[3U], + 5.0 - result.Value().generalized_external_force[3U]); + EXPECT_DOUBLE_EQ( + -tangent_action[3U], + -result.Value().generalized_external_tangent.Multiply(direction)[3U]); +} + +// NSNR-CTRL-012, NSNR-CTRL-013, and NSNR-CTRL-014 +TEST(NonlinearConvergence, UsesOwnedRelativeThresholdsForEveryChannel) { + static_assert(fesa::kNewtonRelativeThreshold == 1.0e-2); + static_assert(fesa::kNewtonZeroScaleThreshold == 1.0e-3); + const auto result = + fesa::EvaluateNewtonConvergence(RelativeConvergenceInput()); + + EXPECT_TRUE(result.combined_passed); + const std::array decisions{ + result.force_residual, result.moment_residual, + result.translation_correction, result.rotation_correction}; + for (const auto& decision : decisions) { + EXPECT_FALSE(decision.identity.empty()); + EXPECT_DOUBLE_EQ(decision.numerator_norm, 1.0e-2); + EXPECT_DOUBLE_EQ(decision.denominator_scale, 1.0); + EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative); + EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold); + EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless); + EXPECT_TRUE(decision.passed); + } +} + +// NSNR-CTRL-015 and NSNR-CTRL-016 +TEST(NonlinearConvergence, AppliesTypedZeroScaleGatesToEmptyChannels) { + const fesa::NewtonConvergenceInput input{ + {"residual_force", fesa::Vector{0U}, fesa::Vector{0U}, fesa::Vector{0U}}, + {"residual_moment", fesa::Vector{0U}, fesa::Vector{0U}, fesa::Vector{0U}}, + {"correction_translation", fesa::Vector{0U}, fesa::Vector{0U}}, + {"correction_rotation", fesa::Vector{0U}, fesa::Vector{0U}}, + }; + const auto result = fesa::EvaluateNewtonConvergence(input); + const std::array decisions{ + result.force_residual, result.moment_residual, + result.translation_correction, result.rotation_correction}; + const std::array units{ + fesa::NewtonChannelUnit::kForce, fesa::NewtonChannelUnit::kForceLength, + fesa::NewtonChannelUnit::kLength, + fesa::NewtonChannelUnit::kDimensionless}; + + EXPECT_TRUE(result.combined_passed); + for (std::size_t index = 0U; index < decisions.size(); ++index) { + EXPECT_DOUBLE_EQ(decisions[index].numerator_norm, 0.0); + EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0); + EXPECT_EQ(decisions[index].branch, + fesa::NewtonConvergenceBranch::kZeroScale); + EXPECT_DOUBLE_EQ(decisions[index].threshold, + fesa::kNewtonZeroScaleThreshold); + EXPECT_EQ(decisions[index].threshold_unit, units[index]); + EXPECT_TRUE(decisions[index].passed); + } +} + +} // namespace From 162f84e71b338b1d9644a8b4072f0a9274520ca5 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:13:14 +0900 Subject: [PATCH 12/32] chore(nonlinear-static-newton-raphson): step 5 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index a0cca16..ba919b7 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -45,7 +45,10 @@ { "step": 5, "name": "load-boundary-path-and-convergence-gates", - "status": "pending" + "status": "completed", + "started_at": "2026-08-24T14:00:07+0900", + "summary": "Implemented fixed nonlinear load/boundary control, external tangent assembly, and typed Newton convergence gates with regression coverage.", + "completed_at": "2026-08-24T14:13:14+0900" }, { "step": 6, From 6c995e0ec8dfd6358069a6cdb8d99ded49272124 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:25:05 +0900 Subject: [PATCH 13/32] feat(nonlinear-static-newton-raphson): step 6 - backend-neutral-tangent-solver --- .../linear/mkl_pardiso_tangent_solver.h | 32 ++ include/fesa/solvers/linear/tangent_solver.h | 31 ++ src/fesa/CMakeLists.txt | 1 + .../linear/mkl_pardiso_tangent_solver.cpp | 294 ++++++++++++++++++ tests/CMakeLists.txt | 1 + .../linear/mkl_pardiso_solver_test.cpp | 9 + .../solvers/linear/tangent_solver_test.cpp | 132 ++++++++ 7 files changed, 500 insertions(+) create mode 100644 include/fesa/solvers/linear/mkl_pardiso_tangent_solver.h create mode 100644 include/fesa/solvers/linear/tangent_solver.h create mode 100644 src/fesa/solvers/linear/mkl_pardiso_tangent_solver.cpp create mode 100644 tests/unit/solvers/linear/tangent_solver_test.cpp diff --git a/include/fesa/solvers/linear/mkl_pardiso_tangent_solver.h b/include/fesa/solvers/linear/mkl_pardiso_tangent_solver.h new file mode 100644 index 0000000..640f14e --- /dev/null +++ b/include/fesa/solvers/linear/mkl_pardiso_tangent_solver.h @@ -0,0 +1,32 @@ +#ifndef FESA_SOLVERS_LINEAR_MKL_PARDISO_TANGENT_SOLVER_H_ +#define FESA_SOLVERS_LINEAR_MKL_PARDISO_TANGENT_SOLVER_H_ + +#include + +#include "fesa/solvers/linear/tangent_solver.h" + +namespace fesa { + +/// @brief Adapts full-CSR unsymmetric oneMKL PARDISO tangent solves. +class MklPardisoTangentSolver final : public TangentSolver { + public: + /// @brief Constructs an empty, unfactorized PARDISO tangent adapter. + MklPardisoTangentSolver(); + + /// @brief Releases retained PARDISO tangent backend state. + ~MklPardisoTangentSolver() override; + + /// @brief Validates and factorizes one fresh nonlinear tangent matrix. + Status FactorizeFresh(const SparseMatrix& matrix) override; + + /// @brief Solves one correction without refactorizing the tangent. + Status SolveCorrection(const Vector& rhs, Vector& correction) const override; + + private: + class Impl; + std::unique_ptr impl_; +}; + +} // namespace fesa + +#endif // FESA_SOLVERS_LINEAR_MKL_PARDISO_TANGENT_SOLVER_H_ diff --git a/include/fesa/solvers/linear/tangent_solver.h b/include/fesa/solvers/linear/tangent_solver.h new file mode 100644 index 0000000..eb3e2cd --- /dev/null +++ b/include/fesa/solvers/linear/tangent_solver.h @@ -0,0 +1,31 @@ +#ifndef FESA_SOLVERS_LINEAR_TANGENT_SOLVER_H_ +#define FESA_SOLVERS_LINEAR_TANGENT_SOLVER_H_ + +#include "fesa/core/status.h" + +namespace fesa { + +class SparseMatrix; +class Vector; + +/// @brief Factorizes one nonlinear tangent and solves its correction. +class TangentSolver { + public: + /// @brief Destroys a backend-neutral nonlinear tangent solver. + virtual ~TangentSolver() = default; + + /// @brief Replaces any retained state with a fresh tangent factorization. + /// @return Success or a structured solver failure. + virtual Status FactorizeFresh(const SparseMatrix& matrix) = 0; + + /// @brief Solves one correction using the current tangent factorization. + /// @param rhs Immutable free-DOF residual right-hand side. + /// @param correction Updated only after successful finite substitution. + /// @return Success or a structured solver failure. + virtual Status SolveCorrection(const Vector& rhs, Vector& correction) const = + 0; +}; + +} // namespace fesa + +#endif // FESA_SOLVERS_LINEAR_TANGENT_SOLVER_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 1f38875..11580a7 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -53,6 +53,7 @@ add_library( results/result_recovery.cpp results/shell_result_recovery.cpp solvers/linear/mkl_pardiso_solver.cpp + solvers/linear/mkl_pardiso_tangent_solver.cpp ) target_include_directories( diff --git a/src/fesa/solvers/linear/mkl_pardiso_tangent_solver.cpp b/src/fesa/solvers/linear/mkl_pardiso_tangent_solver.cpp new file mode 100644 index 0000000..1554b67 --- /dev/null +++ b/src/fesa/solvers/linear/mkl_pardiso_tangent_solver.cpp @@ -0,0 +1,294 @@ +#include "fesa/solvers/linear/mkl_pardiso_tangent_solver.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/math/sparse_matrix.h" +#include "fesa/math/vector.h" + +namespace fesa { +namespace { + +/// @brief Builds a structured nonlinear tangent-solver failure. +Status SolverFailure(const std::string& code, const std::string& identity, + const std::string& message) { + return Status::Failure( + FailureCategory::kSolver, + {{Severity::kError, code, {{}, 0U}, "PARDISO", identity, message}}); +} + +/// @brief Translates a PARDISO phase error into the stable solver taxonomy. +Status PardisoFailure(const MKL_INT phase, const MKL_INT error) { + std::string code; + std::string reason; + switch (error) { + case -4: + code = "pardiso-zero-or-negative-pivot"; + reason = "zero or negative pivot"; + break; + case -7: + code = "pardiso-singular-diagonal"; + reason = "singular diagonal"; + break; + case -8: + code = "pardiso-integer-overflow"; + reason = "32-bit backend integer overflow"; + break; + case 21: + case 22: + case 23: + case 24: + code = "pardiso-invalid-csr"; + reason = "matrix checker rejected the CSR indices"; + break; + default: + code = phase == 11 ? "pardiso-analysis-failed" + : phase == 22 ? "pardiso-factorization-failed" + : phase == 33 ? "pardiso-solve-failed" + : "pardiso-release-failed"; + reason = "backend error"; + break; + } + + const std::string phase_text = std::to_string(phase); + const std::string error_text = std::to_string(error); + return SolverFailure(code, "phase=" + phase_text + ",error=" + error_text, + "oneMKL PARDISO phase " + phase_text + + " failed with error " + error_text + " (" + reason + + ")."); +} + +/// @brief Reports whether a public size fits the private MKL integer type. +bool ConvertsToMklInt(const std::size_t value) { + return value <= + static_cast((std::numeric_limits::max)()); +} + +} // namespace + +class MklPardisoTangentSolver::Impl { + public: + Impl() = default; + + ~Impl() { static_cast(Release()); } + + /// @brief Replaces any retained state with one validated full-CSR tangent. + Status FactorizeFresh(const SparseMatrix& matrix) { + const MKL_INT release_error = Release(); + if (release_error != 0) { + return PardisoFailure(-1, release_error); + } + + const Status csr_status = matrix.Validate(); + if (!csr_status.IsOk()) { + return SolverFailure("solver-invalid-csr", "public-csr", + "The public sparse matrix failed CSR validation."); + } + if (matrix.Rows() != matrix.Columns()) { + return SolverFailure("solver-matrix-not-square", "matrix-shape", + "PARDISO factorization requires a square matrix."); + } + if (matrix.Rows() == 0U) { + // PARDISO does not accept n=0, but a fully constrained nonlinear + // correction remains a valid factorize/solve lifecycle. + factorized_ = true; + return Status::Ok(); + } + if (!ConvertsToMklInt(matrix.Rows()) || + !ConvertsToMklInt(matrix.Values().size())) { + return SolverFailure( + "solver-dimension-overflow", "matrix-shape", + "Sparse matrix dimensions exceed the oneMKL integer range."); + } + + const Status copy_status = CopyValidatedFullCsr(matrix); + if (!copy_status.IsOk()) { + ClearOwnedArrays(); + return copy_status; + } + + // The nonlinear tangent is generally nonsymmetric, so PARDISO consumes + // the complete public CSR with mtype=11 instead of an SPD triangle. + pt_.fill(nullptr); + iparm_.fill(0); + pardisoinit(pt_.data(), &mtype_, iparm_.data()); + iparm_[26] = 1; // Validate sorted CSR integer arrays. + iparm_[34] = 1; // Consume the project's native zero-based CSR. + permutation_.assign(static_cast(equation_count_), 0); + owns_pardiso_state_ = true; + + MKL_INT phase = 11; + MKL_INT error = 0; + CallPardiso(phase, nullptr, nullptr, error); + if (error != 0) { + const Status failure = PardisoFailure(phase, error); + static_cast(Release()); + return failure; + } + + phase = 22; + error = 0; + CallPardiso(phase, nullptr, nullptr, error); + if (error != 0) { + const Status failure = PardisoFailure(phase, error); + static_cast(Release()); + return failure; + } + if (iparm_[13] != 0) { + const Status failure = SolverFailure( + "pardiso-perturbed-pivot", "phase=22", + "oneMKL PARDISO perturbed one or more tangent pivots."); + static_cast(Release()); + return failure; + } + + factorized_ = true; + return Status::Ok(); + } + + /// @brief Solves one correction while preserving caller output on failure. + Status SolveCorrection(const Vector& rhs, Vector& correction) { + if (!factorized_) { + return SolverFailure( + "solver-not-factorized", "factorization-state", + "Substitution requires a successful retained factorization."); + } + const std::size_t size = static_cast(equation_count_); + if (rhs.Size() != size || correction.Size() != size) { + return SolverFailure( + "solver-vector-dimension-mismatch", "rhs-or-correction", + "RHS and correction dimensions must match the factorized matrix."); + } + for (std::size_t index = 0U; index < rhs.Size(); ++index) { + if (!std::isfinite(rhs[index])) { + return SolverFailure("nonfinite-solver-rhs", std::to_string(index), + "PARDISO RHS values must be finite."); + } + } + if (size == 0U) { + return Status::Ok(); + } + + std::vector rhs_copy(rhs.Data(), rhs.Data() + rhs.Size()); + Vector candidate{size}; + MKL_INT phase = 33; + MKL_INT error = 0; + CallPardiso(phase, rhs_copy.data(), candidate.Data(), error); + if (error != 0) { + return PardisoFailure(phase, error); + } + for (std::size_t index = 0U; index < candidate.Size(); ++index) { + if (!std::isfinite(candidate[index])) { + return SolverFailure( + "nonfinite-solver-solution", std::to_string(index), + "PARDISO substitution produced a nonfinite solution."); + } + } + + correction = std::move(candidate); + return Status::Ok(); + } + + private: + /// @brief Copies validated public CSR without symmetry or diagonal filtering. + Status CopyValidatedFullCsr(const SparseMatrix& matrix) { + equation_count_ = static_cast(matrix.Rows()); + row_offsets_.clear(); + column_indices_.clear(); + values_.clear(); + row_offsets_.reserve(matrix.RowOffsets().size()); + column_indices_.reserve(matrix.ColumnIndices().size()); + values_.reserve(matrix.Values().size()); + + for (const std::size_t offset : matrix.RowOffsets()) { + if (!ConvertsToMklInt(offset)) { + return SolverFailure("solver-dimension-overflow", "row-offsets", + "CSR row offsets exceed the oneMKL integer " + "range."); + } + row_offsets_.push_back(static_cast(offset)); + } + for (const std::size_t column : matrix.ColumnIndices()) { + if (!ConvertsToMklInt(column)) { + return SolverFailure("solver-dimension-overflow", "column-indices", + "CSR indices exceed the oneMKL integer range."); + } + column_indices_.push_back(static_cast(column)); + } + values_ = matrix.Values(); + return Status::Ok(); + } + + /// @brief Calls PARDISO with retained private arrays and phase state. + void CallPardiso(const MKL_INT phase, double* rhs, double* correction, + MKL_INT& error) { + pardiso(pt_.data(), &max_factorizations_, &matrix_number_, &mtype_, &phase, + &equation_count_, values_.data(), row_offsets_.data(), + column_indices_.data(), permutation_.data(), &rhs_count_, + iparm_.data(), &message_level_, rhs, correction, &error); + } + + /// @brief Releases backend state and resets every retained array. + MKL_INT Release() noexcept { + MKL_INT error = 0; + if (owns_pardiso_state_) { + const MKL_INT phase = -1; + double placeholder = 0.0; + CallPardiso(phase, &placeholder, &placeholder, error); + } + owns_pardiso_state_ = false; + factorized_ = false; + pt_.fill(nullptr); + iparm_.fill(0); + permutation_.clear(); + ClearOwnedArrays(); + return error; + } + + /// @brief Clears FESA-owned CSR arrays without touching backend state. + void ClearOwnedArrays() noexcept { + equation_count_ = 0; + row_offsets_.clear(); + column_indices_.clear(); + values_.clear(); + } + + std::array pt_{}; + std::array iparm_{}; + std::vector row_offsets_; + std::vector column_indices_; + std::vector permutation_; + std::vector values_; + MKL_INT equation_count_{0}; + MKL_INT max_factorizations_{1}; + MKL_INT matrix_number_{1}; + MKL_INT mtype_{11}; + MKL_INT rhs_count_{1}; + MKL_INT message_level_{0}; + bool owns_pardiso_state_{false}; + bool factorized_{false}; +}; + +MklPardisoTangentSolver::MklPardisoTangentSolver() + : impl_{std::make_unique()} {} + +MklPardisoTangentSolver::~MklPardisoTangentSolver() = default; + +Status MklPardisoTangentSolver::FactorizeFresh(const SparseMatrix& matrix) { + return impl_->FactorizeFresh(matrix); +} + +Status MklPardisoTangentSolver::SolveCorrection(const Vector& rhs, + Vector& correction) const { + return impl_->SolveCorrection(rhs, correction); +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e39e5be..a561bba 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -48,6 +48,7 @@ add_executable( unit/results/results_writer_test.cpp unit/solvers/linear/linear_solver_test.cpp unit/solvers/linear/mkl_pardiso_solver_test.cpp + unit/solvers/linear/tangent_solver_test.cpp ) target_include_directories( diff --git a/tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp b/tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp index fd5f608..1a6953e 100644 --- a/tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp +++ b/tests/unit/solvers/linear/mkl_pardiso_solver_test.cpp @@ -123,6 +123,15 @@ TEST(MklPardisoSolver, ReusesOneFactorizationForRepeatedRhs) { EXPECT_LE(NormalizedResidual(matrix, second, rhs_second), 1.0e-10); } +TEST(MklPardisoSolver, StillRejectsNonsymmetricPublicCsr) { + const auto nonsymmetric = MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0}); + fesa::MklPardisoSolver solver; + + const auto status = solver.Factorize(nonsymmetric); + ExpectStructuredSolverFailure(status); + EXPECT_EQ(status.Diagnostics()[0U].code, "solver-matrix-not-symmetric"); +} + TEST(MklPardisoSolver, RefactorizesWithoutLeakingState) { const auto first_matrix = MakeDenseCsr(2U, {4.0, 1.0, 1.0, 3.0}); const auto second_matrix = MakeDenseCsr(2U, {2.0, 0.0, 0.0, 5.0}); diff --git a/tests/unit/solvers/linear/tangent_solver_test.cpp b/tests/unit/solvers/linear/tangent_solver_test.cpp new file mode 100644 index 0000000..0dab893 --- /dev/null +++ b/tests/unit/solvers/linear/tangent_solver_test.cpp @@ -0,0 +1,132 @@ +#include "fesa/solvers/linear/mkl_pardiso_tangent_solver.h" + +#include + +#include +#include +#include +#include +#include +#include + +#include "fesa/fem/dof_manager.h" +#include "fesa/math/sparse_matrix.h" +#include "fesa/math/vector.h" +#include "fesa/solvers/linear/tangent_solver.h" + +namespace { + +fesa::SparseMatrix MakeDenseCsr(const std::size_t size, + const std::vector& values) { + EXPECT_EQ(values.size(), size * size); + + fesa::SparsePattern pattern; + std::vector contributions; + pattern.row_offsets.reserve(size + 1U); + pattern.row_offsets.push_back(0U); + for (std::size_t row = 0U; row < size; ++row) { + for (std::size_t column = 0U; column < size; ++column) { + pattern.column_indices.push_back(column); + contributions.push_back( + {row, column, values[row * size + column], row, column}); + } + pattern.row_offsets.push_back(pattern.column_indices.size()); + } + + auto matrix = fesa::SparseMatrix::FromCoo(size, size, + std::move(contributions), pattern); + EXPECT_TRUE(matrix.HasValue()); + return std::move(matrix.Value()); +} + +fesa::Vector MakeVector(const std::initializer_list values) { + fesa::Vector result{values.size()}; + std::size_t index = 0U; + for (const double value : values) { + result[index++] = value; + } + return result; +} + +void ExpectSolverFailure(const fesa::Status& status) { + EXPECT_FALSE(status.IsOk()); + EXPECT_EQ(status.Category(), fesa::FailureCategory::kSolver); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics().front().severity, fesa::Severity::kError); +} + +TEST(TangentSolver, SolvesNonsymmetricKnownCorrection) { + static_assert( + std::is_base_of_v); + static_assert(std::has_virtual_destructor_v); + + const auto matrix = MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0}); + const auto rhs = MakeVector({4.0, 6.0}); + fesa::MklPardisoTangentSolver concrete_solver; + fesa::TangentSolver& solver = concrete_solver; + + ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()); + fesa::Vector correction{2U}; + ASSERT_TRUE(solver.SolveCorrection(rhs, correction).IsOk()); + EXPECT_NEAR(correction[0U], 1.0, 1.0e-14); + EXPECT_NEAR(correction[1U], 2.0, 1.0e-14); +} + +TEST(TangentSolver, SolvesTrivialZeroEquationSystem) { + const auto matrix = MakeDenseCsr(0U, {}); + fesa::MklPardisoTangentSolver solver; + + ASSERT_TRUE(solver.FactorizeFresh(matrix).IsOk()); + fesa::Vector correction{0U}; + EXPECT_TRUE(solver.SolveCorrection(fesa::Vector{0U}, correction).IsOk()); + EXPECT_EQ(correction.Size(), 0U); +} + +TEST(TangentSolver, RejectsNonfiniteInputsWithoutModifyingCorrection) { + const fesa::SparsePattern pattern{{0U, 1U}, {0U}}; + const auto nonfinite_matrix = fesa::SparseMatrix::FromCoo( + 1U, 1U, + {{0U, 0U, (std::numeric_limits::quiet_NaN)(), 0U, 0U}}, + pattern); + EXPECT_FALSE(nonfinite_matrix.HasValue()); + EXPECT_EQ(nonfinite_matrix.GetStatus().Diagnostics().front().code, + "nonfinite-sparse-value"); + + fesa::MklPardisoTangentSolver solver; + ASSERT_TRUE(solver.FactorizeFresh(MakeDenseCsr(2U, {2.0, 1.0, 0.0, 3.0})) + .IsOk()); + auto rhs = MakeVector({4.0, 6.0}); + rhs[1U] = (std::numeric_limits::infinity)(); + fesa::Vector correction = MakeVector({17.0, -4.0}); + + const auto status = solver.SolveCorrection(rhs, correction); + ExpectSolverFailure(status); + EXPECT_EQ(status.Diagnostics().front().code, "nonfinite-solver-rhs"); + EXPECT_DOUBLE_EQ(correction[0U], 17.0); + EXPECT_DOUBLE_EQ(correction[1U], -4.0); +} + +TEST(TangentSolver, ReportsSingularFactorizationDeterministically) { + fesa::MklPardisoTangentSolver solver; + + const auto status = + solver.FactorizeFresh(MakeDenseCsr(2U, {0.0, 0.0, 0.0, 0.0})); + ASSERT_FALSE(status.IsOk()); + ExpectSolverFailure(status); + EXPECT_EQ(status.Diagnostics().front().code, "pardiso-perturbed-pivot"); + EXPECT_EQ(status.Diagnostics().front().entity_identity, "phase=22"); +} + +TEST(TangentSolver, RejectsSolveBeforeSuccessfulFactorization) { + fesa::MklPardisoTangentSolver solver; + fesa::Vector correction = MakeVector({23.0, -9.0}); + + const auto status = + solver.SolveCorrection(MakeVector({1.0, 2.0}), correction); + ExpectSolverFailure(status); + EXPECT_EQ(status.Diagnostics().front().code, "solver-not-factorized"); + EXPECT_DOUBLE_EQ(correction[0U], 23.0); + EXPECT_DOUBLE_EQ(correction[1U], -9.0); +} + +} // namespace From b0d53fb8f8e4b3c6fa7b94c8178b1659dc8b7a66 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:25:05 +0900 Subject: [PATCH 14/32] chore(nonlinear-static-newton-raphson): step 6 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index ba919b7..79a8b29 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -53,7 +53,10 @@ { "step": 6, "name": "backend-neutral-tangent-solver", - "status": "pending" + "status": "completed", + "started_at": "2026-08-24T14:13:14+0900", + "summary": "Added an unsymmetric full-CSR PARDISO tangent solver with fail-closed pivot handling and regression coverage while preserving SPD solver behavior.", + "completed_at": "2026-08-24T14:25:05+0900" }, { "step": 7, From 902bc79e164088edbdaccc76bb8f26c478676013 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:34:19 +0900 Subject: [PATCH 15/32] feat(nonlinear-static-newton-raphson): step 7 - newton-iteration-log-writer --- include/fesa/analysis/newton_iteration_log.h | 89 +++++ src/fesa/CMakeLists.txt | 1 + src/fesa/analysis/newton_iteration_log.cpp | 328 ++++++++++++++++++ tests/CMakeLists.txt | 1 + .../analysis/newton_iteration_log_test.cpp | 327 +++++++++++++++++ 5 files changed, 746 insertions(+) create mode 100644 include/fesa/analysis/newton_iteration_log.h create mode 100644 src/fesa/analysis/newton_iteration_log.cpp create mode 100644 tests/unit/analysis/newton_iteration_log_test.cpp diff --git a/include/fesa/analysis/newton_iteration_log.h b/include/fesa/analysis/newton_iteration_log.h new file mode 100644 index 0000000..6c2b9c4 --- /dev/null +++ b/include/fesa/analysis/newton_iteration_log.h @@ -0,0 +1,89 @@ +#ifndef FESA_ANALYSIS_NEWTON_ITERATION_LOG_H_ +#define FESA_ANALYSIS_NEWTON_ITERATION_LOG_H_ + +#include +#include +#include +#include + +#include "fesa/analysis/nonlinear_static_control.h" +#include "fesa/core/status.h" + +namespace fesa { + +/// @brief Identifies the latest Newton procedure stage reached by a record. +enum class NewtonIterationStage { + kEntered, + kKinematicsEvaluated, + kInternalAssembled, + kExternalAssembled, + kSolvedCorrection, + kConvergenceEvaluated, + kAccepted, + kFailed, +}; + +/// @brief Carries the controlled failure that ended one Newton iteration. +struct NewtonIterationFailure { + bool present; + NewtonIterationStage stage; + std::string diagnostic_code; + std::string reason; +}; + +/// @brief Carries one fixed-schema Newton iteration diagnostic record. +struct NewtonIterationLogRecord { + std::string step_name; + std::uint32_t increment_index; + double load_factor; + std::uint32_t iteration; + NewtonIterationStage last_completed_stage; + NewtonIterationFailure failure; + std::string transition; + std::string outcome; + std::string diagnostic_code; + NewtonChannelDecision force_residual; + NewtonChannelDecision moment_residual; + NewtonChannelDecision translation_correction; + NewtonChannelDecision rotation_correction; + bool combined_passed; +}; + +/// @brief Writes deterministic, line-oriented Newton iteration diagnostics. +/// @note A write, flush, or close failure permanently prevents a successful +/// log lifecycle for this writer instance. +class NewtonIterationLogWriter { + public: + /// @brief Opens and truncates the diagnostic log before Newton execution. + /// @param log_path Derived application-owned diagnostic-log path. + /// @return Success when the writer owns an empty binary log, otherwise an + /// output failure with code `log-output-failure`. + Status Open(const std::filesystem::path& log_path); + + /// @brief Writes one complete LF-terminated Newton iteration record. + /// @param record Explicit stage, outcome, and typed convergence decision. + /// @return Success after writing a complete record, otherwise an output + /// failure with code `log-output-failure`. + Status Write(const NewtonIterationLogRecord& record); + + /// @brief Flushes every complete record written so far to the log. + /// @return Success after the stream flush, otherwise an output failure with + /// code `log-output-failure`. + Status Flush(); + + /// @brief Closes the log before authoritative result finalization. + /// @return Success after close, otherwise an output failure with code + /// `log-output-failure`. + Status Close(); + + private: + enum class State { kReady, kOpen, kClosed, kFailed }; + + std::ofstream stream_; + std::filesystem::path log_path_; + State state_{State::kReady}; +}; + +} // namespace fesa + +#endif // FESA_ANALYSIS_NEWTON_ITERATION_LOG_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 11580a7..f075443 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -4,6 +4,7 @@ add_library( analysis/analysis_model.cpp analysis/analysis_state.cpp analysis/linear_static_analysis.cpp + analysis/newton_iteration_log.cpp analysis/nonlinear_static_control.cpp app/fesa_application.cpp app/output_paths.cpp diff --git a/src/fesa/analysis/newton_iteration_log.cpp b/src/fesa/analysis/newton_iteration_log.cpp new file mode 100644 index 0000000..9c96ee7 --- /dev/null +++ b/src/fesa/analysis/newton_iteration_log.cpp @@ -0,0 +1,328 @@ +#include "fesa/analysis/newton_iteration_log.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace fesa { +namespace { + +struct ChannelSpec { + std::string_view label_prefix; + std::string_view identity; +}; + +Status LogOutputFailure(const std::filesystem::path& log_path, + const std::string& message) { + return Status::Failure( + FailureCategory::kOutput, + {{Severity::kError, + "log-output-failure", + {{}, 0U}, + "", + log_path.generic_u8string(), + message}}); +} + +std::string EscapeText(const std::string_view value) { + constexpr char kHexDigits[] = "0123456789ABCDEF"; + std::string escaped; + escaped.reserve(value.size()); + for (const unsigned char byte : value) { + switch (byte) { + case '\\': + escaped += "\\\\"; + break; + case '\t': + escaped += "\\t"; + break; + case '\n': + escaped += "\\n"; + break; + case '\r': + escaped += "\\r"; + break; + case '\0': + escaped += "\\0"; + break; + default: + if (byte < 0x20U || byte == 0x7FU) { + escaped += "\\x"; + escaped += kHexDigits[byte >> 4U]; + escaped += kHexDigits[byte & 0x0FU]; + } else { + escaped += static_cast(byte); + } + break; + } + } + return escaped; +} + +Result FormatFiniteNumber(const double value, + const std::filesystem::path& log_path) { + if (!std::isfinite(value)) { + return Result::Failure( + LogOutputFailure(log_path, "A Newton log numeric value is nonfinite.")); + } + + std::array buffer{}; + const auto conversion = std::to_chars( + buffer.data(), buffer.data() + buffer.size(), value, + std::chars_format::general, std::numeric_limits::max_digits10); + if (conversion.ec != std::errc{}) { + return Result::Failure( + LogOutputFailure(log_path, "A Newton log numeric value could not format.")); + } + return Result::Success( + std::string{buffer.data(), conversion.ptr}); +} + +Result BranchLabel( + const NewtonConvergenceBranch branch, + const std::filesystem::path& log_path) { + switch (branch) { + case NewtonConvergenceBranch::kRelative: + return Result::Success("relative"); + case NewtonConvergenceBranch::kZeroScale: + return Result::Success("zero-scale"); + } + return Result::Failure(LogOutputFailure( + log_path, "A Newton log convergence branch is not supported.")); +} + +Result UnitLabel(const NewtonChannelUnit unit, + const std::filesystem::path& log_path) { + switch (unit) { + case NewtonChannelUnit::kForce: + return Result::Success("force"); + case NewtonChannelUnit::kForceLength: + return Result::Success("force*length"); + case NewtonChannelUnit::kLength: + return Result::Success("length"); + case NewtonChannelUnit::kDimensionless: + return Result::Success("1"); + } + return Result::Failure(LogOutputFailure( + log_path, "A Newton log threshold unit is not supported.")); +} + +std::string StageLabel(const NewtonIterationStage stage) { + switch (stage) { + case NewtonIterationStage::kEntered: + return "iteration-entered"; + case NewtonIterationStage::kKinematicsEvaluated: + return "trial-state"; + case NewtonIterationStage::kInternalAssembled: + return "residual"; + case NewtonIterationStage::kExternalAssembled: + return "load-boundary"; + case NewtonIterationStage::kSolvedCorrection: + return "correction"; + case NewtonIterationStage::kConvergenceEvaluated: + return "convergence-gates"; + case NewtonIterationStage::kAccepted: + return "commit"; + case NewtonIterationStage::kFailed: + return "failed"; + } + return "failed"; +} + +bool AreChannelsEvaluated(const NewtonIterationLogRecord& record) { + if (!record.failure.present) { + return true; + } + return record.last_completed_stage == + NewtonIterationStage::kConvergenceEvaluated || + record.last_completed_stage == NewtonIterationStage::kAccepted; +} + +void AppendField(std::vector* fields, const std::string_view label, + const std::string& value) { + fields->push_back(std::string{label} + "=" + value); +} + +Status AppendChannelFields( + std::vector* fields, const ChannelSpec spec, + const NewtonChannelDecision& decision, const bool evaluated, + const std::string& not_evaluated, const std::filesystem::path& log_path) { + const std::string prefix{spec.label_prefix}; + if (!evaluated) { + for (const std::string_view suffix : + {"channel", "numerator_norm", "denominator_scale", "branch", + "threshold", "threshold_unit", "pass"}) { + AppendField(fields, prefix + "_" + std::string{suffix}, not_evaluated); + } + return Status::Ok(); + } + + if (decision.identity != spec.identity) { + return LogOutputFailure(log_path, + "A Newton log channel identity is invalid."); + } + const auto numerator = FormatFiniteNumber(decision.numerator_norm, log_path); + if (!numerator.HasValue()) { + return numerator.GetStatus(); + } + const auto denominator = + FormatFiniteNumber(decision.denominator_scale, log_path); + if (!denominator.HasValue()) { + return denominator.GetStatus(); + } + const auto branch = BranchLabel(decision.branch, log_path); + if (!branch.HasValue()) { + return branch.GetStatus(); + } + const auto threshold = FormatFiniteNumber(decision.threshold, log_path); + if (!threshold.HasValue()) { + return threshold.GetStatus(); + } + const auto unit = UnitLabel(decision.threshold_unit, log_path); + if (!unit.HasValue()) { + return unit.GetStatus(); + } + + AppendField(fields, prefix + "_channel", decision.identity); + AppendField(fields, prefix + "_numerator_norm", numerator.Value()); + AppendField(fields, prefix + "_denominator_scale", denominator.Value()); + AppendField(fields, prefix + "_branch", std::string{branch.Value()}); + AppendField(fields, prefix + "_threshold", threshold.Value()); + AppendField(fields, prefix + "_threshold_unit", std::string{unit.Value()}); + AppendField(fields, prefix + "_pass", decision.passed ? "1" : "0"); + return Status::Ok(); +} + +Result SerializeRecord(const NewtonIterationLogRecord& record, + const std::filesystem::path& log_path) { + const auto load_factor = FormatFiniteNumber(record.load_factor, log_path); + if (!load_factor.HasValue()) { + return Result::Failure(load_factor.GetStatus()); + } + + const bool channels_evaluated = AreChannelsEvaluated(record); + const std::string not_evaluated = + "not-evaluated(" + EscapeText(record.failure.reason) + ")"; + std::vector fields; + fields.reserve(39U); + AppendField(&fields, "record", "newton-iteration"); + AppendField(&fields, "schema", "nsnr-log-v1"); + AppendField(&fields, "increment", std::to_string(record.increment_index)); + AppendField(&fields, "target_factor", load_factor.Value()); + AppendField(&fields, "iteration", std::to_string(record.iteration)); + AppendField(&fields, "last_completed_stage", + StageLabel(record.last_completed_stage)); + AppendField(&fields, "failing_stage", + record.failure.present ? StageLabel(record.failure.stage) : "none"); + + const std::array specs{{ + {"residual_force", "residual_force"}, + {"residual_moment", "residual_moment"}, + {"correction_translation", "correction_translation"}, + {"correction_rotation", "correction_rotation"}, + }}; + const std::array decisions{{ + &record.force_residual, + &record.moment_residual, + &record.translation_correction, + &record.rotation_correction, + }}; + for (std::size_t index = 0U; index < specs.size(); ++index) { + const Status channel_status = + AppendChannelFields(&fields, specs[index], *decisions[index], + channels_evaluated, not_evaluated, log_path); + if (!channel_status.IsOk()) { + return Result::Failure(channel_status); + } + } + AppendField(&fields, "combined_pass", + channels_evaluated ? (record.combined_passed ? "1" : "0") + : not_evaluated); + AppendField(&fields, "transition", EscapeText(record.transition)); + AppendField(&fields, "outcome", EscapeText(record.outcome)); + AppendField(&fields, "diagnostic_code", EscapeText(record.diagnostic_code)); + + std::string line; + for (std::size_t index = 0U; index < fields.size(); ++index) { + if (index != 0U) { + line += '\t'; + } + line += fields[index]; + } + line += '\n'; + return Result::Success(std::move(line)); +} + +} // namespace + +Status NewtonIterationLogWriter::Open(const std::filesystem::path& log_path) { + if (state_ != State::kReady) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log writer is not ready."); + } + + log_path_ = log_path; + stream_.open(log_path_, std::ios::binary | std::ios::out | std::ios::trunc); + if (!stream_.is_open() || !stream_) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log could not open."); + } + state_ = State::kOpen; + return Status::Ok(); +} + +Status NewtonIterationLogWriter::Write(const NewtonIterationLogRecord& record) { + if (state_ != State::kOpen) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log writer is not open."); + } + + const auto line = SerializeRecord(record, log_path_); + if (!line.HasValue()) { + state_ = State::kFailed; + return line.GetStatus(); + } + stream_.write(line.Value().data(), + static_cast(line.Value().size())); + if (!stream_) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log record could not write."); + } + return Status::Ok(); +} + +Status NewtonIterationLogWriter::Flush() { + if (state_ != State::kOpen) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log writer is not open."); + } + + stream_.flush(); + if (!stream_) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log could not flush."); + } + return Status::Ok(); +} + +Status NewtonIterationLogWriter::Close() { + if (state_ != State::kOpen) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log writer is not open."); + } + + stream_.close(); + if (stream_.fail()) { + state_ = State::kFailed; + return LogOutputFailure(log_path_, "The Newton log could not close."); + } + state_ = State::kClosed; + return Status::Ok(); +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a561bba..f8738c6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -7,6 +7,7 @@ add_executable( unit/analysis/analysis_model_test.cpp unit/analysis/analysis_state_test.cpp unit/analysis/nonlinear_static_control_test.cpp + unit/analysis/newton_iteration_log_test.cpp unit/assembly/parallel_for_test.cpp unit/assembly/load_assembler_test.cpp unit/assembly/sparse_assembler_test.cpp diff --git a/tests/unit/analysis/newton_iteration_log_test.cpp b/tests/unit/analysis/newton_iteration_log_test.cpp new file mode 100644 index 0000000..e12d4df --- /dev/null +++ b/tests/unit/analysis/newton_iteration_log_test.cpp @@ -0,0 +1,327 @@ +#include "fesa/analysis/newton_iteration_log.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +namespace { + +class TempDirectory { + public: + explicit TempDirectory(const std::string& label) { + const auto tick = + std::chrono::steady_clock::now().time_since_epoch().count(); + path_ = std::filesystem::temp_directory_path() / + ("fesa-newton-log-" + label + "-" + std::to_string(tick)); + std::error_code error; + if (!std::filesystem::create_directory(path_, error) || error) { + throw std::runtime_error{"Unable to create Newton log test fixture."}; + } + } + + TempDirectory(const TempDirectory&) = delete; + TempDirectory& operator=(const TempDirectory&) = delete; + + ~TempDirectory() { + std::error_code ignored; + std::filesystem::remove_all(path_, ignored); + } + + const std::filesystem::path& Path() const noexcept { return path_; } + + private: + std::filesystem::path path_; +}; + +void ExpectLogOutputFailure(const fesa::Status& status) { + ASSERT_FALSE(status.IsOk()); + ASSERT_EQ(status.Category(), fesa::FailureCategory::kOutput); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics().front().code, "log-output-failure"); +} + +std::vector SplitTabs(const std::string& line) { + std::vector fields; + std::size_t start = 0U; + while (start <= line.size()) { + const std::size_t end = line.find('\t', start); + if (end == std::string::npos) { + fields.push_back(line.substr(start)); + return fields; + } + fields.push_back(line.substr(start, end - start)); + start = end + 1U; + } + return fields; +} + +const std::string& FieldValue(const std::vector& fields, + const std::string_view label) { + const std::string prefix = std::string{label} + "="; + for (const std::string& field : fields) { + if (field.compare(0U, prefix.size(), prefix) == 0) { + return field; + } + } + throw std::runtime_error{"Newton log field is missing."}; +} + +std::string ValueAfterEquals(const std::string& field) { + return field.substr(field.find('=') + 1U); +} + +fesa::NewtonChannelDecision MakeDecision(const std::string& identity) { + return {identity, + 0.0012345678901234567, + 1.2345678901234567, + fesa::NewtonConvergenceBranch::kRelative, + fesa::kNewtonRelativeThreshold, + fesa::NewtonChannelUnit::kDimensionless, + true}; +} + +fesa::NewtonIterationLogRecord CompleteRecord() { + return {"Step-1", + 3U, + 0.12345678901234567, + 2U, + fesa::NewtonIterationStage::kConvergenceEvaluated, + {false, fesa::NewtonIterationStage::kFailed, "", ""}, + "accept", + "accepted", + "none", + MakeDecision("residual_force"), + MakeDecision("residual_moment"), + MakeDecision("correction_translation"), + MakeDecision("correction_rotation"), + true}; +} + +std::vector WriteAndRead( + const std::filesystem::path& path, + const fesa::NewtonIterationLogRecord& record) { + fesa::NewtonIterationLogWriter writer; + if (!writer.Open(path).IsOk() || !writer.Write(record).IsOk() || + !writer.Flush().IsOk() || !writer.Close().IsOk()) { + throw std::runtime_error{"Unable to write Newton log test record."}; + } + + std::ifstream input{path, std::ios::binary}; + if (!input.is_open()) { + throw std::runtime_error{"Unable to read Newton log test record."}; + } + const std::string contents{std::istreambuf_iterator{input}, + std::istreambuf_iterator{}}; + if (contents.empty()) { + throw std::runtime_error{"Newton log test record is empty."}; + } + EXPECT_EQ(contents.back(), '\n'); + EXPECT_EQ(std::count(contents.begin(), contents.end(), '\n'), 1); + EXPECT_EQ(contents.find('\r'), std::string::npos); + EXPECT_FALSE(contents.size() >= 3U && + static_cast(contents[0U]) == 0xEFU && + static_cast(contents[1U]) == 0xBBU && + static_cast(contents[2U]) == 0xBFU); + return SplitTabs(contents.substr(0U, contents.size() - 1U)); +} + +// NSNR-LOG-001, NSNR-LOG-002, and NSNR-LOG-003 +TEST(NewtonIterationLog, WritesOneLfTerminated39FieldRecordInApprovedOrder) { + TempDirectory directory{"complete"}; + const auto fields = + WriteAndRead(directory.Path() / "model_log.txt", CompleteRecord()); + + const std::vector labels{ + "record", "schema", "increment", "target_factor", "iteration", + "last_completed_stage", "failing_stage", "residual_force_channel", + "residual_force_numerator_norm", "residual_force_denominator_scale", + "residual_force_branch", "residual_force_threshold", + "residual_force_threshold_unit", "residual_force_pass", + "residual_moment_channel", "residual_moment_numerator_norm", + "residual_moment_denominator_scale", "residual_moment_branch", + "residual_moment_threshold", "residual_moment_threshold_unit", + "residual_moment_pass", "correction_translation_channel", + "correction_translation_numerator_norm", + "correction_translation_denominator_scale", + "correction_translation_branch", "correction_translation_threshold", + "correction_translation_threshold_unit", "correction_translation_pass", + "correction_rotation_channel", "correction_rotation_numerator_norm", + "correction_rotation_denominator_scale", "correction_rotation_branch", + "correction_rotation_threshold", "correction_rotation_threshold_unit", + "correction_rotation_pass", "combined_pass", "transition", "outcome", + "diagnostic_code"}; + + ASSERT_EQ(fields.size(), labels.size()); + for (std::size_t index = 0U; index < labels.size(); ++index) { + EXPECT_EQ(fields[index].substr(0U, fields[index].find('=')), labels[index]); + } + EXPECT_EQ(FieldValue(fields, "record"), "record=newton-iteration"); + EXPECT_EQ(FieldValue(fields, "schema"), "schema=nsnr-log-v1"); +} + +// NSNR-LOG-004 +TEST(NewtonIterationLog, FormatsFiniteNumbersForLocaleIndependentRoundTrip) { + TempDirectory directory{"numbers"}; + const auto fields = + WriteAndRead(directory.Path() / "model_log.txt", CompleteRecord()); + const std::string value = ValueAfterEquals(FieldValue(fields, "target_factor")); + + double parsed = 0.0; + const auto result = std::from_chars(value.data(), value.data() + value.size(), + parsed, std::chars_format::general); + EXPECT_EQ(result.ec, std::errc{}); + EXPECT_EQ(result.ptr, value.data() + value.size()); + EXPECT_DOUBLE_EQ(parsed, 0.12345678901234567); + EXPECT_NE(value.find('.'), std::string::npos); + EXPECT_EQ(value.find(','), std::string::npos); +} + +// NSNR-LOG-005 and NSNR-LOG-007 +TEST(NewtonIterationLog, SerializesChannelDecisionsAndExplicitOutcomeFields) { + TempDirectory directory{"channels"}; + const auto fields = + WriteAndRead(directory.Path() / "model_log.txt", CompleteRecord()); + + for (const std::string_view prefix : + {"residual_force", "residual_moment", "correction_translation", + "correction_rotation"}) { + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_channel"), + std::string{prefix} + "_channel=" + std::string{prefix}); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_numerator_norm"), + std::string{prefix} + + "_numerator_norm=0.0012345678901234567"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_denominator_scale"), + std::string{prefix} + + "_denominator_scale=1.2345678901234567"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_branch"), + std::string{prefix} + "_branch=relative"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_threshold"), + std::string{prefix} + "_threshold=0.01"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_threshold_unit"), + std::string{prefix} + "_threshold_unit=1"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_pass"), + std::string{prefix} + "_pass=1"); + } + EXPECT_EQ(FieldValue(fields, "last_completed_stage"), + "last_completed_stage=convergence-gates"); + EXPECT_EQ(FieldValue(fields, "failing_stage"), "failing_stage=none"); + EXPECT_EQ(FieldValue(fields, "combined_pass"), "combined_pass=1"); + EXPECT_EQ(FieldValue(fields, "transition"), "transition=accept"); + EXPECT_EQ(FieldValue(fields, "outcome"), "outcome=accepted"); + EXPECT_EQ(FieldValue(fields, "diagnostic_code"), "diagnostic_code=none"); +} + +// NSNR-LOG-006 +TEST(NewtonIterationLog, SerializesEmptyChannelsAsTypedZeroScaleDecisions) { + TempDirectory directory{"zero-scale"}; + auto record = CompleteRecord(); + const std::vector units{ + fesa::NewtonChannelUnit::kForce, fesa::NewtonChannelUnit::kForceLength, + fesa::NewtonChannelUnit::kLength, fesa::NewtonChannelUnit::kDimensionless}; + fesa::NewtonChannelDecision* decisions[]{ + &record.force_residual, &record.moment_residual, + &record.translation_correction, &record.rotation_correction}; + for (std::size_t index = 0U; index < std::size(decisions); ++index) { + decisions[index]->numerator_norm = 0.0; + decisions[index]->denominator_scale = 0.0; + decisions[index]->branch = fesa::NewtonConvergenceBranch::kZeroScale; + decisions[index]->threshold = fesa::kNewtonZeroScaleThreshold; + decisions[index]->threshold_unit = units[index]; + decisions[index]->passed = true; + } + + const auto fields = WriteAndRead(directory.Path() / "model_log.txt", record); + for (const std::string_view prefix : + {"residual_force", "residual_moment", "correction_translation", + "correction_rotation"}) { + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_numerator_norm"), + std::string{prefix} + "_numerator_norm=0"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_denominator_scale"), + std::string{prefix} + "_denominator_scale=0"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_branch"), + std::string{prefix} + "_branch=zero-scale"); + EXPECT_EQ(FieldValue(fields, std::string{prefix} + "_threshold"), + std::string{prefix} + "_threshold=0.001"); + } + EXPECT_EQ(FieldValue(fields, "residual_force_threshold_unit"), + "residual_force_threshold_unit=force"); + EXPECT_EQ(FieldValue(fields, "residual_moment_threshold_unit"), + "residual_moment_threshold_unit=force*length"); + EXPECT_EQ(FieldValue(fields, "correction_translation_threshold_unit"), + "correction_translation_threshold_unit=length"); + EXPECT_EQ(FieldValue(fields, "correction_rotation_threshold_unit"), + "correction_rotation_threshold_unit=1"); +} + +// NSNR-LOG-008 and NSNR-LOG-009 +TEST(NewtonIterationLog, EscapesStringsAndOmitsUnevaluatedFailureFields) { + TempDirectory directory{"failure"}; + auto record = CompleteRecord(); + record.last_completed_stage = fesa::NewtonIterationStage::kInternalAssembled; + record.failure = {true, + fesa::NewtonIterationStage::kExternalAssembled, + "load\\failure", + std::string{"external\tload\nmissing\r"} + '\0'}; + record.transition = "fail\ttransition"; + record.outcome = "failed\nrecord"; + record.diagnostic_code = std::string{"external\\load\r"} + '\0'; + const auto fields = WriteAndRead(directory.Path() / "model_log.txt", record); + + const std::string not_evaluated = + "not-evaluated(external\\tload\\nmissing\\r\\0)"; + for (std::size_t index = 7U; index < 36U; ++index) { + EXPECT_EQ(ValueAfterEquals(fields[index]), not_evaluated); + } + EXPECT_EQ(FieldValue(fields, "failing_stage"), + "failing_stage=load-boundary"); + EXPECT_EQ(FieldValue(fields, "transition"), + "transition=fail\\ttransition"); + EXPECT_EQ(FieldValue(fields, "outcome"), "outcome=failed\\nrecord"); + EXPECT_EQ(FieldValue(fields, "diagnostic_code"), + "diagnostic_code=external\\\\load\\r\\0"); +} + +// NSNR-LOG-010 +TEST(NewtonIterationLog, ReportsWriteFlushAndCloseStateFailures) { + TempDirectory directory{"failures"}; + const auto path = directory.Path() / "model_log.txt"; + fesa::NewtonIterationLogWriter writer; + ExpectLogOutputFailure(writer.Write(CompleteRecord())); + ExpectLogOutputFailure(writer.Flush()); + ExpectLogOutputFailure(writer.Close()); + + fesa::NewtonIterationLogWriter invalid_open_writer; + ExpectLogOutputFailure( + invalid_open_writer.Open(directory.Path() / "missing" / "log.txt")); + + fesa::NewtonIterationLogWriter closed_writer; + ASSERT_TRUE(closed_writer.Open(path).IsOk()); + ASSERT_TRUE(closed_writer.Close().IsOk()); + ExpectLogOutputFailure(closed_writer.Write(CompleteRecord())); + ExpectLogOutputFailure(closed_writer.Flush()); + ExpectLogOutputFailure(closed_writer.Close()); +} + +// NSNR-LOG-011 +TEST(NewtonIterationLog, LeavesZeroByteLogForNonNewtonControlledFailurePath) { + TempDirectory directory{"zero-byte"}; + const auto path = directory.Path() / "model_log.txt"; + fesa::NewtonIterationLogWriter writer; + + ASSERT_TRUE(writer.Open(path).IsOk()); + ASSERT_TRUE(writer.Close().IsOk()); + EXPECT_TRUE(std::filesystem::exists(path)); + EXPECT_EQ(std::filesystem::file_size(path), 0U); +} + +} // namespace From f0dcc6def44e8477b9bb7a5c72c8407dfd1df2f9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:34:19 +0900 Subject: [PATCH 16/32] chore(nonlinear-static-newton-raphson): step 7 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 79a8b29..28ebc03 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -61,7 +61,10 @@ { "step": 7, "name": "newton-iteration-log-writer", - "status": "pending" + "status": "completed", + "started_at": "2026-08-24T14:25:05+0900", + "summary": "Added fixed-schema Newton iteration log serialization with fail-closed file lifecycle and regression coverage.", + "completed_at": "2026-08-24T14:34:19+0900" }, { "step": 8, From a100178be25c568b5f0ba6051e043ffea9fd56f9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:52:08 +0900 Subject: [PATCH 17/32] feat(nonlinear-static-newton-raphson): step 8 - nonlinear-state-commit-rollback --- .../fesa/analysis/nonlinear_analysis_state.h | 118 +++++ src/fesa/CMakeLists.txt | 1 + .../analysis/nonlinear_analysis_state.cpp | 320 ++++++++++++ tests/CMakeLists.txt | 1 + .../nonlinear_analysis_state_test.cpp | 456 ++++++++++++++++++ 5 files changed, 896 insertions(+) create mode 100644 include/fesa/analysis/nonlinear_analysis_state.h create mode 100644 src/fesa/analysis/nonlinear_analysis_state.cpp create mode 100644 tests/unit/analysis/nonlinear_analysis_state_test.cpp diff --git a/include/fesa/analysis/nonlinear_analysis_state.h b/include/fesa/analysis/nonlinear_analysis_state.h new file mode 100644 index 0000000..7efee97 --- /dev/null +++ b/include/fesa/analysis/nonlinear_analysis_state.h @@ -0,0 +1,118 @@ +#ifndef FESA_ANALYSIS_NONLINEAR_ANALYSIS_STATE_H_ +#define FESA_ANALYSIS_NONLINEAR_ANALYSIS_STATE_H_ + +#include +#include +#include + +#include "fesa/core/source_identity.h" +#include "fesa/core/status.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/math/vector.h" +#include "fesa/model/domain.h" +#include "fesa/results/result_records.h" + +namespace fesa { + +/// @brief Stores one fixed-reference baseline orientation for a source node. +struct NonlinearNodeBaseline { + EntityIndex node_index; + SourceEntityId source_id; + std::array, 3> triad; + std::array director; +}; + +/// @brief Carries the complete stable-order nonlinear node baseline. +struct NonlinearStateBaselineInput { + std::vector node_baselines; +}; + +/// @brief Owns one complete nonlinear trial or committed state identity. +struct NonlinearTrialState { + std::uint32_t increment_index; + double load_factor; + bool is_factor_zero_baseline; + std::vector nodal_internal_order; + std::vector nodal_source_ids; + Vector generalized_coordinates; + Vector displacement; + Vector rotation_vector; + std::vector, 3>> nodal_triad; + std::vector> nodal_director; + Vector internal_force; + Vector external_force; + Vector residual; + Vector reaction; + std::vector shell_results; + double physical_strain_energy; + std::array global_equilibrium; +}; + +/// @brief Stores one authoritative nonlinear increment frame. +struct AcceptedFrameState { + std::uint32_t frame_index; + std::uint32_t increment_index; + double load_factor; + std::uint32_t iteration_count; + bool is_factor_one; + std::vector nodal_internal_order; + std::vector nodal_source_ids; + Vector generalized_coordinates; + Vector displacement; + Vector rotation_vector; + std::vector, 3>> nodal_triad; + std::vector> nodal_director; + Vector internal_force; + Vector external_force; + Vector residual; + Vector reaction; + std::vector shell_results; + double physical_strain_energy; + std::array global_equilibrium; +}; + +/// @brief Owns committed nonlinear state and validated accepted frames. +class NonlinearAnalysisState { + public: + /// @brief Creates the factor-zero committed state from fixed node baselines. + /// @param domain Immutable owner of stable node and shell-element identities. + /// @param dofs Owner of the full global [u, phi] dimension. + /// @param baseline One finite triad/director entry per Domain node. + /// @return A factor-zero state or a structured model failure. + static Result Create( + const Domain& domain, const DofManager& dofs, + const NonlinearStateBaselineInput& baseline); + + /// @brief Returns an independent trial initialized from committed state. + /// @return A copy that the caller may mutate without changing committed state. + Result BeginTrialFromCommitted() const; + + /// @brief Atomically appends one complete validated accepted frame. + /// @param frame Converged factor-ordered state with full residual evidence. + /// @return Success after replacing committed state and appending the frame. + Status CommitAcceptedFrame(const AcceptedFrameState& frame); + + /// @brief Discards caller-owned trial work without changing committed state. + void DiscardTrial() noexcept; + + /// @brief Returns accepted frames in stable load-factor order. + const std::vector& AcceptedFrames() const noexcept; + + /// @brief Returns the current committed factor-zero or accepted state. + const NonlinearTrialState& CommittedState() const noexcept; + + private: + /// @brief Retains the validated immutable inventory for frame commits. + NonlinearAnalysisState(NonlinearTrialState committed_state, + std::size_t full_dof_count, + std::vector shell_element_order); + + NonlinearTrialState committed_state_; + std::size_t full_dof_count_; + std::vector shell_element_order_; + std::vector accepted_frames_; +}; + +} // namespace fesa + +#endif // FESA_ANALYSIS_NONLINEAR_ANALYSIS_STATE_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index f075443..28b617c 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -5,6 +5,7 @@ add_library( analysis/analysis_state.cpp analysis/linear_static_analysis.cpp analysis/newton_iteration_log.cpp + analysis/nonlinear_analysis_state.cpp analysis/nonlinear_static_control.cpp app/fesa_application.cpp app/output_paths.cpp diff --git a/src/fesa/analysis/nonlinear_analysis_state.cpp b/src/fesa/analysis/nonlinear_analysis_state.cpp new file mode 100644 index 0000000..79c6a91 --- /dev/null +++ b/src/fesa/analysis/nonlinear_analysis_state.cpp @@ -0,0 +1,320 @@ +#include "fesa/analysis/nonlinear_analysis_state.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/elements/element_definition.h" + +namespace fesa { +namespace { + +constexpr std::size_t kDofsPerNode = 6U; +constexpr std::size_t kShellLocationsPerElement = 4U; +constexpr std::uint32_t kMaximumNewtonIterations = 100U; + +/// @brief Creates one failure without exposing a partially built state. +Status StateFailure(const FailureCategory category, const std::string& code, + const std::string& identity, const std::string& message) { + return Status::Failure( + category, + {{Severity::kError, code, {}, "NONLINEAR_ANALYSIS_STATE", identity, + message}}); +} + +/// @brief Compares every preserved source-identity component. +bool SourceIdsMatch(const SourceEntityId& left, const SourceEntityId& right) { + return left.instance_name == right.instance_name && + left.source_label == right.source_label && + left.source_label_text == right.source_label_text; +} + +template +/// @brief Tests one fixed-size numerical array for finite values. +bool IsFinite(const std::array& values) { + return std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); }); +} + +/// @brief Tests each component of a stored trial vector for finiteness. +bool IsFinite(const Vector& values) { + for (std::size_t index = 0U; index < values.Size(); ++index) { + if (!std::isfinite(values[index])) { + return false; + } + } + return true; +} + +/// @brief Tests all physical quantities attached to one shell recovery row. +bool IsFinite(const ShellResultRow& row) { + if (!IsFinite(row.natural_coordinates) || !IsFinite(row.generalized_strain) || + !IsFinite(row.section_resultant)) { + return false; + } + for (const auto& axis : row.local_frame) { + if (!IsFinite(axis)) { + return false; + } + } + return std::all_of(row.stress.begin(), row.stress.end(), + [](const ShellSectionStressRow& stress) { + return std::isfinite(stress.zeta) && + IsFinite(stress.components); + }); +} + +/// @brief Returns shell Domain indices in deterministic unified element order. +std::vector ShellElementOrder(const Domain& domain) { + std::vector order; + for (std::size_t index = 0U; index < domain.Elements().Size(); ++index) { + if (domain.Elements()[index].Kind() == ElementDefinitionKind::kMitc4Shell) { + order.push_back(static_cast(index)); + } + } + return order; +} + +/// @brief Validates one accepted frame before any committed-state mutation. +Status ValidateAcceptedFrame(const AcceptedFrameState& frame, + const NonlinearTrialState& committed, + const std::size_t full_dof_count, + const std::vector& shell_order, + const std::size_t accepted_frame_count) { + if (accepted_frame_count > + static_cast((std::numeric_limits::max)())) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted-frame inventory exceeds uint32 identity."); + } + if (frame.frame_index != + static_cast(accepted_frame_count)) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Frame index must equal accepted-frame order."); + } + if (frame.increment_index <= committed.increment_index || + !std::isfinite(frame.load_factor) || frame.load_factor <= 0.0 || + frame.load_factor > 1.0 || frame.load_factor <= committed.load_factor || + frame.iteration_count == 0U || + frame.iteration_count > kMaximumNewtonIterations || + frame.is_factor_one != (frame.load_factor == 1.0)) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted frame has an invalid increment identity."); + } + + const std::size_t node_count = committed.nodal_internal_order.size(); + if (frame.nodal_internal_order.size() != node_count || + frame.nodal_source_ids.size() != node_count || + frame.nodal_triad.size() != node_count || + frame.nodal_director.size() != node_count) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted frame node inventory does not match baseline."); + } + for (std::size_t node = 0U; node < node_count; ++node) { + if (frame.nodal_internal_order[node] != + committed.nodal_internal_order[node] || + !SourceIdsMatch(frame.nodal_source_ids[node], + committed.nodal_source_ids[node]) || + !IsFinite(frame.nodal_triad[node][0U]) || + !IsFinite(frame.nodal_triad[node][1U]) || + !IsFinite(frame.nodal_triad[node][2U]) || + !IsFinite(frame.nodal_director[node])) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted frame has invalid nodal identity or state."); + } + } + + const std::array vectors{ + &frame.generalized_coordinates, &frame.displacement, + &frame.rotation_vector, &frame.internal_force, + &frame.external_force, &frame.residual, + &frame.reaction}; + for (const Vector* vector : vectors) { + if (vector->Size() != full_dof_count || !IsFinite(*vector)) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted frame vector inventory is invalid."); + } + } + for (std::size_t dof = 0U; dof < full_dof_count; ++dof) { + const double residual = frame.internal_force[dof] - frame.external_force[dof]; + if (frame.residual[dof] != residual || frame.reaction[dof] != residual) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Residual and reaction must retain full equilibrium."); + } + } + + if (shell_order.size() > + (std::numeric_limits::max)() / kShellLocationsPerElement || + frame.shell_results.size() != + shell_order.size() * kShellLocationsPerElement || + !std::isfinite(frame.physical_strain_energy) || + !IsFinite(frame.global_equilibrium)) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Accepted frame physical result inventory is invalid."); + } + + const double gauss = 1.0 / std::sqrt(3.0); + const std::array + expected_locations{ShellMidsurfaceLocation::kGp1, + ShellMidsurfaceLocation::kGp2, + ShellMidsurfaceLocation::kGp3, + ShellMidsurfaceLocation::kGp4}; + const std::array, kShellLocationsPerElement> + expected_coordinates{std::array{-gauss, -gauss}, + std::array{gauss, -gauss}, + std::array{gauss, gauss}, + std::array{-gauss, gauss}}; + const std::array expected_positions{ + ShellSectionPosition::kBottom, ShellSectionPosition::kMiddle, + ShellSectionPosition::kTop}; + constexpr std::array expected_zeta{-1.0, 0.0, 1.0}; + for (std::size_t element = 0U; element < shell_order.size(); ++element) { + for (std::size_t point = 0U; point < kShellLocationsPerElement; ++point) { + const auto& row = + frame.shell_results[element * kShellLocationsPerElement + point]; + if (row.element != shell_order[element] || + row.location != expected_locations[point] || + row.natural_coordinates != expected_coordinates[point] || + !IsFinite(row)) { + return StateFailure(FailureCategory::kSolver, "invalid-accepted-state", {}, + "Shell result rows do not preserve stable identity."); + } + for (std::size_t position = 0U; position < expected_positions.size(); + ++position) { + if (row.stress[position].position != expected_positions[position] || + row.stress[position].zeta != expected_zeta[position]) { + return StateFailure( + FailureCategory::kSolver, "invalid-accepted-state", {}, + "Shell stress rows do not preserve stable section identity."); + } + } + } + } + return Status::Ok(); +} + +} // namespace + +Result NonlinearAnalysisState::Create( + const Domain& domain, const DofManager& dofs, + const NonlinearStateBaselineInput& baseline) { + const std::size_t node_count = domain.Nodes().size(); + if (node_count > (std::numeric_limits::max)() / kDofsPerNode || + dofs.FullDofCount() != node_count * kDofsPerNode || + !dofs.ValidateInvariants().IsOk()) { + return Result::Failure(StateFailure( + FailureCategory::kModel, "invalid-nonlinear-state", {}, + "Domain node and full-DOF inventories must agree.")); + } + if (baseline.node_baselines.size() != node_count) { + return Result::Failure(StateFailure( + FailureCategory::kModel, "invalid-nonlinear-state", {}, + "Nonlinear baseline requires exactly one entry per Domain node.")); + } + + NonlinearTrialState committed{ + 0U, + 0.0, + true, + {}, + {}, + Vector{dofs.FullDofCount()}, + Vector{dofs.FullDofCount()}, + Vector{dofs.FullDofCount()}, + {}, + {}, + Vector{dofs.FullDofCount()}, + Vector{dofs.FullDofCount()}, + Vector{dofs.FullDofCount()}, + Vector{dofs.FullDofCount()}, + {}, + 0.0, + {}}; + committed.nodal_internal_order.reserve(node_count); + committed.nodal_source_ids.reserve(node_count); + committed.nodal_triad.reserve(node_count); + committed.nodal_director.reserve(node_count); + for (std::size_t node = 0U; node < node_count; ++node) { + const auto& entry = baseline.node_baselines[node]; + if (entry.node_index != static_cast(node) || + !SourceIdsMatch(entry.source_id, domain.Nodes()[node].source_id) || + !IsFinite(entry.triad[0U]) || !IsFinite(entry.triad[1U]) || + !IsFinite(entry.triad[2U]) || !IsFinite(entry.director)) { + return Result::Failure(StateFailure( + FailureCategory::kModel, "invalid-nonlinear-state", + std::to_string(node), + "Baseline identity and finite node frame must match Domain order.")); + } + committed.nodal_internal_order.push_back(entry.node_index); + committed.nodal_source_ids.push_back(entry.source_id); + committed.nodal_triad.push_back(entry.triad); + committed.nodal_director.push_back(entry.director); + } + + return Result::Success(NonlinearAnalysisState{ + std::move(committed), dofs.FullDofCount(), ShellElementOrder(domain)}); +} + +Result NonlinearAnalysisState::BeginTrialFromCommitted() + const { + return Result::Success(committed_state_); +} + +Status NonlinearAnalysisState::CommitAcceptedFrame( + const AcceptedFrameState& frame) { + const Status validation = + ValidateAcceptedFrame(frame, committed_state_, full_dof_count_, + shell_element_order_, accepted_frames_.size()); + if (!validation.IsOk()) { + return validation; + } + + NonlinearTrialState candidate{ + frame.increment_index, + frame.load_factor, + false, + frame.nodal_internal_order, + frame.nodal_source_ids, + frame.generalized_coordinates, + frame.displacement, + frame.rotation_vector, + frame.nodal_triad, + frame.nodal_director, + frame.internal_force, + frame.external_force, + frame.residual, + frame.reaction, + frame.shell_results, + frame.physical_strain_energy, + frame.global_equilibrium}; + std::vector accepted_candidate = accepted_frames_; + accepted_candidate.push_back(frame); + + committed_state_ = std::move(candidate); + accepted_frames_ = std::move(accepted_candidate); + return Status::Ok(); +} + +void NonlinearAnalysisState::DiscardTrial() noexcept {} + +const std::vector& NonlinearAnalysisState::AcceptedFrames() + const noexcept { + return accepted_frames_; +} + +const NonlinearTrialState& NonlinearAnalysisState::CommittedState() const noexcept { + return committed_state_; +} + +NonlinearAnalysisState::NonlinearAnalysisState( + NonlinearTrialState committed_state, const std::size_t full_dof_count, + std::vector shell_element_order) + : committed_state_{std::move(committed_state)}, + full_dof_count_{full_dof_count}, + shell_element_order_{std::move(shell_element_order)} {} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f8738c6..663481d 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -6,6 +6,7 @@ add_executable( unit/analysis/analysis_test.cpp unit/analysis/analysis_model_test.cpp unit/analysis/analysis_state_test.cpp + unit/analysis/nonlinear_analysis_state_test.cpp unit/analysis/nonlinear_static_control_test.cpp unit/analysis/newton_iteration_log_test.cpp unit/assembly/parallel_for_test.cpp diff --git a/tests/unit/analysis/nonlinear_analysis_state_test.cpp b/tests/unit/analysis/nonlinear_analysis_state_test.cpp new file mode 100644 index 0000000..4fc9ad3 --- /dev/null +++ b/tests/unit/analysis/nonlinear_analysis_state_test.cpp @@ -0,0 +1,456 @@ +#include "fesa/analysis/nonlinear_analysis_state.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/model/domain.h" +#include "fesa/model/model_types.h" + +namespace { + +constexpr std::array, 3> kIdentityTriad{ + std::array{1.0, 0.0, 0.0}, + std::array{0.0, 1.0, 0.0}, + std::array{0.0, 0.0, 1.0}}; + +struct Fixture { + std::unique_ptr domain; + std::unique_ptr model; + std::unique_ptr dofs; +}; + +Fixture MakeFixture() { + const std::filesystem::path source{"nonlinear-analysis-state.inp"}; + fesa::ModelDefinition definition{}; + definition.source_path = source; + definition.source_content_identity = "nonlinear-analysis-state-fixture"; + definition.nodes = { + {{"Shell-A", 10, "10"}, {0.0, 0.0, 0.0}, {source, 1U}}, + {{"Shell-A", 20, "20"}, {1.0, 0.0, 0.0}, {source, 2U}}, + {{"Shell-A", 30, "30"}, {1.0, 1.0, 0.0}, {source, 3U}}, + {{"Shell-A", 40, "40"}, {0.0, 1.0, 0.0}, {source, 4U}}}; + definition.materials = {{"Material", 1000.0, 0.25, {source, 5U}}}; + definition.shell_sections = {{"Shell", 0.1, 0U, {source, 6U}}}; + definition.shell_elements = { + {{"Shell-A", 1, "1"}, + fesa::ShellSourceElementType::kS4, + {0U, 1U, 2U, 3U}, + 0U, + 0U, + {source, 7U}}}; + for (std::size_t node = 0U; node < definition.nodes.size(); ++node) { + definition.shell_node_initial_frames.push_back( + {static_cast(node), + {0.0, 0.0, 1.0}, + {1.0, 0.0, 0.0}, + {0.0, 1.0, 0.0}}); + } + definition.steps = {{"Step-1", + {}, + {}, + fesa::StaticProcedureKind::kNonlinearFullNewton, + true, + 0.1, + 1.0, + 0.001, + 1.0, + {source, 8U}}}; + + auto domain_result = fesa::Domain::Create(std::move(definition)); + if (!domain_result.HasValue()) { + throw std::runtime_error{"State fixture Domain construction failed."}; + } + auto domain = + std::make_unique(std::move(domain_result.Value())); + auto model_result = fesa::AnalysisModel::Create(*domain); + if (!model_result.HasValue()) { + throw std::runtime_error{"State fixture AnalysisModel construction failed."}; + } + auto model = + std::make_unique(std::move(model_result.Value())); + auto dofs_result = fesa::DofManager::Create(*model); + if (!dofs_result.HasValue()) { + throw std::runtime_error{"State fixture DofManager construction failed."}; + } + auto dofs = + std::make_unique(std::move(dofs_result.Value())); + return {std::move(domain), std::move(model), std::move(dofs)}; +} + +fesa::NonlinearStateBaselineInput MakeBaseline(const fesa::Domain& domain) { + fesa::NonlinearStateBaselineInput baseline{}; + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + baseline.node_baselines.push_back( + {static_cast(node), domain.Nodes()[node].source_id, + kIdentityTriad, {0.0, 0.0, 1.0}}); + } + return baseline; +} + +fesa::NonlinearAnalysisState MakeState(const Fixture& fixture) { + auto state = fesa::NonlinearAnalysisState::Create( + *fixture.domain, *fixture.dofs, MakeBaseline(*fixture.domain)); + if (!state.HasValue()) { + throw std::runtime_error{"State fixture construction failed."}; + } + return std::move(state.Value()); +} + +fesa::ShellResultRow MakeShellRow( + const fesa::ShellMidsurfaceLocation location, + const std::array coordinates) { + return {0U, + location, + coordinates, + kIdentityTriad, + {}, + {}, + {{{fesa::ShellSectionPosition::kBottom, -1.0, {}}, + {fesa::ShellSectionPosition::kMiddle, 0.0, {}}, + {fesa::ShellSectionPosition::kTop, 1.0, {}}}}}; +} + +std::vector MakeShellRows() { + const double gauss = 1.0 / std::sqrt(3.0); + return {MakeShellRow(fesa::ShellMidsurfaceLocation::kGp1, {-gauss, -gauss}), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp2, {gauss, -gauss}), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp3, {gauss, gauss}), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp4, {-gauss, gauss})}; +} + +fesa::AcceptedFrameState MakeFrame( + const fesa::NonlinearTrialState& committed, const std::uint32_t frame_index, + const std::uint32_t increment_index, const double load_factor, + const std::uint32_t iteration_count) { + return {frame_index, + increment_index, + load_factor, + iteration_count, + load_factor == 1.0, + committed.nodal_internal_order, + committed.nodal_source_ids, + committed.generalized_coordinates, + committed.displacement, + committed.rotation_vector, + committed.nodal_triad, + committed.nodal_director, + committed.internal_force, + committed.external_force, + committed.residual, + committed.reaction, + MakeShellRows(), + 0.0, + {}}; +} + +template +struct HasVerificationMetrics : std::false_type {}; + +template +struct HasVerificationMetrics< + T, std::void_t().verification_metrics)>> + : std::true_type {}; + +void ExpectSourceIdEqual(const fesa::SourceEntityId& actual, + const fesa::SourceEntityId& expected) { + EXPECT_EQ(actual.instance_name, expected.instance_name); + EXPECT_EQ(actual.source_label, expected.source_label); + EXPECT_EQ(actual.source_label_text, expected.source_label_text); +} + +void ExpectVectorEqual(const fesa::Vector& actual, const fesa::Vector& expected) { + ASSERT_EQ(actual.Size(), expected.Size()); + for (std::size_t index = 0U; index < actual.Size(); ++index) { + EXPECT_DOUBLE_EQ(actual[index], expected[index]); + } +} + +} // namespace + +// NSNR-STATE-000, NSNR-STATE-002, NSNR-STATE-003, and NSNR-STATE-014 +TEST(NonlinearAnalysisState, CreatesFactorZeroBaselineInStableIdentityOrder) { + const auto fixture = MakeFixture(); + const auto baseline = MakeBaseline(*fixture.domain); + const auto result = fesa::NonlinearAnalysisState::Create( + *fixture.domain, *fixture.dofs, baseline); + + ASSERT_TRUE(result.HasValue()); + const auto& committed = result.Value().CommittedState(); + EXPECT_EQ(committed.increment_index, 0U); + EXPECT_DOUBLE_EQ(committed.load_factor, 0.0); + EXPECT_TRUE(committed.is_factor_zero_baseline); + EXPECT_TRUE(result.Value().AcceptedFrames().empty()); + ASSERT_EQ(committed.nodal_internal_order.size(), fixture.domain->Nodes().size()); + ASSERT_EQ(committed.nodal_source_ids.size(), fixture.domain->Nodes().size()); + for (std::size_t node = 0U; node < fixture.domain->Nodes().size(); ++node) { + EXPECT_EQ(committed.nodal_internal_order[node], node); + ExpectSourceIdEqual(committed.nodal_source_ids[node], + fixture.domain->Nodes()[node].source_id); + } + const fesa::Vector* const vectors[] = { + &committed.generalized_coordinates, &committed.displacement, + &committed.rotation_vector, &committed.internal_force, + &committed.external_force, &committed.residual, &committed.reaction}; + for (const auto* vector : vectors) { + ASSERT_EQ(vector->Size(), fixture.dofs->FullDofCount()); + for (std::size_t index = 0U; index < vector->Size(); ++index) { + EXPECT_DOUBLE_EQ((*vector)[index], 0.0); + } + } +} + +// NSNR-STATE-001 +TEST(NonlinearAnalysisState, RejectsInvalidBaselineInventoryBeforeStateCreation) { + const auto fixture = MakeFixture(); + const auto baseline = MakeBaseline(*fixture.domain); + const std::array invalid{ + fesa::NonlinearStateBaselineInput{{baseline.node_baselines[0U], + baseline.node_baselines[1U], + baseline.node_baselines[2U]}}, + fesa::NonlinearStateBaselineInput{{baseline.node_baselines[0U], + baseline.node_baselines[1U], + baseline.node_baselines[2U], + baseline.node_baselines[3U], + baseline.node_baselines[3U]}}, + fesa::NonlinearStateBaselineInput{{baseline.node_baselines[1U], + baseline.node_baselines[0U], + baseline.node_baselines[2U], + baseline.node_baselines[3U]}}, + fesa::NonlinearStateBaselineInput{{baseline.node_baselines[0U], + baseline.node_baselines[0U], + baseline.node_baselines[2U], + baseline.node_baselines[3U]}}, + fesa::NonlinearStateBaselineInput{{baseline.node_baselines[0U], + baseline.node_baselines[1U], + baseline.node_baselines[2U], + {3U, + {"Other-Instance", 40, "40"}, + kIdentityTriad, + {0.0, 0.0, 1.0}}}}}; + + for (const auto& invalid_baseline : invalid) { + const auto result = fesa::NonlinearAnalysisState::Create( + *fixture.domain, *fixture.dofs, invalid_baseline); + EXPECT_FALSE(result.HasValue()); + } +} + +// NSNR-STATE-001 and NSNR-STATE-002 +TEST(NonlinearAnalysisState, RejectsNonfiniteBaselineAndDofMismatch) { + const auto fixture = MakeFixture(); + auto nonfinite_triad = MakeBaseline(*fixture.domain); + nonfinite_triad.node_baselines[0U].triad[0U][0U] = + std::numeric_limits::quiet_NaN(); + EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( + *fixture.domain, *fixture.dofs, nonfinite_triad) + .HasValue()); + + auto nonfinite_director = MakeBaseline(*fixture.domain); + nonfinite_director.node_baselines[0U].director[2U] = + std::numeric_limits::infinity(); + EXPECT_FALSE(fesa::NonlinearAnalysisState::Create( + *fixture.domain, *fixture.dofs, nonfinite_director) + .HasValue()); + + auto empty_domain_result = fesa::Domain::Create(fesa::ModelDefinition{}); + ASSERT_TRUE(empty_domain_result.HasValue()); + const auto dof_mismatch = fesa::NonlinearAnalysisState::Create( + empty_domain_result.Value(), *fixture.dofs, + MakeBaseline(empty_domain_result.Value())); + EXPECT_FALSE(dof_mismatch.HasValue()); +} + +// NSNR-STATE-001 and NSNR-STATE-003 +TEST(NonlinearAnalysisState, PreservesDuplicateLabelsWhenInstancesDiffer) { + const auto fixture = MakeFixture(); + auto baseline = MakeBaseline(*fixture.domain); + baseline.node_baselines[1U].source_id = {"Shell-B", 10, "10"}; + auto changed_definition = fesa::ModelDefinition{}; + changed_definition.source_path = "duplicate-instance-labels.inp"; + changed_definition.source_content_identity = "duplicate-instance-labels"; + changed_definition.nodes = { + {{"Shell-A", 10, "10"}, {0.0, 0.0, 0.0}, {changed_definition.source_path, 1U}}, + {{"Shell-B", 10, "10"}, {1.0, 0.0, 0.0}, {changed_definition.source_path, 2U}}}; + changed_definition.steps = {{"Step-1", + {}, + {}, + fesa::StaticProcedureKind::kNonlinearFullNewton, + true, + 0.1, + 1.0, + 0.001, + 1.0, + {changed_definition.source_path, 3U}}}; + auto domain_result = fesa::Domain::Create(std::move(changed_definition)); + ASSERT_TRUE(domain_result.HasValue()); + auto domain = std::move(domain_result.Value()); + auto model_result = fesa::AnalysisModel::Create(domain); + ASSERT_TRUE(model_result.HasValue()); + auto dofs_result = fesa::DofManager::Create(model_result.Value()); + ASSERT_TRUE(dofs_result.HasValue()); + + baseline.node_baselines.resize(domain.Nodes().size()); + baseline = MakeBaseline(domain); + const auto result = fesa::NonlinearAnalysisState::Create( + domain, dofs_result.Value(), baseline); + + ASSERT_TRUE(result.HasValue()); + ASSERT_EQ(result.Value().CommittedState().nodal_source_ids.size(), 2U); + EXPECT_EQ(result.Value().CommittedState().nodal_source_ids[0U].source_label, + result.Value().CommittedState().nodal_source_ids[1U].source_label); + EXPECT_NE(result.Value().CommittedState().nodal_source_ids[0U].instance_name, + result.Value().CommittedState().nodal_source_ids[1U].instance_name); +} + +// NSNR-STATE-004 and NSNR-STATE-012 +TEST(NonlinearAnalysisState, StartsIndependentTrialAndDiscardPreservesCommit) { + const auto fixture = MakeFixture(); + auto state = MakeState(fixture); + const auto before = state.CommittedState(); + auto trial = state.BeginTrialFromCommitted(); + + ASSERT_TRUE(trial.HasValue()); + EXPECT_NE(trial.Value().displacement.Data(), + state.CommittedState().displacement.Data()); + trial.Value().displacement[0U] = 2.0; + trial.Value().nodal_director[0U][2U] = 0.5; + state.DiscardTrial(); + + ExpectVectorEqual(state.CommittedState().displacement, before.displacement); + EXPECT_DOUBLE_EQ(state.CommittedState().nodal_director[0U][2U], 1.0); +} + +// NSNR-STATE-005, NSNR-STATE-006, NSNR-STATE-007, NSNR-STATE-008, +// NSNR-STATE-009, and NSNR-STATE-010 +TEST(NonlinearAnalysisState, CommitsOnlyStableCompleteAcceptedFrames) { + const auto fixture = MakeFixture(); + auto state = MakeState(fixture); + auto first = MakeFrame(state.CommittedState(), 0U, 1U, 0.5, 3U); + first.internal_force[0U] = 7.0; + first.external_force[0U] = 2.0; + first.residual[0U] = 5.0; + first.reaction[0U] = 5.0; + + ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()); + ASSERT_EQ(state.AcceptedFrames().size(), 1U); + EXPECT_EQ(state.AcceptedFrames()[0U].frame_index, 0U); + EXPECT_EQ(state.AcceptedFrames()[0U].increment_index, 1U); + EXPECT_FALSE(state.AcceptedFrames()[0U].is_factor_one); + EXPECT_EQ(state.CommittedState().increment_index, 1U); + EXPECT_FALSE(state.CommittedState().is_factor_zero_baseline); + EXPECT_DOUBLE_EQ(state.CommittedState().residual[0U], 5.0); + EXPECT_DOUBLE_EQ(state.CommittedState().reaction[0U], 5.0); + ASSERT_EQ(state.CommittedState().shell_results.size(), 4U); + EXPECT_EQ(state.CommittedState().shell_results[0U].location, + fesa::ShellMidsurfaceLocation::kGp1); + EXPECT_EQ(state.CommittedState().shell_results[3U].location, + fesa::ShellMidsurfaceLocation::kGp4); + + auto final_frame = MakeFrame(state.CommittedState(), 1U, 2U, 1.0, 2U); + ASSERT_TRUE(state.CommitAcceptedFrame(final_frame).IsOk()); + ASSERT_EQ(state.AcceptedFrames().size(), 2U); + EXPECT_EQ(state.AcceptedFrames()[1U].frame_index, 1U); + EXPECT_TRUE(state.AcceptedFrames()[1U].is_factor_one); +} + +// NSNR-STATE-005, NSNR-STATE-009, NSNR-STATE-010, and NSNR-STATE-012 +TEST(NonlinearAnalysisState, AtomicallyRejectsMalformedAcceptedFrames) { + const auto fixture = MakeFixture(); + auto state = MakeState(fixture); + const auto first = MakeFrame(state.CommittedState(), 0U, 1U, 0.5, 1U); + ASSERT_TRUE(state.CommitAcceptedFrame(first).IsOk()); + + const auto MakeNextFrame = [&state]() { + return MakeFrame(state.CommittedState(), 1U, 2U, 1.0, 1U); + }; + const auto ExpectRejected = [&state](const fesa::AcceptedFrameState& frame) { + const auto before = state.CommittedState(); + const std::size_t frame_count = state.AcceptedFrames().size(); + const auto status = state.CommitAcceptedFrame(frame); + + EXPECT_FALSE(status.IsOk()); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics()[0U].code, "invalid-accepted-state"); + EXPECT_EQ(state.AcceptedFrames().size(), frame_count); + EXPECT_EQ(state.CommittedState().increment_index, before.increment_index); + EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor); + ExpectVectorEqual(state.CommittedState().displacement, before.displacement); + }; + + auto wrong_frame_index = MakeNextFrame(); + wrong_frame_index.frame_index = 2U; + ExpectRejected(wrong_frame_index); + + auto nonincreasing_factor = MakeFrame(state.CommittedState(), 1U, 2U, 0.5, 1U); + ExpectRejected(nonincreasing_factor); + + auto mismatched_identity = MakeNextFrame(); + mismatched_identity.nodal_source_ids[0U].instance_name = "Wrong-Instance"; + ExpectRejected(mismatched_identity); + + auto wrong_vector_size = MakeNextFrame(); + wrong_vector_size.generalized_coordinates = + fesa::Vector{fixture.dofs->FullDofCount() - 1U}; + ExpectRejected(wrong_vector_size); + + auto nonfinite_vector = MakeNextFrame(); + nonfinite_vector.rotation_vector[0U] = + std::numeric_limits::quiet_NaN(); + ExpectRejected(nonfinite_vector); + + auto residual_mismatch = MakeNextFrame(); + residual_mismatch.residual[0U] = 1.0; + ExpectRejected(residual_mismatch); + + auto reaction_mismatch = MakeNextFrame(); + reaction_mismatch.reaction[0U] = 1.0; + ExpectRejected(reaction_mismatch); + + auto invalid_shell_inventory = MakeNextFrame(); + invalid_shell_inventory.shell_results.pop_back(); + ExpectRejected(invalid_shell_inventory); + + auto invalid_factor_flag = MakeNextFrame(); + invalid_factor_flag.is_factor_one = false; + ExpectRejected(invalid_factor_flag); +} + +// NSNR-STATE-011 and NSNR-STATE-012 +TEST(NonlinearAnalysisState, AtomicallyRejectsNonfiniteAcceptedFrame) { + const auto fixture = MakeFixture(); + auto state = MakeState(fixture); + const auto valid = MakeFrame(state.CommittedState(), 0U, 1U, 0.5, 1U); + ASSERT_TRUE(state.CommitAcceptedFrame(valid).IsOk()); + const auto before = state.CommittedState(); + auto invalid = MakeFrame(state.CommittedState(), 1U, 2U, 1.0, 1U); + invalid.physical_strain_energy = std::numeric_limits::quiet_NaN(); + + const auto status = state.CommitAcceptedFrame(invalid); + + EXPECT_FALSE(status.IsOk()); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics()[0U].code, "invalid-accepted-state"); + ASSERT_EQ(state.AcceptedFrames().size(), 1U); + ExpectVectorEqual(state.CommittedState().displacement, before.displacement); + EXPECT_DOUBLE_EQ(state.CommittedState().load_factor, before.load_factor); +} + +// NSNR-STATE-013 +TEST(NonlinearAnalysisState, StoresNoUnapprovedVerificationMetrics) { + EXPECT_FALSE((HasVerificationMetrics::value)); + EXPECT_FALSE((HasVerificationMetrics::value)); +} From 0978b019cea4e76243a05d728b51d4b20e2bea7d Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 14:52:08 +0900 Subject: [PATCH 18/32] chore(nonlinear-static-newton-raphson): step 8 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 28ebc03..77cc5c2 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -69,7 +69,10 @@ { "step": 8, "name": "nonlinear-state-commit-rollback", - "status": "pending" + "status": "completed", + "summary": "Added transactional nonlinear committed/trial state with stable full source identities, validated accepted frames, and rollback regression coverage.", + "started_at": "2026-08-24T14:34:19+0900", + "completed_at": "2026-08-24T14:52:08+0900" }, { "step": 9, From dd3c6191c8c77d3860ddcdd125c0f52759ecb4df Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 15:19:07 +0900 Subject: [PATCH 19/32] feat(nonlinear-static-newton-raphson): step 9 - nonlinear-hdf5-schema-v1-writer --- .../io/hdf5/nonlinear_hdf5_results_writer.h | 22 + .../fesa/results/nonlinear_results_writer.h | 33 + src/fesa/CMakeLists.txt | 1 + src/fesa/io/hdf5/hdf5_primitives.cpp | 28 + src/fesa/io/hdf5/hdf5_primitives.h | 2 + src/fesa/io/hdf5/hdf5_self_check.cpp | 352 +++++- src/fesa/io/hdf5/hdf5_self_check.h | 7 + .../io/hdf5/nonlinear_hdf5_results_writer.cpp | 1113 +++++++++++++++++ tests/CMakeLists.txt | 1 + .../nonlinear_hdf5_results_writer_test.cpp | 591 +++++++++ 10 files changed, 2146 insertions(+), 4 deletions(-) create mode 100644 include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h create mode 100644 include/fesa/results/nonlinear_results_writer.h create mode 100644 src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp create mode 100644 tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp diff --git a/include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h b/include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h new file mode 100644 index 0000000..691787a --- /dev/null +++ b/include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h @@ -0,0 +1,22 @@ +#ifndef FESA_IO_HDF5_NONLINEAR_HDF5_RESULTS_WRITER_H_ +#define FESA_IO_HDF5_NONLINEAR_HDF5_RESULTS_WRITER_H_ + +#include "fesa/results/nonlinear_results_writer.h" + +namespace fesa { + +/// @brief Writes authoritative schema-v1 nonlinear HDF5 results atomically. +/// @note HDF5 and platform types remain private to the implementation. +class NonlinearHdf5ResultsWriter final : public NonlinearResultsWriter { + public: + /// @brief Writes and self-checks committed nonlinear frames before publish. + /// @return Success only after atomic replacement or structured output failure. + /// @note Factor-zero state remains metadata and is not an accepted frame. + Status Write(const std::filesystem::path& output_path, + const Domain& domain, const NonlinearAnalysisState& state, + const std::vector& diagnostics) override; +}; + +} // namespace fesa + +#endif // FESA_IO_HDF5_NONLINEAR_HDF5_RESULTS_WRITER_H_ diff --git a/include/fesa/results/nonlinear_results_writer.h b/include/fesa/results/nonlinear_results_writer.h new file mode 100644 index 0000000..841c16d --- /dev/null +++ b/include/fesa/results/nonlinear_results_writer.h @@ -0,0 +1,33 @@ +#ifndef FESA_RESULTS_NONLINEAR_RESULTS_WRITER_H_ +#define FESA_RESULTS_NONLINEAR_RESULTS_WRITER_H_ + +#include +#include + +#include "fesa/analysis/nonlinear_analysis_state.h" +#include "fesa/core/diagnostic.h" +#include "fesa/core/status.h" +#include "fesa/model/domain.h" + +namespace fesa { + +/// @brief Isolates nonlinear authoritative result storage from solver code. +class NonlinearResultsWriter { + public: + virtual ~NonlinearResultsWriter() = default; + + /// @brief Writes complete accepted nonlinear frames. + /// @param output_path Final authoritative path in the model input directory. + /// @param domain Immutable source and semantic model identity. + /// @param state Committed state containing every accepted increment frame. + /// @param diagnostics Deterministically ordered run diagnostics. + /// @return Success only after backend-specific finalization completes. + virtual Status Write(const std::filesystem::path& output_path, + const Domain& domain, + const NonlinearAnalysisState& state, + const std::vector& diagnostics) = 0; +}; + +} // namespace fesa + +#endif // FESA_RESULTS_NONLINEAR_RESULTS_WRITER_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 28b617c..7a1afe6 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -33,6 +33,7 @@ add_library( io/abaqus/topology_mapper.cpp io/hdf5/hdf5_atomic_file.cpp io/hdf5/hdf5_model_writer.cpp + io/hdf5/nonlinear_hdf5_results_writer.cpp io/hdf5/hdf5_primitives.cpp io/hdf5/hdf5_result_writer.cpp io/hdf5/hdf5_results_writer.cpp diff --git a/src/fesa/io/hdf5/hdf5_primitives.cpp b/src/fesa/io/hdf5/hdf5_primitives.cpp index c58076e..1256580 100644 --- a/src/fesa/io/hdf5/hdf5_primitives.cpp +++ b/src/fesa/io/hdf5/hdf5_primitives.cpp @@ -138,6 +138,34 @@ void WriteUint64Attribute(const hid_t object, const char* name, "Unable to write an HDF5 integer attribute."); } +void WriteUint8Attribute(const hid_t object, const char* name, + const std::uint8_t value) { + Hdf5Handle space{RequireHdf5Id(H5Screate(H5S_SCALAR), + "Unable to create an attribute space."), + H5Sclose}; + Hdf5Handle attribute{ + RequireHdf5Id(H5Acreate2(object, name, H5T_STD_U8LE, space.Get(), + H5P_DEFAULT, H5P_DEFAULT), + "Unable to create an HDF5 uint8 attribute."), + H5Aclose}; + RequireHdf5(H5Awrite(attribute.Get(), H5T_NATIVE_UINT8, &value), + "Unable to write an HDF5 uint8 attribute."); +} + +void WriteDoubleAttribute(const hid_t object, const char* name, + const double value) { + Hdf5Handle space{RequireHdf5Id(H5Screate(H5S_SCALAR), + "Unable to create an attribute space."), + H5Sclose}; + Hdf5Handle attribute{ + RequireHdf5Id(H5Acreate2(object, name, H5T_IEEE_F64LE, space.Get(), + H5P_DEFAULT, H5P_DEFAULT), + "Unable to create an HDF5 float64 attribute."), + H5Aclose}; + RequireHdf5(H5Awrite(attribute.Get(), H5T_NATIVE_DOUBLE, &value), + "Unable to write an HDF5 float64 attribute."); +} + Hdf5Handle CreateGroup(const hid_t file, const char* path) { Hdf5Handle link_properties{RequireHdf5Id(H5Pcreate(H5P_LINK_CREATE), "Unable to create link properties."), diff --git a/src/fesa/io/hdf5/hdf5_primitives.h b/src/fesa/io/hdf5/hdf5_primitives.h index 429448b..da215e4 100644 --- a/src/fesa/io/hdf5/hdf5_primitives.h +++ b/src/fesa/io/hdf5/hdf5_primitives.h @@ -97,6 +97,8 @@ Hdf5Handle MakeUtf8StringType(); void WriteStringAttribute(hid_t object, const char* name, const std::string& value); void WriteUint64Attribute(hid_t object, const char* name, std::uint64_t value); +void WriteUint8Attribute(hid_t object, const char* name, std::uint8_t value); +void WriteDoubleAttribute(hid_t object, const char* name, double value); Hdf5Handle CreateGroup(hid_t file, const char* path); Hdf5Handle CreateDatasetSpace(const std::vector& dimensions); void WriteResultAttributes(hid_t dataset, const std::string& component_names, diff --git a/src/fesa/io/hdf5/hdf5_self_check.cpp b/src/fesa/io/hdf5/hdf5_self_check.cpp index 833c7aa..f76ade7 100644 --- a/src/fesa/io/hdf5/hdf5_self_check.cpp +++ b/src/fesa/io/hdf5/hdf5_self_check.cpp @@ -59,7 +59,9 @@ void RequireStringAttribute(const hid_t object, const char* name, RequireHdf5(H5free_memory(raw), "Unable to release an HDF5 string value."); } if (actual != expected) { - throw Hdf5Failure{"An HDF5 string attribute has the wrong value."}; + throw Hdf5Failure{"HDF5 string attribute '" + std::string{name} + + "' mismatch: expected '" + expected + "', got '" + + actual + "'."}; } } @@ -99,9 +101,13 @@ void RequirePortableCompoundMember(const hid_t compound_type, name == "internal_material_id" || name == "internal_section_id" || name == "shell_section_internal_id" || name == "material_internal_id" || name == "source_line" || name == "gauss_point_index" || - name == "section_point_index" || name == "line"; + name == "section_point_index" || name == "line" || + name == "frame_index" || name == "increment_index" || + name == "iteration_count"; const bool is_float64 = name == "x1" || name == "x2" || name == "S11" || - name == "E" || name == "nu" || name == "thickness"; + name == "E" || name == "nu" || name == "thickness" || + name == "load_factor"; + const bool is_uint8 = name == "is_factor_one"; const bool is_string = name == "instance_name" || name == "source_label" || name == "source_element_type" || name == "internal_formulation" || @@ -126,6 +132,15 @@ void RequirePortableCompoundMember(const hid_t compound_type, } return; } + if (is_uint8) { + if (H5Tget_class(member_type.Get()) != H5T_INTEGER || + H5Tget_size(member_type.Get()) != sizeof(std::uint8_t) || + H5Tget_sign(member_type.Get()) != H5T_SGN_NONE || + H5Tequal(member_type.Get(), H5T_STD_U8LE) <= 0) { + throw Hdf5Failure{"A compound HDF5 field is not portable uint8."}; + } + return; + } if (is_string) { if (H5Tget_class(member_type.Get()) != H5T_STRING || H5Tis_variable_str(member_type.Get()) <= 0 || @@ -342,13 +357,159 @@ void RequireCompoundDataset(const hid_t file, const char* path, RequireHdf5(H5free_memory(raw_name), "Unable to release a compound field name."); if (actual_name != expected_members[index]) { - throw Hdf5Failure{"A compound HDF5 field has the wrong identity."}; + throw Hdf5Failure{"Compound HDF5 field identity mismatch: expected '" + + std::string{expected_members[index]} + "', got '" + + actual_name + "'."}; } RequirePortableCompoundMember(type.Get(), static_cast(index), expected_members[index]); } } +void RequireUint8Attribute(const hid_t object, const char* name, + const std::uint8_t expected) { + Hdf5Handle attribute{ + RequireHdf5Id(H5Aopen(object, name, H5P_DEFAULT), + "A mandatory HDF5 uint8 attribute is missing."), + H5Aclose}; + Hdf5Handle type{ + RequireHdf5Id(H5Aget_type(attribute.Get()), + "Unable to inspect an HDF5 uint8 attribute type."), + H5Tclose}; + if (H5Tget_class(type.Get()) != H5T_INTEGER || + H5Tget_size(type.Get()) != sizeof(std::uint8_t) || + H5Tget_sign(type.Get()) != H5T_SGN_NONE || + H5Tequal(type.Get(), H5T_STD_U8LE) <= 0) { + throw Hdf5Failure{"An HDF5 attribute is not portable uint8."}; + } + std::uint8_t actual = 0U; + RequireHdf5(H5Aread(attribute.Get(), H5T_NATIVE_UINT8, &actual), + "Unable to read an HDF5 uint8 attribute."); + if (actual != expected) { + throw Hdf5Failure{"An HDF5 uint8 attribute has the wrong value."}; + } +} + +void RequireDoubleAttribute(const hid_t object, const char* name, + const double expected) { + Hdf5Handle attribute{ + RequireHdf5Id(H5Aopen(object, name, H5P_DEFAULT), + "A mandatory HDF5 float64 attribute is missing."), + H5Aclose}; + Hdf5Handle type{ + RequireHdf5Id(H5Aget_type(attribute.Get()), + "Unable to inspect an HDF5 float64 attribute type."), + H5Tclose}; + if (H5Tget_class(type.Get()) != H5T_FLOAT || + H5Tget_size(type.Get()) != sizeof(double) || + H5Tequal(type.Get(), H5T_IEEE_F64LE) <= 0) { + throw Hdf5Failure{"An HDF5 attribute is not portable float64."}; + } + double actual = 0.0; + RequireHdf5(H5Aread(attribute.Get(), H5T_NATIVE_DOUBLE, &actual), + "Unable to read an HDF5 float64 attribute."); + if (actual != expected) { + throw Hdf5Failure{"An HDF5 float64 attribute has the wrong value."}; + } +} + +void RequireSchemaV1NumericDataset( + const hid_t file, const char* path, + const std::vector& expected_dimensions, + const char* component_names, const char* component_units, + const char* coordinate_system, const char* location, + const AcceptedFrameState* frame) { + auto dataset = OpenDatasetForCheck(file, path); + if (CheckedDimensions(dataset.Get()) != expected_dimensions) { + throw Hdf5Failure{"A schema-v1 numeric dataset has the wrong shape."}; + } + Hdf5Handle type{RequireHdf5Id(H5Dget_type(dataset.Get()), + "Unable to inspect a schema-v1 dataset type."), + H5Tclose}; + if (H5Tget_class(type.Get()) != H5T_FLOAT || + H5Tget_size(type.Get()) != sizeof(double) || + H5Tequal(type.Get(), H5T_IEEE_F64LE) <= 0) { + throw Hdf5Failure{"A schema-v1 numeric dataset is not float64."}; + } + RequireUint64Attribute(dataset.Get(), "schema_version", 1U); + RequireStringAttribute(dataset.Get(), "component_names", component_names); + RequireStringAttribute(dataset.Get(), "component_unit_dimensions", + component_units); + RequireStringAttribute(dataset.Get(), "coordinate_system", + coordinate_system); + RequireStringAttribute(dataset.Get(), "location", location); + if (frame != nullptr) { + RequireStringAttribute(dataset.Get(), "step_name", "Step-1"); + RequireUint64Attribute(dataset.Get(), "frame_index", frame->frame_index); + RequireUint64Attribute(dataset.Get(), "increment_index", + frame->increment_index); + RequireDoubleAttribute(dataset.Get(), "load_factor", frame->load_factor); + RequireUint8Attribute(dataset.Get(), "is_factor_one", + frame->is_factor_one ? 1U : 0U); + } + std::size_t value_count = 1U; + for (const hsize_t dimension : expected_dimensions) { + std::size_t next = 0U; + if (!SizeProductFits(value_count, static_cast(dimension), + next)) { + throw Hdf5Failure{"A schema-v1 numeric shape overflows size_t."}; + } + value_count = next; + } + std::vector values(value_count); + if (!values.empty()) { + RequireHdf5(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()), + "Unable to read a schema-v1 numeric dataset."); + } + if (!std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); })) { + throw Hdf5Failure{"A schema-v1 numeric dataset contains a nonfinite value."}; + } +} + +void RequireSchemaV1MaskDataset(const hid_t file, + const std::vector& dimensions) { + auto dataset = OpenDatasetForCheck(file, "/model/nodal_constraint_mask"); + if (CheckedDimensions(dataset.Get()) != dimensions) { + throw Hdf5Failure{"The schema-v1 constraint mask has the wrong shape."}; + } + Hdf5Handle type{RequireHdf5Id(H5Dget_type(dataset.Get()), + "Unable to inspect the constraint mask type."), + H5Tclose}; + if (H5Tget_class(type.Get()) != H5T_INTEGER || + H5Tget_size(type.Get()) != sizeof(std::uint8_t) || + H5Tget_sign(type.Get()) != H5T_SGN_NONE || + H5Tequal(type.Get(), H5T_STD_U8LE) <= 0) { + throw Hdf5Failure{"The schema-v1 constraint mask is not uint8."}; + } + RequireUint64Attribute(dataset.Get(), "schema_version", 1U); + RequireStringAttribute(dataset.Get(), "component_names", "UX,UY,UZ,URX,URY,URZ"); + RequireStringAttribute(dataset.Get(), "component_unit_dimensions", + "1,1,1,1,1,1"); + RequireStringAttribute(dataset.Get(), "coordinate_system", "global-cartesian"); + RequireStringAttribute(dataset.Get(), "location", "nodal-constraint"); + RequireStringAttribute(dataset.Get(), "value_meaning", "0=free,1=constrained"); +} + +void RequireSchemaV1ShellIdentity(const hid_t file, const char* path, + const bool has_section_positions, + const std::string& frame_root) { + auto dataset = OpenDatasetForCheck(file, path); + RequireStringAttribute(dataset.Get(), "source_element_type_dataset", + "/model/elements.source_element_type"); + RequireStringAttribute(dataset.Get(), "internal_formulation", + "FESA-MITC4-total-lagrangian"); + RequireStringAttribute(dataset.Get(), "midsurface_location_dataset", + "/model/shell/midsurface_locations"); + RequireStringAttribute(dataset.Get(), "local_frame_dataset", + frame_root + "/element/shell/local_frame"); + if (has_section_positions) { + RequireStringAttribute(dataset.Get(), "section_position_dataset", + "/model/shell/section_positions"); + } +} + /// @brief Reopens the closed candidate and verifies its required external /// schema. void SelfCheckFile(const std::filesystem::path& path, const Domain& domain, @@ -594,6 +755,175 @@ void SelfCheckFile(const std::filesystem::path& path, const Domain& domain, "Unable to close the read-only HDF5 schema self-check handle."); } +void NonlinearSelfCheckFile(const std::filesystem::path& path, + const Domain& domain, + const NonlinearAnalysisState& state, + const std::size_t diagnostic_count) { + if (H5Fis_hdf5(path.string().c_str()) <= 0) { + throw Hdf5Failure{"The nonlinear candidate is not an HDF5 file."}; + } + Hdf5Handle file{ + RequireHdf5Id(H5Fopen(path.string().c_str(), H5F_ACC_RDONLY, H5P_DEFAULT), + "Unable to reopen nonlinear candidate read-only."), + H5Fclose}; + Hdf5Handle metadata{ + RequireHdf5Id(H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT), + "The nonlinear metadata group is missing."), + H5Gclose}; + RequireUint64Attribute(metadata.Get(), "schema_version", 1U); + RequireStringAttribute(metadata.Get(), "feature_id", + "nonlinear-static-newton-raphson"); + RequireStringAttribute(metadata.Get(), "solver_version", + std::string{SolverVersion()}); + RequireStringAttribute(metadata.Get(), "source_input_identity", + SourceInputIdentity(domain)); + RequireStringAttribute(metadata.Get(), "unit_system_label", + "user-consistent-unspecified"); + RequireStringAttribute( + metadata.Get(), "coordinate_convention", + "global-cartesian; shell-local=fixed-initial-reference; " + "positive-thickness=+zeta"); + RequireStringAttribute(metadata.Get(), "analysis_procedure", + "nonlinear-static-full-newton"); + RequireStringAttribute(metadata.Get(), "internal_formulation", + "FESA-MITC4-total-lagrangian"); + RequireStringAttribute(metadata.Get(), "integration_rule", + "2x2x2-gauss; mitc4-edge-midpoint-shear"); + RequireStringAttribute(metadata.Get(), "step_name", "Step-1"); + RequireStringAttribute(metadata.Get(), "frame_indexing", + "accepted-increment-order-zero-based"); + RequireUint8Attribute(metadata.Get(), "factor_zero_is_frame", 0U); + RequireDoubleAttribute(metadata.Get(), "factor_zero_load_factor", 0.0); + + const hsize_t node_count = static_cast(domain.Nodes().size()); + const hsize_t element_count = + static_cast(domain.ShellElements().Size()); + const std::vector nodal_dimensions{node_count, kDofsPerNode}; + RequireCompoundDataset(file.Get(), "/model/nodes", node_count, + {"internal_node_id", "instance_name", "source_label", + "coordinates"}); + RequireCompoundDataset( + file.Get(), "/model/elements", element_count, + {"internal_element_id", "instance_name", "source_label", + "source_element_type", "internal_formulation", "node_internal_ids", + "shell_section_internal_id", "material_internal_id"}); + RequireCompoundDataset(file.Get(), "/model/shell/materials", + static_cast(domain.LinearElasticMaterials().Size()), + {"internal_material_id", "name", "E", "nu"}); + RequireCompoundDataset( + file.Get(), "/model/shell/sections", + static_cast(domain.ShellSections().Size()), + {"internal_section_id", "source_file", "source_line", "source_elset", + "material_internal_id", "thickness"}); + RequireSchemaV1NumericDataset( + file.Get(), "/model/shell/nodal_director", {node_count, 3U}, "D1,D2,D3", + "1,1,1", "global-cartesian", "nodal-initial-director", nullptr); + RequireSchemaV1NumericDataset( + file.Get(), "/model/shell/nodal_frame", {node_count, 3U, 3U}, "X,Y,Z", + "1,1,1", "global-cartesian", "nodal-initial-frame", nullptr); + RequireSchemaV1MaskDataset(file.Get(), nodal_dimensions); + RequireSchemaV1NumericDataset( + file.Get(), "/model/prescribed_displacement_start", nodal_dimensions, + "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal-prescribed-start", nullptr); + RequireSchemaV1NumericDataset( + file.Get(), "/model/prescribed_displacement_target", nodal_dimensions, + "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal-prescribed-target", nullptr); + RequireSchemaV1NumericDataset(file.Get(), "/model/shell/midsurface_locations", + {4U, 2U}, "XI,ETA", "1,1", "shell-natural", + "midsurface-location", nullptr); + RequireSchemaV1NumericDataset(file.Get(), "/model/shell/section_positions", + {3U}, "ZETA", "1", "shell-natural", + "section-position", nullptr); + + const auto& frames = state.AcceptedFrames(); + RequireCompoundDataset(file.Get(), "/steps/Step-1/accepted_frames", + static_cast(frames.size()), + {"frame_index", "increment_index", "load_factor", + "iteration_count", "is_factor_one"}); + if (H5Lexists(file.Get(), "/steps/Step-1/trial_history", H5P_DEFAULT) != 0) { + throw Hdf5Failure{"Schema v1 must not contain nonlinear trial history."}; + } + for (const auto& frame : frames) { + const std::string root = "/steps/Step-1/frames/" + + std::to_string(frame.frame_index); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/displacement").c_str(), nodal_dimensions, + "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/triad").c_str(), {node_count, 3U, 3U}, + "X,Y,Z", "1,1,1", "global-cartesian", "nodal-triad", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/director").c_str(), {node_count, 3U}, + "D1,D2,D3", "1,1,1", "global-cartesian", "nodal-director", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/generalized_internal_force").c_str(), + nodal_dimensions, "FI1,FI2,FI3,MI_PHI1,MI_PHI2,MI_PHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/generalized_external_force").c_str(), + nodal_dimensions, "FE1,FE2,FE3,ME_PHI1,ME_PHI2,ME_PHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/generalized_residual").c_str(), + nodal_dimensions, "RU1,RU2,RU3,RPHI1,RPHI2,RPHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/nodal/reaction").c_str(), nodal_dimensions, + "RF1,RF2,RF3,RM1,RM2,RM3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", &frame); + const std::string shell_root = root + "/element/shell"; + RequireSchemaV1NumericDataset( + file.Get(), (shell_root + "/local_frame").c_str(), + {element_count, 4U, 3U, 3U}, "X,Y,Z", "1,1,1", "global-cartesian", + "shell-local-frame", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (shell_root + "/generalized_strain").c_str(), + {element_count, 4U, 8U}, "E11,E22,G12,K11,K22,K12,G13,G23", + "1,1,1,1/length,1/length,1/length,1,1", "shell-local", "midsurface", + &frame); + RequireSchemaV1ShellIdentity(file.Get(), + (shell_root + "/generalized_strain").c_str(), + false, root); + RequireSchemaV1NumericDataset( + file.Get(), (shell_root + "/section_resultant").c_str(), + {element_count, 4U, 8U}, "N11,N22,N12,M11,M22,M12,Q13,Q23", + "force/length,force/length,force/length,force,force,force,force/length," + "force/length", + "shell-local", "midsurface", &frame); + RequireSchemaV1ShellIdentity(file.Get(), + (shell_root + "/section_resultant").c_str(), + false, root); + RequireSchemaV1NumericDataset( + file.Get(), (shell_root + "/stress").c_str(), + {element_count, 4U, 3U, 3U}, "S11,S22,S12", + "force/length^2,force/length^2,force/length^2", "shell-local", + "section-position", &frame); + RequireSchemaV1ShellIdentity(file.Get(), (shell_root + "/stress").c_str(), + true, root); + RequireSchemaV1NumericDataset(file.Get(), (root + "/global/energy").c_str(), + {1U}, "PHYSICAL_STRAIN_ENERGY", "force*length", + "global", "global", &frame); + RequireSchemaV1NumericDataset( + file.Get(), (root + "/global/equilibrium").c_str(), {6U}, + "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "global-origin", &frame); + } + RequireCompoundDataset(file.Get(), "/diagnostics", + static_cast(diagnostic_count), + {"severity", "code", "file", "line", "keyword", + "entity_identity", "message"}); + RequireHdf5(file.CloseChecked(), + "Unable to close nonlinear read-only self-check file."); +} + Status SelfCheck(const std::filesystem::path& path, const Domain& domain, const AnalysisState& state, const std::size_t diagnostic_count, const WriterModelData& model_data) { @@ -607,4 +937,18 @@ Status SelfCheck(const std::filesystem::path& path, const Domain& domain, } } +Status NonlinearSelfCheck(const std::filesystem::path& path, + const Domain& domain, + const NonlinearAnalysisState& state, + const std::size_t diagnostic_count) { + try { + NonlinearSelfCheckFile(path, domain, state, diagnostic_count); + return Status::Ok(); + } catch (const Hdf5Failure& failure) { + return OutputFailure("hdf5-write-failure", failure.what()); + } catch (const std::exception& failure) { + return OutputFailure("hdf5-write-failure", failure.what()); + } +} + } // namespace fesa::hdf5_internal diff --git a/src/fesa/io/hdf5/hdf5_self_check.h b/src/fesa/io/hdf5/hdf5_self_check.h index b076b1e..be6fb94 100644 --- a/src/fesa/io/hdf5/hdf5_self_check.h +++ b/src/fesa/io/hdf5/hdf5_self_check.h @@ -5,6 +5,7 @@ #include #include "fesa/analysis/analysis_state.h" +#include "fesa/analysis/nonlinear_analysis_state.h" #include "fesa/core/status.h" #include "fesa/model/domain.h" #include "io/hdf5/hdf5_primitives.h" @@ -16,6 +17,12 @@ Status SelfCheck(const std::filesystem::path& path, const Domain& domain, const AnalysisState& state, std::size_t diagnostic_count, const WriterModelData& model_data); +/// @brief Reopens and validates the complete closed schema-v1 candidate. +Status NonlinearSelfCheck(const std::filesystem::path& path, + const Domain& domain, + const NonlinearAnalysisState& state, + std::size_t diagnostic_count); + } // namespace fesa::hdf5_internal #endif // FESA_IO_HDF5_HDF5_SELF_CHECK_H_ diff --git a/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp b/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp new file mode 100644 index 0000000..00caafa --- /dev/null +++ b/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp @@ -0,0 +1,1113 @@ +#include "fesa/io/hdf5/nonlinear_hdf5_results_writer.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/build_info.h" +#include "fesa/elements/finite_rotation.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/math/vector3.h" +#include "io/hdf5/hdf5_atomic_file.h" +#include "io/hdf5/hdf5_primitives.h" +#include "io/hdf5/hdf5_raii.h" +#include "io/hdf5/hdf5_self_check.h" + +namespace fesa { +namespace { + +using hdf5_internal::Hdf5Failure; +using hdf5_internal::Hdf5Handle; + +constexpr std::size_t kDofsPerNode = 6U; +constexpr std::size_t kShellLocationsPerElement = 4U; +constexpr std::size_t kSectionPositions = 3U; + +struct NonlinearModelData { + std::vector constraint_mask; + std::vector prescribed_start; + std::vector prescribed_target; +}; + +struct NodeWriteRow { + std::uint64_t internal_node_id; + const char* instance_name; + const char* source_label; + double coordinates[3]; +}; + +struct ElementWriteRow { + std::uint64_t internal_element_id; + const char* instance_name; + const char* source_label; + const char* source_element_type; + const char* internal_formulation; + std::uint64_t node_internal_ids[4]; + std::uint64_t shell_section_internal_id; + std::uint64_t material_internal_id; +}; + +struct MaterialWriteRow { + std::uint64_t internal_material_id; + const char* name; + double youngs_modulus; + double poisson_ratio; +}; + +struct SectionWriteRow { + std::uint64_t internal_section_id; + const char* source_file; + std::uint64_t source_line; + const char* source_elset; + std::uint64_t material_internal_id; + double thickness; +}; + +struct AcceptedFrameWriteRow { + std::uint64_t frame_index; + std::uint64_t increment_index; + double load_factor; + std::uint64_t iteration_count; + std::uint8_t is_factor_one; +}; + +struct DiagnosticWriteRow { + const char* severity; + const char* code; + const char* file; + std::uint64_t line; + const char* keyword; + const char* entity_identity; + const char* message; +}; + +template +bool IsFinite(const std::array& values) { + return std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); }); +} + +bool IsFinite(const Vector& values) { + for (std::size_t index = 0U; index < values.Size(); ++index) { + if (!std::isfinite(values[index])) { + return false; + } + } + return true; +} + +bool SameIdentity(const SourceEntityId& left, const SourceEntityId& right) { + return left.instance_name == right.instance_name && + left.source_label == right.source_label && + left.source_label_text == right.source_label_text; +} + +bool IsFinite(const ShellResultRow& row) { + if (!IsFinite(row.natural_coordinates) || !IsFinite(row.generalized_strain) || + !IsFinite(row.section_resultant)) { + return false; + } + for (const auto& axis : row.local_frame) { + if (!IsFinite(axis)) { + return false; + } + } + for (const auto& stress : row.stress) { + if (!std::isfinite(stress.zeta) || !IsFinite(stress.components)) { + return false; + } + } + return true; +} + +Status Failure(const char* code, const std::string& message) { + return hdf5_internal::OutputFailure(code, message); +} + +Status ValidateDomain(const Domain& domain) { + if (!domain.BeamElements().Empty() || domain.ShellElements().Empty() || + domain.Steps().Size() != 1U || !domain.Steps()[0U].IsNonlinearStatic() || + domain.Nodes().empty() || domain.SourcePath().empty() || + domain.SourceContentIdentity().empty() || + !hdf5_internal::IsValidUtf8(domain.SourceContentIdentity())) { + return Failure("invalid-result-identity", + "Schema v1 requires one nonlinear shell Domain identity."); + } + if (domain.ShellNodeInitialFrames().size() != domain.Nodes().size()) { + return Failure("invalid-result-identity", + "Every nonlinear output node requires an initial frame."); + } + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + const Node& source = domain.Nodes()[node]; + const auto& frame = domain.ShellNodeInitialFrames()[node]; + if (source.source_id.source_label <= 0 || + source.source_id.source_label_text.empty() || + !hdf5_internal::IsValidUtf8(source.source_id.instance_name) || + !hdf5_internal::IsValidUtf8(source.source_id.source_label_text) || + !Vector3{source.coordinates}.IsFinite() || + frame.node_index != static_cast(node) || + !IsFinite(frame.tangent_a) || !IsFinite(frame.tangent_b) || + !IsFinite(frame.director)) { + return Failure("invalid-result-identity", + "Nonlinear node identity or initial frame is invalid."); + } + } + for (std::size_t element = 0U; element < domain.ShellElements().Size(); + ++element) { + const auto& source = domain.ShellElements()[element]; + if (source.source_id.source_label <= 0 || + source.source_id.source_label_text.empty() || + !hdf5_internal::IsValidUtf8(source.source_id.instance_name) || + !hdf5_internal::IsValidUtf8(source.source_id.source_label_text) || + source.node_indices.size() != 4U || + source.section_index >= domain.ShellSections().Size() || + source.material_index >= domain.LinearElasticMaterials().Size() || + domain.ShellSections()[source.section_index].material_index != + source.material_index) { + return Failure("invalid-result-identity", + "Nonlinear shell element identity is invalid."); + } + for (const EntityIndex node : source.node_indices) { + if (node >= domain.Nodes().size()) { + return Failure("invalid-result-identity", + "Nonlinear shell connectivity is out of range."); + } + } + } + return Status::Ok(); +} + +Status BuildModelData(const Domain& domain, NonlinearModelData& model_data) { + auto model_result = AnalysisModel::Create(domain); + if (!model_result.HasValue()) { + return Failure("invalid-result-state", + "The nonlinear writer could not create an AnalysisModel."); + } + auto dofs_result = DofManager::Create(model_result.Value()); + if (!dofs_result.HasValue()) { + return Failure("invalid-result-state", + "The nonlinear writer could not create a DofManager."); + } + const DofManager dofs = std::move(dofs_result.Value()); + std::size_t full_dof_count = 0U; + if (!hdf5_internal::SizeProductFits(domain.Nodes().size(), kDofsPerNode, + full_dof_count) || + dofs.FullDofCount() != full_dof_count || + dofs.ConstrainedDofs().size() != dofs.PrescribedValues().Size()) { + return Failure("invalid-result-state", + "Nonlinear constraint identities have an invalid size."); + } + model_data.constraint_mask.assign(full_dof_count, 0U); + model_data.prescribed_start.assign(full_dof_count, 0.0); + model_data.prescribed_target.assign(full_dof_count, 0.0); + for (std::size_t index = 0U; index < dofs.ConstrainedDofs().size(); ++index) { + const std::size_t full_dof = dofs.ConstrainedDofs()[index]; + const double target = dofs.PrescribedValues()[index]; + if (full_dof >= full_dof_count || !std::isfinite(target)) { + return Failure("invalid-result-state", + "Nonlinear prescribed values must be finite and in range."); + } + model_data.constraint_mask[full_dof] = 1U; + model_data.prescribed_target[full_dof] = target; + } + return Status::Ok(); +} + +Status ValidateState(const Domain& domain, const NonlinearAnalysisState& state) { + const auto& frames = state.AcceptedFrames(); + if (frames.empty()) { + return Failure("invalid-result-state", + "Schema v1 requires at least one accepted frame."); + } + std::size_t full_dof_count = 0U; + std::size_t shell_row_count = 0U; + if (!hdf5_internal::SizeProductFits(domain.Nodes().size(), kDofsPerNode, + full_dof_count) || + !hdf5_internal::SizeProductFits(domain.ShellElements().Size(), + kShellLocationsPerElement, + shell_row_count)) { + return Failure("invalid-result-state", + "Nonlinear result dimensions overflow size_t."); + } + const double gauss = 1.0 / std::sqrt(3.0); + const std::array + locations{ShellMidsurfaceLocation::kGp1, ShellMidsurfaceLocation::kGp2, + ShellMidsurfaceLocation::kGp3, ShellMidsurfaceLocation::kGp4}; + const std::array, kShellLocationsPerElement> + coordinates{{{-gauss, -gauss}, {gauss, -gauss}, + {gauss, gauss}, {-gauss, gauss}}}; + for (std::size_t frame_index = 0U; frame_index < frames.size(); + ++frame_index) { + const AcceptedFrameState& frame = frames[frame_index]; + const bool final_frame = frame_index + 1U == frames.size(); + if (frame.frame_index != frame_index || frame.increment_index == 0U || + !std::isfinite(frame.load_factor) || frame.load_factor <= 0.0 || + frame.load_factor > 1.0 || frame.iteration_count == 0U || + frame.is_factor_one != final_frame || + (final_frame && frame.load_factor != 1.0) || + (!final_frame && frame.load_factor >= 1.0) || + (frame_index > 0U && + (frame.increment_index <= frames[frame_index - 1U].increment_index || + frame.load_factor <= frames[frame_index - 1U].load_factor))) { + return Failure("invalid-result-state", + "Accepted-frame ordering or factor-one identity is invalid."); + } + if (frame.nodal_internal_order.size() != domain.Nodes().size() || + frame.nodal_source_ids.size() != domain.Nodes().size() || + frame.nodal_triad.size() != domain.Nodes().size() || + frame.nodal_director.size() != domain.Nodes().size() || + frame.shell_results.size() != shell_row_count || + !std::isfinite(frame.physical_strain_energy) || + !IsFinite(frame.global_equilibrium)) { + return Failure("invalid-result-state", + "Accepted-frame identity or physical inventory is invalid."); + } + const std::array vectors{ + &frame.generalized_coordinates, &frame.displacement, + &frame.rotation_vector, &frame.internal_force, + &frame.external_force, &frame.residual, + &frame.reaction}; + for (const Vector* values : vectors) { + if (values->Size() != full_dof_count || !IsFinite(*values)) { + return Failure("invalid-result-state", + "Accepted-frame vectors must be finite node-by-six data."); + } + } + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + if (frame.nodal_internal_order[node] != node || + !SameIdentity(frame.nodal_source_ids[node], + domain.Nodes()[node].source_id) || + !IsFinite(frame.nodal_triad[node][0U]) || + !IsFinite(frame.nodal_triad[node][1U]) || + !IsFinite(frame.nodal_triad[node][2U]) || + !IsFinite(frame.nodal_director[node])) { + return Failure("invalid-result-state", + "Accepted-frame nodal identity is invalid."); + } + } + for (std::size_t row_index = 0U; row_index < shell_row_count; + ++row_index) { + const ShellResultRow& row = frame.shell_results[row_index]; + const std::size_t element = row_index / kShellLocationsPerElement; + const std::size_t location = row_index % kShellLocationsPerElement; + if (row.element != element || row.location != locations[location] || + row.natural_coordinates != coordinates[location] || !IsFinite(row)) { + return Failure("invalid-result-state", + "Accepted shell rows must preserve element and GP order."); + } + } + } + return Status::Ok(); +} + +void WriteCommonNumericAttributes(const hid_t dataset, + const std::string& component_names, + const std::string& component_units, + const std::string& coordinate_system, + const std::string& location) { + hdf5_internal::WriteUint64Attribute(dataset, "schema_version", 1U); + hdf5_internal::WriteStringAttribute(dataset, "component_names", + component_names); + hdf5_internal::WriteStringAttribute(dataset, "component_unit_dimensions", + component_units); + hdf5_internal::WriteStringAttribute(dataset, "coordinate_system", + coordinate_system); + hdf5_internal::WriteStringAttribute(dataset, "location", location); +} + +void WriteFrameAttributes(const hid_t dataset, const AcceptedFrameState& frame) { + hdf5_internal::WriteStringAttribute(dataset, "step_name", "Step-1"); + hdf5_internal::WriteUint64Attribute(dataset, "frame_index", frame.frame_index); + hdf5_internal::WriteUint64Attribute(dataset, "increment_index", + frame.increment_index); + hdf5_internal::WriteDoubleAttribute(dataset, "load_factor", + frame.load_factor); + hdf5_internal::WriteUint8Attribute(dataset, "is_factor_one", + frame.is_factor_one ? 1U : 0U); +} + +Hdf5Handle WriteModelDoubleDataset( + const hid_t file, const std::string& path, + const std::vector& dimensions, const double* values, + const std::size_t value_count, const std::string& component_names, + const std::string& component_units, const std::string& coordinate_system, + const std::string& location) { + auto dataset = hdf5_internal::WriteDoubleValues(file, path, dimensions, values, + value_count); + WriteCommonNumericAttributes(dataset.Get(), component_names, component_units, + coordinate_system, location); + return dataset; +} + +Hdf5Handle WriteFrameDoubleDataset( + const hid_t file, const std::string& path, + const std::vector& dimensions, const double* values, + const std::size_t value_count, const std::string& component_names, + const std::string& component_units, const std::string& coordinate_system, + const std::string& location, const AcceptedFrameState& frame) { + auto dataset = WriteModelDoubleDataset(file, path, dimensions, values, + value_count, component_names, + component_units, coordinate_system, + location); + WriteFrameAttributes(dataset.Get(), frame); + return dataset; +} + +void WriteMetadata(const hid_t file, const Domain& domain) { + auto metadata = hdf5_internal::CreateGroup(file, "/metadata"); + hdf5_internal::WriteUint64Attribute(metadata.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(metadata.Get(), "feature_id", + "nonlinear-static-newton-raphson"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "solver_version", + std::string{SolverVersion()}); + hdf5_internal::WriteStringAttribute(metadata.Get(), "source_input_identity", + hdf5_internal::SourceInputIdentity(domain)); + hdf5_internal::WriteStringAttribute(metadata.Get(), "unit_system_label", + "user-consistent-unspecified"); + hdf5_internal::WriteStringAttribute( + metadata.Get(), "coordinate_convention", + "global-cartesian; shell-local=fixed-initial-reference; " + "positive-thickness=+zeta"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "analysis_procedure", + "nonlinear-static-full-newton"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "internal_formulation", + "FESA-MITC4-total-lagrangian"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "integration_rule", + "2x2x2-gauss; mitc4-edge-midpoint-shear"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "step_name", "Step-1"); + hdf5_internal::WriteStringAttribute(metadata.Get(), "frame_indexing", + "accepted-increment-order-zero-based"); + hdf5_internal::WriteUint8Attribute(metadata.Get(), "factor_zero_is_frame", + 0U); + hdf5_internal::WriteDoubleAttribute(metadata.Get(), "factor_zero_load_factor", + 0.0); +} + +void WriteNodes(const hid_t file, const Domain& domain) { + std::vector rows; + rows.reserve(domain.Nodes().size()); + for (std::size_t index = 0U; index < domain.Nodes().size(); ++index) { + const Node& node = domain.Nodes()[index]; + rows.push_back({static_cast(index), + node.source_id.instance_name.c_str(), + node.source_id.source_label_text.c_str(), + {node.coordinates[0U], node.coordinates[1U], + node.coordinates[2U]}}); + } + auto string_type = hdf5_internal::MakeUtf8StringType(); + const hsize_t coordinate_dimensions[] = {3U}; + Hdf5Handle file_coordinates{hdf5_internal::RequireHdf5Id( + H5Tarray_create2(H5T_IEEE_F64LE, 1, + coordinate_dimensions), + "Unable to create node coordinate type."), + H5Tclose}; + Hdf5Handle memory_coordinates{hdf5_internal::RequireHdf5Id( + H5Tarray_create2(H5T_NATIVE_DOUBLE, 1, + coordinate_dimensions), + "Unable to create node memory type."), + H5Tclose}; + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(NodeWriteRow)), + "Unable to create nonlinear node file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(NodeWriteRow)), + "Unable to create nonlinear node memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type, + const hid_t coordinate_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "internal_node_id", HOFFSET(NodeWriteRow, internal_node_id), + integer_type), + "Unable to define nonlinear node ID."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "instance_name", HOFFSET(NodeWriteRow, instance_name), + string_type.Get()), + "Unable to define nonlinear node instance."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_label", HOFFSET(NodeWriteRow, source_label), + string_type.Get()), + "Unable to define nonlinear node source label."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "coordinates", HOFFSET(NodeWriteRow, coordinates), + coordinate_type), + "Unable to define nonlinear node coordinates."); + }; + insert(file_type.Get(), H5T_STD_U64LE, file_coordinates.Get()); + insert(memory_type.Get(), H5T_NATIVE_UINT64, memory_coordinates.Get()); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/model/nodes", rows.size(), file_type.Get(), memory_type.Get(), + rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(dataset.Get(), "coordinate_system", + "global-cartesian"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "component_names", "X,Y,Z"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "component_unit_dimensions", + "length,length,length"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "location", + "nodal-reference"); +} + +void WriteElements(const hid_t file, const Domain& domain) { + std::vector rows; + rows.reserve(domain.ShellElements().Size()); + for (std::size_t index = 0U; index < domain.ShellElements().Size(); ++index) { + const auto& element = domain.ShellElements()[index]; + rows.push_back({static_cast(index), + element.source_id.instance_name.c_str(), + element.source_id.source_label_text.c_str(), + hdf5_internal::ShellSourceTypeName(element.source_type), + "FESA-MITC4-total-lagrangian", + {static_cast(element.node_indices[0U]), + static_cast(element.node_indices[1U]), + static_cast(element.node_indices[2U]), + static_cast(element.node_indices[3U])}, + static_cast(element.section_index), + static_cast(element.material_index)}); + } + auto string_type = hdf5_internal::MakeUtf8StringType(); + const hsize_t nodes[] = {4U}; + Hdf5Handle file_nodes{hdf5_internal::RequireHdf5Id( + H5Tarray_create2(H5T_STD_U64LE, 1, nodes), + "Unable to create shell connectivity type."), + H5Tclose}; + Hdf5Handle memory_nodes{hdf5_internal::RequireHdf5Id( + H5Tarray_create2(H5T_NATIVE_UINT64, 1, nodes), + "Unable to create shell connectivity memory type."), + H5Tclose}; + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(ElementWriteRow)), + "Unable to create shell element file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(ElementWriteRow)), + "Unable to create shell element memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type, + const hid_t node_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "internal_element_id", + HOFFSET(ElementWriteRow, internal_element_id), integer_type), + "Unable to define shell element ID."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "instance_name", HOFFSET(ElementWriteRow, instance_name), + string_type.Get()), + "Unable to define shell instance identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_label", HOFFSET(ElementWriteRow, source_label), + string_type.Get()), + "Unable to define shell source label identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_element_type", + HOFFSET(ElementWriteRow, source_element_type), + string_type.Get()), + "Unable to define shell source type identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "internal_formulation", + HOFFSET(ElementWriteRow, internal_formulation), + string_type.Get()), + "Unable to define shell formulation identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "node_internal_ids", HOFFSET(ElementWriteRow, node_internal_ids), + node_type), + "Unable to define shell connectivity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "shell_section_internal_id", + HOFFSET(ElementWriteRow, shell_section_internal_id), integer_type), + "Unable to define shell section identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "material_internal_id", + HOFFSET(ElementWriteRow, material_internal_id), integer_type), + "Unable to define shell material identity."); + }; + insert(file_type.Get(), H5T_STD_U64LE, file_nodes.Get()); + insert(memory_type.Get(), H5T_NATIVE_UINT64, memory_nodes.Get()); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/model/elements", rows.size(), file_type.Get(), memory_type.Get(), + rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(dataset.Get(), "formulation", + "FESA-MITC4-total-lagrangian"); +} + +void WriteMaterials(const hid_t file, const Domain& domain) { + std::vector rows; + rows.reserve(domain.LinearElasticMaterials().Size()); + for (std::size_t index = 0U; index < domain.LinearElasticMaterials().Size(); + ++index) { + const auto& material = domain.LinearElasticMaterials()[index]; + rows.push_back({static_cast(index), material.name.c_str(), + material.youngs_modulus, material.poisson_ratio}); + } + auto string_type = hdf5_internal::MakeUtf8StringType(); + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(MaterialWriteRow)), + "Unable to create shell material file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(MaterialWriteRow)), + "Unable to create shell material memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type, + const hid_t double_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "internal_material_id", + HOFFSET(MaterialWriteRow, internal_material_id), integer_type), + "Unable to define shell material ID."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "name", HOFFSET(MaterialWriteRow, name), string_type.Get()), + "Unable to define shell material name."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "E", HOFFSET(MaterialWriteRow, youngs_modulus), + double_type), + "Unable to define shell material E."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "nu", HOFFSET(MaterialWriteRow, poisson_ratio), + double_type), + "Unable to define shell material nu."); + }; + insert(file_type.Get(), H5T_STD_U64LE, H5T_IEEE_F64LE); + insert(memory_type.Get(), H5T_NATIVE_UINT64, H5T_NATIVE_DOUBLE); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/model/shell/materials", rows.size(), file_type.Get(), + memory_type.Get(), rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(dataset.Get(), "component_unit_dimensions", + "force/length^2,1"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "location", + "model-material"); +} + +void WriteSections(const hid_t file, const Domain& domain) { + std::vector source_files; + source_files.reserve(domain.ShellSections().Size()); + for (std::size_t index = 0U; index < domain.ShellSections().Size(); ++index) { + source_files.push_back(hdf5_internal::NormalizedPathString( + domain.ShellSections()[index].location.file)); + } + std::vector rows; + rows.reserve(domain.ShellSections().Size()); + for (std::size_t index = 0U; index < domain.ShellSections().Size(); ++index) { + const auto& section = domain.ShellSections()[index]; + rows.push_back({static_cast(index), source_files[index].c_str(), + static_cast(section.location.line), + section.name.c_str(), + static_cast(section.material_index), + section.thickness}); + } + auto string_type = hdf5_internal::MakeUtf8StringType(); + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(SectionWriteRow)), + "Unable to create shell section file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(SectionWriteRow)), + "Unable to create shell section memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type, + const hid_t double_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "internal_section_id", + HOFFSET(SectionWriteRow, internal_section_id), integer_type), + "Unable to define shell section ID."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_file", HOFFSET(SectionWriteRow, source_file), + string_type.Get()), + "Unable to define shell section source file."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_line", HOFFSET(SectionWriteRow, source_line), + integer_type), + "Unable to define shell section source line."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "source_elset", HOFFSET(SectionWriteRow, source_elset), + string_type.Get()), + "Unable to define shell section source elset."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "material_internal_id", + HOFFSET(SectionWriteRow, material_internal_id), integer_type), + "Unable to define shell section material identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "thickness", HOFFSET(SectionWriteRow, thickness), + double_type), + "Unable to define shell section thickness."); + }; + insert(file_type.Get(), H5T_STD_U64LE, H5T_IEEE_F64LE); + insert(memory_type.Get(), H5T_NATIVE_UINT64, H5T_NATIVE_DOUBLE); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/model/shell/sections", rows.size(), file_type.Get(), + memory_type.Get(), rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(dataset.Get(), "component_unit_dimensions", + "length"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "location", + "model-shell-section"); + hdf5_internal::WriteStringAttribute(dataset.Get(), "layering", + "centered-single-layer"); +} + +void WriteModelData(const hid_t file, const Domain& domain, + const NonlinearModelData& model_data) { + std::vector directors; + std::vector frames; + directors.reserve(domain.Nodes().size() * 3U); + frames.reserve(domain.Nodes().size() * 9U); + for (const auto& frame : domain.ShellNodeInitialFrames()) { + directors.insert(directors.end(), frame.director.begin(), frame.director.end()); + frames.insert(frames.end(), frame.tangent_a.begin(), frame.tangent_a.end()); + frames.insert(frames.end(), frame.tangent_b.begin(), frame.tangent_b.end()); + frames.insert(frames.end(), frame.director.begin(), frame.director.end()); + } + const hsize_t node_count = static_cast(domain.Nodes().size()); + (void)WriteModelDoubleDataset(file, "/model/shell/nodal_director", + {node_count, 3U}, directors.data(), + directors.size(), "D1,D2,D3", "1,1,1", + "global-cartesian", "nodal-initial-director"); + auto initial_frame = WriteModelDoubleDataset( + file, "/model/shell/nodal_frame", {node_count, 3U, 3U}, frames.data(), + frames.size(), "X,Y,Z", "1,1,1", "global-cartesian", + "nodal-initial-frame"); + hdf5_internal::WriteStringAttribute(initial_frame.Get(), "axis_names", "A,B,D"); + + WriteMaterials(file, domain); + WriteSections(file, domain); + const std::vector nodal_dimensions{node_count, kDofsPerNode}; + hdf5_internal::WriteUint8Dataset(file, "/model/nodal_constraint_mask", + nodal_dimensions, model_data.constraint_mask.data(), + model_data.constraint_mask.size()); + Hdf5Handle mask{hdf5_internal::RequireHdf5Id( + H5Dopen2(file, "/model/nodal_constraint_mask", H5P_DEFAULT), + "Unable to reopen nonlinear constraint mask."), + H5Dclose}; + hdf5_internal::WriteUint64Attribute(mask.Get(), "schema_version", 1U); + hdf5_internal::WriteStringAttribute(mask.Get(), "component_unit_dimensions", + "1,1,1,1,1,1"); + hdf5_internal::WriteStringAttribute(mask.Get(), "coordinate_system", + "global-cartesian"); + hdf5_internal::WriteStringAttribute(mask.Get(), "location", + "nodal-constraint"); + auto start = WriteModelDoubleDataset( + file, "/model/prescribed_displacement_start", nodal_dimensions, + model_data.prescribed_start.data(), model_data.prescribed_start.size(), + "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal-prescribed-start"); + hdf5_internal::WriteDoubleAttribute(start.Get(), "load_factor", 0.0); + auto target = WriteModelDoubleDataset( + file, "/model/prescribed_displacement_target", nodal_dimensions, + model_data.prescribed_target.data(), model_data.prescribed_target.size(), + "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal-prescribed-target"); + hdf5_internal::WriteDoubleAttribute(target.Get(), "load_factor", 1.0); + + const double gauss = 1.0 / std::sqrt(3.0); + const std::array locations{-gauss, -gauss, gauss, -gauss, + gauss, gauss, -gauss, gauss}; + (void)WriteModelDoubleDataset(file, "/model/shell/midsurface_locations", + {4U, 2U}, locations.data(), locations.size(), + "XI,ETA", "1,1", "shell-natural", + "midsurface-location"); + const std::array positions{-1.0, 0.0, 1.0}; + auto section_positions = WriteModelDoubleDataset( + file, "/model/shell/section_positions", {3U}, positions.data(), + positions.size(), "ZETA", "1", "shell-natural", "section-position"); + hdf5_internal::WriteStringAttribute(section_positions.Get(), "position_names", + "BOTTOM,MIDDLE,TOP"); +} + +void WriteAcceptedFrameTable(const hid_t file, + const std::vector& frames) { + std::vector rows; + rows.reserve(frames.size()); + for (const auto& frame : frames) { + rows.push_back({frame.frame_index, frame.increment_index, frame.load_factor, + frame.iteration_count, + frame.is_factor_one ? static_cast(1U) + : static_cast(0U)}); + } + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(AcceptedFrameWriteRow)), + "Unable to create accepted-frame file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(AcceptedFrameWriteRow)), + "Unable to create accepted-frame memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type, + const hid_t double_type, const hid_t flag_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "frame_index", HOFFSET(AcceptedFrameWriteRow, frame_index), + integer_type), + "Unable to define accepted-frame index."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "increment_index", + HOFFSET(AcceptedFrameWriteRow, increment_index), integer_type), + "Unable to define accepted increment index."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "load_factor", HOFFSET(AcceptedFrameWriteRow, load_factor), + double_type), + "Unable to define accepted-frame load factor."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "iteration_count", + HOFFSET(AcceptedFrameWriteRow, iteration_count), integer_type), + "Unable to define accepted-frame iteration count."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "is_factor_one", + HOFFSET(AcceptedFrameWriteRow, is_factor_one), flag_type), + "Unable to define accepted-frame factor-one flag."); + }; + insert(file_type.Get(), H5T_STD_U64LE, H5T_IEEE_F64LE, H5T_STD_U8LE); + insert(memory_type.Get(), H5T_NATIVE_UINT64, H5T_NATIVE_DOUBLE, + H5T_NATIVE_UINT8); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/steps/Step-1/accepted_frames", rows.size(), file_type.Get(), + memory_type.Get(), rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); +} + +std::vector CopyVector(const Vector& source) { + std::vector values(source.Size()); + for (std::size_t index = 0U; index < source.Size(); ++index) { + values[index] = source[index]; + } + return values; +} + +std::vector NodalDisplacement(const AcceptedFrameState& frame) { + std::vector values(frame.displacement.Size()); + for (std::size_t node = 0U; node < frame.nodal_internal_order.size(); ++node) { + const std::size_t offset = kDofsPerNode * node; + for (std::size_t component = 0U; component < 3U; ++component) { + values[offset + component] = frame.displacement[offset + component]; + values[offset + 3U + component] = + frame.rotation_vector[offset + 3U + component]; + } + } + return values; +} + +std::vector FlattenTriads(const AcceptedFrameState& frame) { + std::vector values; + values.reserve(frame.nodal_triad.size() * 9U); + for (const auto& triad : frame.nodal_triad) { + for (const auto& axis : triad) { + values.insert(values.end(), axis.begin(), axis.end()); + } + } + return values; +} + +std::vector FlattenDirectors(const AcceptedFrameState& frame) { + std::vector values; + values.reserve(frame.nodal_director.size() * 3U); + for (const auto& director : frame.nodal_director) { + values.insert(values.end(), director.begin(), director.end()); + } + return values; +} + +std::vector SpatialReaction(const AcceptedFrameState& frame) { + std::vector values = CopyVector(frame.reaction); + for (std::size_t node = 0U; node < frame.nodal_internal_order.size(); ++node) { + const std::size_t offset = kDofsPerNode * node; + const Vector3 phi{frame.rotation_vector[offset + 3U], + frame.rotation_vector[offset + 4U], + frame.rotation_vector[offset + 5U]}; + const Matrix transform = InverseTransposeLeftJacobianSO3(phi); + const std::array generalized{ + frame.reaction[offset + 3U], frame.reaction[offset + 4U], + frame.reaction[offset + 5U]}; + for (std::size_t row = 0U; row < 3U; ++row) { + values[offset + 3U + row] = 0.0; + for (std::size_t column = 0U; column < 3U; ++column) { + values[offset + 3U + row] += transform(row, column) * generalized[column]; + } + } + } + return values; +} + +void WriteShellIdentity(const hid_t dataset, const bool has_section_positions, + const std::string& local_frame_path) { + hdf5_internal::WriteStringAttribute(dataset, "source_element_type_dataset", + "/model/elements.source_element_type"); + hdf5_internal::WriteStringAttribute(dataset, "internal_formulation", + "FESA-MITC4-total-lagrangian"); + hdf5_internal::WriteStringAttribute(dataset, "midsurface_location_dataset", + "/model/shell/midsurface_locations"); + hdf5_internal::WriteStringAttribute(dataset, "local_frame_dataset", + local_frame_path); + if (has_section_positions) { + hdf5_internal::WriteStringAttribute(dataset, "section_position_dataset", + "/model/shell/section_positions"); + } +} + +void WriteFrame(const hid_t file, const Domain& domain, + const AcceptedFrameState& frame) { + const std::string root = "/steps/Step-1/frames/" + + std::to_string(frame.frame_index); + (void)hdf5_internal::CreateGroup(file, (root + "/nodal").c_str()); + (void)hdf5_internal::CreateGroup(file, (root + "/element/shell").c_str()); + (void)hdf5_internal::CreateGroup(file, (root + "/global").c_str()); + const hsize_t node_count = static_cast(domain.Nodes().size()); + const std::vector nodal_dimensions{node_count, kDofsPerNode}; + const auto displacement = NodalDisplacement(frame); + (void)WriteFrameDoubleDataset( + file, root + "/nodal/displacement", nodal_dimensions, displacement.data(), + displacement.size(), "UX,UY,UZ,URX,URY,URZ", "length,length,length,1,1,1", + "global-cartesian", "nodal", frame); + const auto triads = FlattenTriads(frame); + (void)WriteFrameDoubleDataset(file, root + "/nodal/triad", + {node_count, 3U, 3U}, triads.data(), triads.size(), + "X,Y,Z", "1,1,1", "global-cartesian", + "nodal-triad", frame); + const auto directors = FlattenDirectors(frame); + (void)WriteFrameDoubleDataset(file, root + "/nodal/director", {node_count, 3U}, + directors.data(), directors.size(), "D1,D2,D3", + "1,1,1", "global-cartesian", "nodal-director", + frame); + const auto internal = CopyVector(frame.internal_force); + (void)WriteFrameDoubleDataset( + file, root + "/nodal/generalized_internal_force", nodal_dimensions, + internal.data(), internal.size(), "FI1,FI2,FI3,MI_PHI1,MI_PHI2,MI_PHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", frame); + const auto external = CopyVector(frame.external_force); + (void)WriteFrameDoubleDataset( + file, root + "/nodal/generalized_external_force", nodal_dimensions, + external.data(), external.size(), "FE1,FE2,FE3,ME_PHI1,ME_PHI2,ME_PHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", frame); + const auto residual = CopyVector(frame.residual); + (void)WriteFrameDoubleDataset( + file, root + "/nodal/generalized_residual", nodal_dimensions, + residual.data(), residual.size(), "RU1,RU2,RU3,RPHI1,RPHI2,RPHI3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", frame); + const auto reaction = SpatialReaction(frame); + (void)WriteFrameDoubleDataset( + file, root + "/nodal/reaction", nodal_dimensions, reaction.data(), + reaction.size(), "RF1,RF2,RF3,RM1,RM2,RM3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "nodal", frame); + + std::vector local_frames; + std::vector strains; + std::vector resultants; + std::vector stresses; + local_frames.reserve(frame.shell_results.size() * 9U); + strains.reserve(frame.shell_results.size() * 8U); + resultants.reserve(frame.shell_results.size() * 8U); + stresses.reserve(frame.shell_results.size() * kSectionPositions * 3U); + for (const auto& row : frame.shell_results) { + for (const auto& axis : row.local_frame) { + local_frames.insert(local_frames.end(), axis.begin(), axis.end()); + } + strains.insert(strains.end(), row.generalized_strain.begin(), + row.generalized_strain.end()); + resultants.insert(resultants.end(), row.section_resultant.begin(), + row.section_resultant.end()); + for (const auto& stress : row.stress) { + stresses.insert(stresses.end(), stress.components.begin(), + stress.components.end()); + } + } + const hsize_t element_count = static_cast(domain.ShellElements().Size()); + const std::string shell_root = root + "/element/shell"; + auto local_frame = WriteFrameDoubleDataset( + file, shell_root + "/local_frame", {element_count, 4U, 3U, 3U}, + local_frames.data(), local_frames.size(), "X,Y,Z", "1,1,1", + "global-cartesian", "shell-local-frame", frame); + hdf5_internal::WriteStringAttribute(local_frame.Get(), "axis_names", "E1,E2,E3"); + hdf5_internal::WriteStringAttribute(local_frame.Get(), "source_element_type_dataset", + "/model/elements.source_element_type"); + hdf5_internal::WriteStringAttribute(local_frame.Get(), "internal_formulation", + "FESA-MITC4-total-lagrangian"); + hdf5_internal::WriteStringAttribute(local_frame.Get(), "midsurface_location_dataset", + "/model/shell/midsurface_locations"); + auto strain = WriteFrameDoubleDataset( + file, shell_root + "/generalized_strain", {element_count, 4U, 8U}, + strains.data(), strains.size(), "E11,E22,G12,K11,K22,K12,G13,G23", + "1,1,1,1/length,1/length,1/length,1,1", "shell-local", "midsurface", + frame); + WriteShellIdentity(strain.Get(), false, shell_root + "/local_frame"); + auto resultant = WriteFrameDoubleDataset( + file, shell_root + "/section_resultant", {element_count, 4U, 8U}, + resultants.data(), resultants.size(), "N11,N22,N12,M11,M22,M12,Q13,Q23", + "force/length,force/length,force/length,force,force,force,force/length," + "force/length", + "shell-local", "midsurface", frame); + WriteShellIdentity(resultant.Get(), false, shell_root + "/local_frame"); + auto stress = WriteFrameDoubleDataset( + file, shell_root + "/stress", {element_count, 4U, 3U, 3U}, stresses.data(), + stresses.size(), "S11,S22,S12", + "force/length^2,force/length^2,force/length^2", "shell-local", + "section-position", frame); + WriteShellIdentity(stress.Get(), true, shell_root + "/local_frame"); + (void)WriteFrameDoubleDataset(file, root + "/global/energy", {1U}, + &frame.physical_strain_energy, 1U, + "PHYSICAL_STRAIN_ENERGY", "force*length", + "global", "global", frame); + (void)WriteFrameDoubleDataset( + file, root + "/global/equilibrium", {6U}, frame.global_equilibrium.data(), + frame.global_equilibrium.size(), + "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3", + "force,force,force,force*length,force*length,force*length", + "global-cartesian", "global-origin", frame); +} + +void WriteDiagnostics(const hid_t file, + const std::vector& input_diagnostics) { + std::vector diagnostics = input_diagnostics; + SortDiagnostics(diagnostics); + std::vector files; + files.reserve(diagnostics.size()); + for (const auto& diagnostic : diagnostics) { + files.push_back(hdf5_internal::NormalizedPathString(diagnostic.location.file)); + } + std::vector rows; + rows.reserve(diagnostics.size()); + for (std::size_t index = 0U; index < diagnostics.size(); ++index) { + const auto& diagnostic = diagnostics[index]; + rows.push_back({diagnostic.severity == Severity::kWarning ? "warning" : "error", + diagnostic.code.c_str(), files[index].c_str(), + static_cast(diagnostic.location.line), + diagnostic.keyword.c_str(), diagnostic.entity_identity.c_str(), + diagnostic.message.c_str()}); + } + auto string_type = hdf5_internal::MakeUtf8StringType(); + Hdf5Handle file_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(DiagnosticWriteRow)), + "Unable to create nonlinear diagnostic file type."), + H5Tclose}; + Hdf5Handle memory_type{hdf5_internal::RequireHdf5Id( + H5Tcreate(H5T_COMPOUND, sizeof(DiagnosticWriteRow)), + "Unable to create nonlinear diagnostic memory type."), + H5Tclose}; + const auto insert = [&](const hid_t type, const hid_t integer_type) { + hdf5_internal::RequireHdf5( + H5Tinsert(type, "severity", HOFFSET(DiagnosticWriteRow, severity), + string_type.Get()), + "Unable to define nonlinear diagnostic severity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "code", HOFFSET(DiagnosticWriteRow, code), + string_type.Get()), + "Unable to define nonlinear diagnostic code."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "file", HOFFSET(DiagnosticWriteRow, file), + string_type.Get()), + "Unable to define nonlinear diagnostic file."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "line", HOFFSET(DiagnosticWriteRow, line), integer_type), + "Unable to define nonlinear diagnostic line."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "keyword", HOFFSET(DiagnosticWriteRow, keyword), + string_type.Get()), + "Unable to define nonlinear diagnostic keyword."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "entity_identity", + HOFFSET(DiagnosticWriteRow, entity_identity), string_type.Get()), + "Unable to define nonlinear diagnostic entity identity."); + hdf5_internal::RequireHdf5( + H5Tinsert(type, "message", HOFFSET(DiagnosticWriteRow, message), + string_type.Get()), + "Unable to define nonlinear diagnostic message."); + }; + insert(file_type.Get(), H5T_STD_U64LE); + insert(memory_type.Get(), H5T_NATIVE_UINT64); + auto dataset = hdf5_internal::WriteCompoundDataset( + file, "/diagnostics", rows.size(), file_type.Get(), memory_type.Get(), + rows.data()); + hdf5_internal::WriteUint64Attribute(dataset.Get(), "schema_version", 1U); +} + +Status ValidateDiagnostics(const std::vector& diagnostics) { + for (const auto& diagnostic : diagnostics) { + if (!hdf5_internal::IsValidUtf8(diagnostic.code) || + !hdf5_internal::IsValidUtf8(diagnostic.keyword) || + !hdf5_internal::IsValidUtf8(diagnostic.entity_identity) || + !hdf5_internal::IsValidUtf8(diagnostic.message)) { + return Failure("invalid-result-diagnostic", + "Nonlinear diagnostic text must be valid UTF-8."); + } + } + return Status::Ok(); +} + +} // namespace + +Status NonlinearHdf5ResultsWriter::Write( + const std::filesystem::path& output_path, const Domain& domain, + const NonlinearAnalysisState& state, + const std::vector& diagnostics) { + if (output_path.empty() || output_path.filename().empty()) { + return Failure("invalid-output-path", "The HDF5 output path must name a file."); + } + const Status domain_status = ValidateDomain(domain); + if (!domain_status.IsOk()) { + return domain_status; + } + const Status state_status = ValidateState(domain, state); + if (!state_status.IsOk()) { + return state_status; + } + const Status diagnostic_status = ValidateDiagnostics(diagnostics); + if (!diagnostic_status.IsOk()) { + return diagnostic_status; + } + NonlinearModelData model_data; + const Status model_status = BuildModelData(domain, model_data); + if (!model_status.IsOk()) { + return model_status; + } + + try { + hdf5_internal::Hdf5ErrorSilencer silence_backend_errors; + const std::filesystem::path candidate_path = + hdf5_internal::MakeCandidatePath(output_path); + hdf5_internal::CandidateFileGuard cleanup{candidate_path}; + Hdf5Handle file{hdf5_internal::RequireHdf5Id( + H5Fcreate(candidate_path.string().c_str(), H5F_ACC_EXCL, + H5P_DEFAULT, H5P_DEFAULT), + "Unable to create nonlinear temporary HDF5 file."), + H5Fclose}; + (void)hdf5_internal::CreateGroup(file.Get(), "/model"); + (void)hdf5_internal::CreateGroup(file.Get(), "/model/shell"); + (void)hdf5_internal::CreateGroup(file.Get(), "/steps/Step-1"); + WriteMetadata(file.Get(), domain); + WriteNodes(file.Get(), domain); + WriteElements(file.Get(), domain); + WriteModelData(file.Get(), domain, model_data); + WriteAcceptedFrameTable(file.Get(), state.AcceptedFrames()); + for (const auto& frame : state.AcceptedFrames()) { + WriteFrame(file.Get(), domain, frame); + } + WriteDiagnostics(file.Get(), diagnostics); + hdf5_internal::RequireHdf5(H5Fflush(file.Get(), H5F_SCOPE_GLOBAL), + "Unable to flush nonlinear temporary HDF5 file."); + hdf5_internal::RequireHdf5( + file.CloseChecked(), "Unable to close nonlinear temporary HDF5 file."); + const Status self_check = hdf5_internal::NonlinearSelfCheck( + candidate_path, domain, state, diagnostics.size()); + const Status atomic = hdf5_internal::AtomicFinalizeValidatedCandidate( + candidate_path, output_path, self_check); + if (atomic.IsOk()) { + cleanup.Release(); + } + return atomic; + } catch (const Hdf5Failure& failure) { + return Failure("hdf5-write-failure", failure.what()); + } catch (const std::exception& failure) { + return Failure("hdf5-write-failure", failure.what()); + } +} + +} // namespace fesa diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 663481d..43fc174 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -36,6 +36,7 @@ add_executable( unit/io/abaqus/input_reader_test.cpp unit/io/abaqus/input_syntax_test.cpp unit/io/hdf5/hdf5_results_writer_test.cpp + unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp unit/io/hdf5/hdf5_writer_components_test.cpp unit/loads/load_test.cpp unit/model/domain_test.cpp diff --git a/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp b/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp new file mode 100644 index 0000000..b2cfb77 --- /dev/null +++ b/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp @@ -0,0 +1,591 @@ +#include "fesa/io/hdf5/nonlinear_hdf5_results_writer.h" + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/analysis/nonlinear_analysis_state.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/model/domain.h" +#include "fesa/results/nonlinear_results_writer.h" +#include "io/hdf5/hdf5_raii.h" + +namespace { + +using fesa::hdf5_internal::Hdf5Handle; + +constexpr std::array, 3> kIdentityTriad{ + std::array{1.0, 0.0, 0.0}, + std::array{0.0, 1.0, 0.0}, + std::array{0.0, 0.0, 1.0}}; + +class TempDirectory { + public: + explicit TempDirectory(const std::string& leaf) + : path_{std::filesystem::temp_directory_path() / + ("fesa-nonlinear-hdf5-" + leaf)} { + std::error_code error; + std::filesystem::remove_all(path_, error); + if (!std::filesystem::create_directory(path_)) { + throw std::runtime_error{"Unable to create nonlinear HDF5 test directory."}; + } + } + + ~TempDirectory() { + std::error_code error; + std::filesystem::remove_all(path_, error); + } + + const std::filesystem::path& Path() const noexcept { return path_; } + + private: + std::filesystem::path path_; +}; + +class WinHandle { + public: + explicit WinHandle(const HANDLE handle) : handle_{handle} {} + WinHandle(const WinHandle&) = delete; + WinHandle& operator=(const WinHandle&) = delete; + ~WinHandle() { + if (handle_ != INVALID_HANDLE_VALUE) { + (void)CloseHandle(handle_); + } + } + + HANDLE Get() const noexcept { return handle_; } + + private: + HANDLE handle_{INVALID_HANDLE_VALUE}; +}; + +struct Fixture { + std::unique_ptr domain; + std::unique_ptr dofs; + fesa::NonlinearAnalysisState state; +}; + +struct AcceptedFrameRow { + std::uint64_t frame_index; + std::uint64_t increment_index; + double load_factor; + std::uint64_t iteration_count; + std::uint8_t is_factor_one; +}; + +struct DiagnosticRow { + char* severity; + char* code; + char* file; + std::uint64_t line; + char* keyword; + char* entity_identity; + char* message; +}; + +fesa::ModelDefinition MakeDefinition(const std::filesystem::path& source) { + fesa::ModelDefinition definition{}; + definition.source_path = source; + definition.source_content_identity = "nonlinear-hdf5-fixture"; + definition.nodes = { + {{"Shell-1", 10, "10"}, {0.0, 0.0, 0.0}, {source, 1U}}, + {{"Shell-1", 20, "20"}, {1.0, 0.0, 0.0}, {source, 2U}}, + {{"Shell-1", 30, "30"}, {1.0, 1.0, 0.0}, {source, 3U}}, + {{"Shell-1", 40, "40"}, {0.0, 1.0, 0.0}, {source, 4U}}}; + definition.materials = {{"Steel", 210.0e9, 0.3, {source, 5U}}}; + definition.shell_sections = {{"Shell", 0.1, 0U, {source, 6U}}}; + definition.shell_elements = {{{"Shell-1", 1, "1"}, + fesa::ShellSourceElementType::kS4, + {0U, 1U, 2U, 3U}, + 0U, + 0U, + {source, 7U}}}; + for (std::size_t node = 0U; node < definition.nodes.size(); ++node) { + definition.shell_node_initial_frames.push_back( + {static_cast(node), + {0.0, 0.0, 1.0}, + {1.0, 0.0, 0.0}, + {0.0, 1.0, 0.0}}); + } + definition.steps = {{"Step-1", + {}, + {}, + fesa::StaticProcedureKind::kNonlinearFullNewton, + true, + 0.5, + 1.0, + 0.001, + 1.0, + {source, 8U}}}; + return definition; +} + +fesa::NonlinearStateBaselineInput MakeBaseline(const fesa::Domain& domain) { + fesa::NonlinearStateBaselineInput baseline{}; + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + baseline.node_baselines.push_back( + {static_cast(node), domain.Nodes()[node].source_id, + kIdentityTriad, {0.0, 0.0, 1.0}}); + } + return baseline; +} + +fesa::ShellResultRow MakeShellRow(const fesa::ShellMidsurfaceLocation location, + const std::array coordinates, + const double seed) { + return {0U, + location, + coordinates, + kIdentityTriad, + {seed, seed + 1.0, seed + 2.0, seed + 3.0, seed + 4.0, + seed + 5.0, seed + 6.0, seed + 7.0}, + {seed + 10.0, seed + 11.0, seed + 12.0, seed + 13.0, + seed + 14.0, seed + 15.0, seed + 16.0, seed + 17.0}, + {{{fesa::ShellSectionPosition::kBottom, + -1.0, + {seed + 20.0, seed + 21.0, seed + 22.0}}, + {fesa::ShellSectionPosition::kMiddle, + 0.0, + {seed + 23.0, seed + 24.0, seed + 25.0}}, + {fesa::ShellSectionPosition::kTop, + 1.0, + {seed + 26.0, seed + 27.0, seed + 28.0}}}}}; +} + +std::vector MakeShellRows(const double seed) { + const double gauss = 1.0 / std::sqrt(3.0); + return { + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp1, {-gauss, -gauss}, + seed), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp2, {gauss, -gauss}, + seed + 30.0), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp3, {gauss, gauss}, + seed + 60.0), + MakeShellRow(fesa::ShellMidsurfaceLocation::kGp4, {-gauss, gauss}, + seed + 90.0)}; +} + +fesa::AcceptedFrameState MakeFrame(const fesa::NonlinearTrialState& committed, + const std::uint32_t frame_index, + const std::uint32_t increment_index, + const double load_factor) { + fesa::AcceptedFrameState frame{ + frame_index, + increment_index, + load_factor, + 2U, + load_factor == 1.0, + committed.nodal_internal_order, + committed.nodal_source_ids, + committed.generalized_coordinates, + committed.displacement, + committed.rotation_vector, + committed.nodal_triad, + committed.nodal_director, + committed.internal_force, + committed.external_force, + committed.residual, + committed.reaction, + MakeShellRows(100.0 * load_factor), + 20.0 * load_factor, + {load_factor, 2.0 * load_factor, 3.0 * load_factor, + 4.0 * load_factor, 5.0 * load_factor, 6.0 * load_factor}}; + for (std::size_t node = 0U; node < frame.nodal_internal_order.size(); ++node) { + const std::size_t offset = 6U * node; + frame.displacement[offset] = load_factor * static_cast(node + 1U); + frame.displacement[offset + 1U] = -frame.displacement[offset]; + frame.displacement[offset + 2U] = 0.5 * frame.displacement[offset]; + frame.rotation_vector[offset + 5U] = 0.1 * load_factor; + for (std::size_t component = 0U; component < 6U; ++component) { + frame.generalized_coordinates[offset + component] = + component < 3U ? frame.displacement[offset + component] + : frame.rotation_vector[offset + component]; + frame.internal_force[offset + component] = + 10.0 * static_cast(component + 1U); + frame.external_force[offset + component] = 0.0; + frame.residual[offset + component] = frame.internal_force[offset + component]; + frame.reaction[offset + component] = frame.residual[offset + component]; + } + } + return frame; +} + +Fixture MakeFixture(const std::filesystem::path& source) { + auto domain_result = fesa::Domain::Create(MakeDefinition(source)); + if (!domain_result.HasValue()) { + throw std::runtime_error{"Unable to construct nonlinear HDF5 Domain."}; + } + auto domain = std::make_unique(std::move(domain_result.Value())); + auto model_result = fesa::AnalysisModel::Create(*domain); + if (!model_result.HasValue()) { + throw std::runtime_error{"Unable to construct nonlinear HDF5 model."}; + } + auto dofs_result = fesa::DofManager::Create(model_result.Value()); + if (!dofs_result.HasValue()) { + throw std::runtime_error{"Unable to construct nonlinear HDF5 DOFs."}; + } + auto dofs = std::make_unique(std::move(dofs_result.Value())); + auto state_result = + fesa::NonlinearAnalysisState::Create(*domain, *dofs, MakeBaseline(*domain)); + if (!state_result.HasValue()) { + throw std::runtime_error{"Unable to construct nonlinear HDF5 state."}; + } + fesa::NonlinearAnalysisState state = std::move(state_result.Value()); + if (!state.CommitAcceptedFrame( + MakeFrame(state.CommittedState(), 0U, 1U, 0.5)) + .IsOk() || + !state.CommitAcceptedFrame( + MakeFrame(state.CommittedState(), 1U, 2U, 1.0)) + .IsOk()) { + throw std::runtime_error{"Unable to commit nonlinear HDF5 test frames."}; + } + return {std::move(domain), std::move(dofs), std::move(state)}; +} + +Hdf5Handle OpenFile(const std::filesystem::path& path) { + return {H5Fopen(path.string().c_str(), H5F_ACC_RDONLY, H5P_DEFAULT), H5Fclose}; +} + +Hdf5Handle OpenDataset(const hid_t file, const std::string& path) { + return {H5Dopen2(file, path.c_str(), H5P_DEFAULT), H5Dclose}; +} + +std::vector DatasetDimensions(const hid_t file, + const std::string& path) { + const auto dataset = OpenDataset(file, path); + Hdf5Handle space{H5Dget_space(dataset.Get()), H5Sclose}; + const int rank = H5Sget_simple_extent_ndims(space.Get()); + std::vector dimensions(static_cast(rank)); + if (rank > 0) { + EXPECT_GE(H5Sget_simple_extent_dims(space.Get(), dimensions.data(), nullptr), + 0); + } + return dimensions; +} + +std::string ReadStringAttribute(const hid_t object, const char* name) { + Hdf5Handle attribute{H5Aopen(object, name, H5P_DEFAULT), H5Aclose}; + Hdf5Handle type{H5Aget_type(attribute.Get()), H5Tclose}; + char* raw = nullptr; + EXPECT_GE(H5Aread(attribute.Get(), type.Get(), &raw), 0); + const std::string value = raw == nullptr ? std::string{} : std::string{raw}; + if (raw != nullptr) { + EXPECT_GE(H5free_memory(raw), 0); + } + return value; +} + +std::uint64_t ReadUint64Attribute(const hid_t object, const char* name) { + Hdf5Handle attribute{H5Aopen(object, name, H5P_DEFAULT), H5Aclose}; + std::uint64_t value = 0U; + EXPECT_GE(H5Aread(attribute.Get(), H5T_NATIVE_UINT64, &value), 0); + return value; +} + +double ReadDoubleAttribute(const hid_t object, const char* name) { + Hdf5Handle attribute{H5Aopen(object, name, H5P_DEFAULT), H5Aclose}; + double value = 0.0; + EXPECT_GE(H5Aread(attribute.Get(), H5T_NATIVE_DOUBLE, &value), 0); + return value; +} + +std::vector ReadDoubleDataset(const hid_t file, + const std::string& path) { + const auto dimensions = DatasetDimensions(file, path); + std::size_t count = 1U; + for (const hsize_t dimension : dimensions) { + count *= static_cast(dimension); + } + std::vector values(count); + const auto dataset = OpenDataset(file, path); + if (!values.empty()) { + EXPECT_GE(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()), + 0); + } + return values; +} + +Hdf5Handle AcceptedFrameMemoryType() { + Hdf5Handle type{H5Tcreate(H5T_COMPOUND, sizeof(AcceptedFrameRow)), H5Tclose}; + EXPECT_GE(H5Tinsert(type.Get(), "frame_index", + HOFFSET(AcceptedFrameRow, frame_index), + H5T_NATIVE_UINT64), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "increment_index", + HOFFSET(AcceptedFrameRow, increment_index), + H5T_NATIVE_UINT64), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "load_factor", + HOFFSET(AcceptedFrameRow, load_factor), H5T_NATIVE_DOUBLE), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "iteration_count", + HOFFSET(AcceptedFrameRow, iteration_count), + H5T_NATIVE_UINT64), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "is_factor_one", + HOFFSET(AcceptedFrameRow, is_factor_one), + H5T_NATIVE_UINT8), + 0); + return type; +} + +std::vector ReadAcceptedFrames(const hid_t file) { + const auto dataset = + OpenDataset(file, "/steps/Step-1/accepted_frames"); + const auto dimensions = DatasetDimensions(file, "/steps/Step-1/accepted_frames"); + std::vector rows(static_cast(dimensions[0U])); + auto type = AcceptedFrameMemoryType(); + EXPECT_GE(H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, + rows.data()), + 0); + return rows; +} + +Hdf5Handle DiagnosticMemoryType() { + Hdf5Handle string_type{H5Tcopy(H5T_C_S1), H5Tclose}; + EXPECT_GE(H5Tset_size(string_type.Get(), H5T_VARIABLE), 0); + EXPECT_GE(H5Tset_cset(string_type.Get(), H5T_CSET_UTF8), 0); + Hdf5Handle type{H5Tcreate(H5T_COMPOUND, sizeof(DiagnosticRow)), H5Tclose}; + EXPECT_GE(H5Tinsert(type.Get(), "severity", HOFFSET(DiagnosticRow, severity), + string_type.Get()), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "code", HOFFSET(DiagnosticRow, code), + string_type.Get()), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "file", HOFFSET(DiagnosticRow, file), + string_type.Get()), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "line", HOFFSET(DiagnosticRow, line), + H5T_NATIVE_UINT64), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "keyword", HOFFSET(DiagnosticRow, keyword), + string_type.Get()), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "entity_identity", + HOFFSET(DiagnosticRow, entity_identity), string_type.Get()), + 0); + EXPECT_GE(H5Tinsert(type.Get(), "message", HOFFSET(DiagnosticRow, message), + string_type.Get()), + 0); + return type; +} + +std::vector ReadDiagnostics(const hid_t file) { + const auto dataset = OpenDataset(file, "/diagnostics"); + const auto dimensions = DatasetDimensions(file, "/diagnostics"); + std::vector rows(static_cast(dimensions[0U])); + auto type = DiagnosticMemoryType(); + EXPECT_GE(H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, + rows.data()), + 0); + return rows; +} + +void ReclaimDiagnostics(const std::vector& rows) { + for (const auto& row : rows) { + for (char* value : {row.severity, row.code, row.file, row.keyword, + row.entity_identity, row.message}) { + if (value != nullptr) { + EXPECT_GE(H5free_memory(value), 0); + } + } + } +} + +std::vector ReadBytes(const std::filesystem::path& path) { + std::ifstream input{path, std::ios::binary}; + return {std::istreambuf_iterator{input}, + std::istreambuf_iterator{}}; +} + +void WriteBytes(const std::filesystem::path& path, + const std::vector& bytes) { + std::ofstream output{path, std::ios::binary | std::ios::trunc}; + output.write(bytes.data(), static_cast(bytes.size())); + if (!output) { + throw std::runtime_error{"Unable to write nonlinear HDF5 test bytes."}; + } +} + +} // namespace + +// NSNR-HDF5-001 through NSNR-HDF5-006, NSNR-HDF5-008 through NSNR-HDF5-010. +TEST(NonlinearHdf5ResultsWriter, + WritesSchemaV1ModelAndCommittedAcceptedFramesOnly) { + TempDirectory directory{"schema"}; + auto fixture = MakeFixture(directory.Path() / "model.inp"); + const auto output = directory.Path() / "model_results.h5"; + + fesa::NonlinearHdf5ResultsWriter writer; + const auto status = writer.Write(output, *fixture.domain, fixture.state, {}); + ASSERT_TRUE(status.IsOk()) << status.Diagnostics().at(0U).message; + + const auto file = OpenFile(output); + ASSERT_GE(file.Get(), 0); + Hdf5Handle metadata{H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT), H5Gclose}; + ASSERT_GE(metadata.Get(), 0); + EXPECT_EQ(ReadUint64Attribute(metadata.Get(), "schema_version"), 1U); + EXPECT_EQ(ReadStringAttribute(metadata.Get(), "feature_id"), + "nonlinear-static-newton-raphson"); + EXPECT_EQ(ReadStringAttribute(metadata.Get(), "analysis_procedure"), + "nonlinear-static-full-newton"); + EXPECT_EQ(ReadStringAttribute(metadata.Get(), "internal_formulation"), + "FESA-MITC4-total-lagrangian"); + EXPECT_EQ(ReadStringAttribute(metadata.Get(), "integration_rule"), + "2x2x2-gauss; mitc4-edge-midpoint-shear"); + EXPECT_EQ(ReadUint64Attribute(metadata.Get(), "factor_zero_is_frame"), 0U); + EXPECT_DOUBLE_EQ(ReadDoubleAttribute(metadata.Get(), "factor_zero_load_factor"), + 0.0); + + for (const char* path : + {"/model/nodes", "/model/elements", "/model/shell/materials", + "/model/shell/sections", "/model/shell/nodal_director", + "/model/shell/nodal_frame", "/model/nodal_constraint_mask", + "/model/prescribed_displacement_start", + "/model/prescribed_displacement_target", + "/model/shell/midsurface_locations", "/model/shell/section_positions"}) { + EXPECT_GT(H5Lexists(file.Get(), path, H5P_DEFAULT), 0) << path; + } + EXPECT_EQ(DatasetDimensions(file.Get(), "/steps/Step-1/accepted_frames"), + std::vector({2U})); + const auto frames = ReadAcceptedFrames(file.Get()); + ASSERT_EQ(frames.size(), 2U); + EXPECT_EQ(frames[0U].frame_index, 0U); + EXPECT_EQ(frames[0U].increment_index, 1U); + EXPECT_DOUBLE_EQ(frames[0U].load_factor, 0.5); + EXPECT_EQ(frames[0U].is_factor_one, 0U); + EXPECT_EQ(frames[1U].frame_index, 1U); + EXPECT_EQ(frames[1U].increment_index, 2U); + EXPECT_DOUBLE_EQ(frames[1U].load_factor, 1.0); + EXPECT_EQ(frames[1U].is_factor_one, 1U); + EXPECT_EQ(H5Lexists(file.Get(), "/steps/Step-1/frames/2", H5P_DEFAULT), 0); + EXPECT_EQ(H5Lexists(file.Get(), "/steps/Step-1/trial_history", H5P_DEFAULT), + 0); + + const std::string root = "/steps/Step-1/frames/1"; + for (const std::string& suffix : + {"/nodal/displacement", "/nodal/triad", "/nodal/director", + "/nodal/generalized_internal_force", "/nodal/generalized_external_force", + "/nodal/generalized_residual", "/nodal/reaction", + "/element/shell/local_frame", "/element/shell/generalized_strain", + "/element/shell/section_resultant", "/element/shell/stress", + "/global/energy", "/global/equilibrium"}) { + EXPECT_GT(H5Lexists(file.Get(), (root + suffix).c_str(), H5P_DEFAULT), 0) + << suffix; + } + EXPECT_EQ(DatasetDimensions(file.Get(), root + "/nodal/displacement"), + std::vector({4U, 6U})); + EXPECT_EQ(DatasetDimensions(file.Get(), root + "/nodal/triad"), + std::vector({4U, 3U, 3U})); + EXPECT_EQ(DatasetDimensions(file.Get(), root + "/element/shell/local_frame"), + std::vector({1U, 4U, 3U, 3U})); + EXPECT_EQ(DatasetDimensions(file.Get(), root + "/element/shell/stress"), + std::vector({1U, 4U, 3U, 3U})); + const auto displacement = ReadDoubleDataset(file.Get(), root + "/nodal/displacement"); + ASSERT_EQ(displacement.size(), 24U); + EXPECT_DOUBLE_EQ(displacement[0U], 1.0); + EXPECT_DOUBLE_EQ(displacement[1U], -1.0); + EXPECT_DOUBLE_EQ(displacement[2U], 0.5); + EXPECT_DOUBLE_EQ(displacement[5U], 0.1); +} + +// NSNR-HDF5-007. +TEST(NonlinearHdf5ResultsWriter, ProjectsRotationalReactionToSpatialMoment) { + TempDirectory directory{"reaction"}; + auto fixture = MakeFixture(directory.Path() / "reaction.inp"); + const auto output = directory.Path() / "reaction_results.h5"; + + fesa::NonlinearHdf5ResultsWriter writer; + ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()); + + const auto file = OpenFile(output); + const auto reaction = ReadDoubleDataset( + file.Get(), "/steps/Step-1/frames/1/nodal/reaction"); + ASSERT_EQ(reaction.size(), 24U); + const double theta = 0.1; + const double quadratic = + (1.0 - 0.5 * theta / std::tan(0.5 * theta)) / (theta * theta); + EXPECT_NEAR(reaction[3U], + (1.0 - quadratic * theta * theta) * 40.0 - + 0.5 * theta * 50.0, + 1.0e-12); + EXPECT_NEAR(reaction[4U], + 0.5 * theta * 40.0 + + (1.0 - quadratic * theta * theta) * 50.0, + 1.0e-12); + EXPECT_NEAR(reaction[5U], 60.0, 1.0e-12); + EXPECT_GT(quadratic, 0.0); +} + +// NSNR-HDF5-012 and NSNR-HDF5-013. +TEST(NonlinearHdf5ResultsWriter, StoresSortedDiagnosticsThroughBackendNeutralBoundary) { + static_assert(std::is_base_of_v); + TempDirectory directory{"diagnostics"}; + auto fixture = MakeFixture(directory.Path() / "diagnostics.inp"); + const std::vector diagnostics{ + {fesa::Severity::kWarning, + "later", + {fixture.domain->SourcePath(), 20U}, + "*OUTPUT", + "", + "Later warning."}, + {fesa::Severity::kWarning, + "earlier", + {fixture.domain->SourcePath(), 10U}, + "*PREPRINT", + "", + "Earlier warning."}}; + const auto output = directory.Path() / "diagnostics_results.h5"; + + fesa::NonlinearHdf5ResultsWriter writer; + ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, diagnostics) + .IsOk()); + const auto file = OpenFile(output); + const auto rows = ReadDiagnostics(file.Get()); + ASSERT_EQ(rows.size(), 2U); + EXPECT_STREQ(rows[0U].code, "earlier"); + EXPECT_EQ(rows[0U].line, 10U); + EXPECT_STREQ(rows[1U].code, "later"); + EXPECT_EQ(rows[1U].line, 20U); + ReclaimDiagnostics(rows); +} + +// NSNR-HDF5-011. +TEST(NonlinearHdf5ResultsWriter, CandidateFinalizationFailurePreservesPriorFinal) { + TempDirectory directory{"atomic"}; + auto fixture = MakeFixture(directory.Path() / "atomic.inp"); + const auto output = directory.Path() / "atomic_results.h5"; + const std::vector sentinel{'p', 'r', 'i', 'o', 'r'}; + WriteBytes(output, sentinel); + WinHandle lock{CreateFileW(output.c_str(), GENERIC_READ, + FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, + OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, nullptr)}; + ASSERT_NE(lock.Get(), INVALID_HANDLE_VALUE); + + fesa::NonlinearHdf5ResultsWriter writer; + const auto status = writer.Write(output, *fixture.domain, fixture.state, {}); + + ASSERT_FALSE(status.IsOk()); + EXPECT_EQ(status.Category(), fesa::FailureCategory::kOutput); + ASSERT_EQ(status.Diagnostics().size(), 1U); + EXPECT_EQ(status.Diagnostics()[0U].code, "hdf5-finalization-failure"); + EXPECT_EQ(ReadBytes(output), sentinel); +} From 3a443e08af9560788db3a0e3aa7367a88aebdc49 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 15:19:07 +0900 Subject: [PATCH 20/32] chore(nonlinear-static-newton-raphson): step 9 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 77cc5c2..dc2b04f 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -77,7 +77,10 @@ { "step": 9, "name": "nonlinear-hdf5-schema-v1-writer", - "status": "pending" + "status": "completed", + "summary": "Added atomic schema-v1 nonlinear HDF5 accepted-frame output with deterministic diagnostics and regression coverage.", + "started_at": "2026-08-24T14:52:08+0900", + "completed_at": "2026-08-24T15:19:06+0900" }, { "step": 10, From f0f38b98039727948655e9eb149b2eb9e6d38d52 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 15:49:08 +0900 Subject: [PATCH 21/32] feat(nonlinear-static-newton-raphson): step 10 - prepared-analysis-flow-and-full-procedure --- .../fesa/analysis/linear_static_analysis.h | 46 +- .../fesa/analysis/linear_static_procedure.h | 31 + .../analysis/nonlinear_static_procedure.h | 33 + include/fesa/analysis/prepared_analysis.h | 71 ++ src/fesa/CMakeLists.txt | 3 + src/fesa/analysis/linear_static_analysis.cpp | 183 +--- src/fesa/analysis/linear_static_procedure.cpp | 105 +++ .../analysis/nonlinear_static_procedure.cpp | 807 ++++++++++++++++++ src/fesa/analysis/prepared_analysis.cpp | 79 ++ src/fesa/app/fesa_application.cpp | 63 +- tests/CMakeLists.txt | 1 + .../analysis/linear_static_analysis_test.cpp | 1 + .../nonlinear_static_procedure_test.cpp | 157 ++++ .../integration/app/fesa_application_test.cpp | 14 + .../b33_reference_comparison_test.cpp | 1 + .../reference/mitc4_reference_cases_test.cpp | 1 + 16 files changed, 1373 insertions(+), 223 deletions(-) create mode 100644 include/fesa/analysis/linear_static_procedure.h create mode 100644 include/fesa/analysis/nonlinear_static_procedure.h create mode 100644 include/fesa/analysis/prepared_analysis.h create mode 100644 src/fesa/analysis/linear_static_procedure.cpp create mode 100644 src/fesa/analysis/nonlinear_static_procedure.cpp create mode 100644 src/fesa/analysis/prepared_analysis.cpp create mode 100644 tests/integration/analysis/nonlinear_static_procedure_test.cpp diff --git a/include/fesa/analysis/linear_static_analysis.h b/include/fesa/analysis/linear_static_analysis.h index 8911bde..f0e7595 100644 --- a/include/fesa/analysis/linear_static_analysis.h +++ b/include/fesa/analysis/linear_static_analysis.h @@ -1,18 +1,7 @@ #ifndef FESA_ANALYSIS_LINEAR_STATIC_ANALYSIS_H_ #define FESA_ANALYSIS_LINEAR_STATIC_ANALYSIS_H_ -#include -#include - #include "fesa/analysis/analysis.h" -#include "fesa/analysis/analysis_model.h" -#include "fesa/analysis/analysis_state.h" -#include "fesa/constraints/essential_constraint_policy.h" -#include "fesa/elements/element.h" -#include "fesa/fem/dof_manager.h" -#include "fesa/math/sparse_matrix.h" -#include "fesa/math/vector.h" -#include "fesa/model/domain.h" namespace fesa { @@ -20,9 +9,8 @@ class LinearSolver; class ParallelFor; class ResultsWriter; -/// @brief Orchestrates the single-step linear-static procedure. -/// @note Factorization, substitution, recovery, and writing remain separately -/// observable through injected backend boundaries. +/// @brief Retains the legacy Analysis facade for linear-static callers. +/// @note Numerical stages are owned by LinearStaticProcedureExecutor. class LinearStaticAnalysis final : public Analysis { public: /// @brief Creates a procedure using non-owned backend adapters. @@ -31,42 +19,14 @@ class LinearStaticAnalysis final : public Analysis { LinearSolver& linear_solver, ResultsWriter& results_writer); - /// @brief Runs the approved eight-stage linear-static lifecycle. + /// @brief Prepares, executes, and writes a linear-static analysis. /// @return The first stage failure or successful result finalization. Status Run(const AnalysisRequest& request) override; private: - /// @brief Initializes owned input and Domain state for a run candidate. - Status InitializeCandidate(const AnalysisRequest& request); - /// @brief Builds the non-owning active-model view. - Status BuildAnalysisModel(); - /// @brief Creates runtime elements, stable DOFs, and the sparse pattern. - Status BuildDofMapAndSparsePattern(); - /// @brief Assembles full stiffness and stable constraint partitions. - Status AssembleAndPartitionStiffness(); - /// @brief Factorizes Kff before any load assembly. - Status FactorizeFreeSystem(); - /// @brief Assembles loads and forms Ff-Kfc*dc without solving. - Status AssembleLoadsAndEffectiveRhs(); - /// @brief Substitutes the retained factorization and reconstructs full d. - Status SubstituteAndReconstruct(); - /// @brief Recovers a complete candidate before writing authoritative output. - Status RecoverAndWrite(); - const ParallelFor& parallel_for_; LinearSolver& linear_solver_; ResultsWriter& results_writer_; - AnalysisRequest request_; - std::unique_ptr domain_; - std::unique_ptr model_; - std::vector> elements_; - ElementView element_view_; - std::unique_ptr dofs_; - std::unique_ptr state_; - std::unique_ptr full_stiffness_; - std::unique_ptr partitioned_stiffness_; - std::unique_ptr effective_rhs_; - std::vector diagnostics_; }; } // namespace fesa diff --git a/include/fesa/analysis/linear_static_procedure.h b/include/fesa/analysis/linear_static_procedure.h new file mode 100644 index 0000000..fe02c04 --- /dev/null +++ b/include/fesa/analysis/linear_static_procedure.h @@ -0,0 +1,31 @@ +#ifndef FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_ +#define FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_ + +#include "fesa/analysis/prepared_analysis.h" + +namespace fesa { + +class LinearSolver; +class ParallelFor; + +/// @brief Executes the approved linear-static procedure on a prepared Domain. +class LinearStaticProcedureExecutor { + public: + /// @brief Creates a procedure executor with caller-owned backend adapters. + /// @param parallel_for Deterministic element-local execution adapter. + /// @param linear_solver Factorization and substitution adapter. + LinearStaticProcedureExecutor(const ParallelFor& parallel_for, + LinearSolver& linear_solver); + + /// @brief Computes linear-static state without writing HDF5 output. + /// @return A validated state and sorted diagnostics, or a procedure failure. + Result Execute(const Domain& domain) const; + + private: + const ParallelFor& parallel_for_; + LinearSolver& linear_solver_; +}; + +} // namespace fesa + +#endif // FESA_ANALYSIS_LINEAR_STATIC_PROCEDURE_H_ diff --git a/include/fesa/analysis/nonlinear_static_procedure.h b/include/fesa/analysis/nonlinear_static_procedure.h new file mode 100644 index 0000000..ba12a38 --- /dev/null +++ b/include/fesa/analysis/nonlinear_static_procedure.h @@ -0,0 +1,33 @@ +#ifndef FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_ +#define FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_ + +#include "fesa/analysis/prepared_analysis.h" + +namespace fesa { + +class NewtonIterationLogWriter; +class ParallelFor; +class TangentSolver; + +/// @brief Executes fixed-load-factor full-Newton nonlinear static analysis. +class NonlinearStaticProcedureExecutor { + public: + /// @brief Creates a procedure executor with caller-owned backend adapters. + /// @param parallel_for Deterministic element-local execution adapter. + /// @param tangent_solver Fresh unsymmetric tangent solve adapter. + NonlinearStaticProcedureExecutor(const ParallelFor& parallel_for, + TangentSolver& tangent_solver); + + /// @brief Computes accepted nonlinear frames and appends iteration records. + /// @return A validated nonlinear state without writing HDF5 output. + Result Execute( + const Domain& domain, NewtonIterationLogWriter& log) const; + + private: + const ParallelFor& parallel_for_; + TangentSolver& tangent_solver_; +}; + +} // namespace fesa + +#endif // FESA_ANALYSIS_NONLINEAR_STATIC_PROCEDURE_H_ diff --git a/include/fesa/analysis/prepared_analysis.h b/include/fesa/analysis/prepared_analysis.h new file mode 100644 index 0000000..22d7b4b --- /dev/null +++ b/include/fesa/analysis/prepared_analysis.h @@ -0,0 +1,71 @@ +#ifndef FESA_ANALYSIS_PREPARED_ANALYSIS_H_ +#define FESA_ANALYSIS_PREPARED_ANALYSIS_H_ + +#include +#include +#include + +#include "fesa/analysis/analysis_state.h" +#include "fesa/analysis/nonlinear_analysis_state.h" +#include "fesa/core/diagnostic.h" +#include "fesa/core/status.h" +#include "fesa/model/domain.h" + +namespace fesa { + +class LinearStaticProcedureExecutor; +class NewtonIterationLogWriter; +class NonlinearResultsWriter; +class NonlinearStaticProcedureExecutor; +class ResultsWriter; +struct DerivedOutputPaths; + +/// @brief Owns one parsed and semantically mapped analysis input. +struct PreparedAnalysisInput { + Domain domain; + std::vector diagnostics; +}; + +/// @brief Parses and maps an input file exactly once for procedure execution. +/// @param input_path Source Abaqus input path. +/// @return A movable Domain and sorted mapping diagnostics, or an input +/// failure. +Result PrepareAnalysisInput( + const std::filesystem::path& input_path); + +/// @brief Stores a completed linear-static calculation before result writing. +struct LinearStaticExecutionResult { + AnalysisState state; + std::vector diagnostics; +}; + +/// @brief Stores a completed nonlinear-static calculation before result +/// writing. +struct NonlinearStaticExecutionResult { + NonlinearAnalysisState state; + std::vector diagnostics; +}; + +using PreparedAnalysisOutcome = + std::variant; + +/// @brief Selects the approved procedure from a prepared Domain. +/// @pre The executors and log outlive this call. +/// @return A validated procedure outcome without opening a result file. +Result ExecutePreparedAnalysis( + const Domain& domain, LinearStaticProcedureExecutor& linear_executor, + NonlinearStaticProcedureExecutor& nonlinear_executor, + NewtonIterationLogWriter& log); + +/// @brief Writes an already computed outcome to its authoritative result file. +/// @pre The Newton log has closed successfully before this function is called. +/// @return Success after the selected writer atomically finalizes its result. +Status FinalizePreparedAnalysisResult( + const DerivedOutputPaths& paths, const Domain& domain, + const PreparedAnalysisOutcome& outcome, + const std::vector& diagnostics, ResultsWriter& linear_writer, + NonlinearResultsWriter& nonlinear_writer); + +} // namespace fesa + +#endif // FESA_ANALYSIS_PREPARED_ANALYSIS_H_ diff --git a/src/fesa/CMakeLists.txt b/src/fesa/CMakeLists.txt index 7a1afe6..5de593c 100644 --- a/src/fesa/CMakeLists.txt +++ b/src/fesa/CMakeLists.txt @@ -4,9 +4,12 @@ add_library( analysis/analysis_model.cpp analysis/analysis_state.cpp analysis/linear_static_analysis.cpp + analysis/linear_static_procedure.cpp analysis/newton_iteration_log.cpp analysis/nonlinear_analysis_state.cpp analysis/nonlinear_static_control.cpp + analysis/nonlinear_static_procedure.cpp + analysis/prepared_analysis.cpp app/fesa_application.cpp app/output_paths.cpp assembly/load_assembler.cpp diff --git a/src/fesa/analysis/linear_static_analysis.cpp b/src/fesa/analysis/linear_static_analysis.cpp index 80a6524..8377207 100644 --- a/src/fesa/analysis/linear_static_analysis.cpp +++ b/src/fesa/analysis/linear_static_analysis.cpp @@ -2,50 +2,12 @@ #include -#include "fesa/assembly/load_assembler.h" -#include "fesa/assembly/parallel_for.h" -#include "fesa/assembly/sparse_assembler.h" -#include "fesa/elements/element_factory.h" -#include "fesa/io/abaqus/domain_mapper.h" -#include "fesa/io/abaqus/input_reader.h" -#include "fesa/results/result_recovery.h" +#include "fesa/analysis/linear_static_procedure.h" +#include "fesa/analysis/prepared_analysis.h" #include "fesa/results/results_writer.h" -#include "fesa/solvers/linear/linear_solver.h" namespace fesa { -Status LinearStaticAnalysis::Run(const AnalysisRequest& request) { - Status status = InitializeCandidate(request); - if (!status.IsOk()) { - return status; - } - status = BuildAnalysisModel(); - if (!status.IsOk()) { - return status; - } - status = BuildDofMapAndSparsePattern(); - if (!status.IsOk()) { - return status; - } - status = AssembleAndPartitionStiffness(); - if (!status.IsOk()) { - return status; - } - status = FactorizeFreeSystem(); - if (!status.IsOk()) { - return status; - } - status = AssembleLoadsAndEffectiveRhs(); - if (!status.IsOk()) { - return status; - } - status = SubstituteAndReconstruct(); - if (!status.IsOk()) { - return status; - } - return RecoverAndWrite(); -} - LinearStaticAnalysis::LinearStaticAnalysis(const ParallelFor& parallel_for, LinearSolver& linear_solver, ResultsWriter& results_writer) @@ -53,138 +15,23 @@ LinearStaticAnalysis::LinearStaticAnalysis(const ParallelFor& parallel_for, linear_solver_{linear_solver}, results_writer_{results_writer} {} -Status LinearStaticAnalysis::InitializeCandidate( - const AnalysisRequest& request) { - // Clear dependent objects in reverse ownership order so a reused analysis - // never exposes a view into a Domain from an earlier run. - effective_rhs_.reset(); - partitioned_stiffness_.reset(); - full_stiffness_.reset(); - state_.reset(); - dofs_.reset(); - element_view_.clear(); - elements_.clear(); - model_.reset(); - domain_.reset(); - diagnostics_.clear(); - request_ = request; - - const auto parsed = AbaqusInputReader{}.Read(request_.input_path); - if (!parsed.HasValue()) { - return parsed.GetStatus(); - } - auto domain = AbaqusDomainMapper{}.Map(parsed.Value()); - if (!domain.HasValue()) { - return domain.GetStatus(); +Status LinearStaticAnalysis::Run(const AnalysisRequest& request) { + Result prepared = + PrepareAnalysisInput(request.input_path); + if (!prepared.HasValue()) { + return prepared.GetStatus(); } - domain_ = std::make_unique(std::move(domain.Value())); - diagnostics_ = domain_->Warnings(); - SortDiagnostics(diagnostics_); - return Status::Ok(); -} - -Status LinearStaticAnalysis::BuildAnalysisModel() { - auto model = AnalysisModel::Create(*domain_); - if (!model.HasValue()) { - return model.GetStatus(); - } - model_ = std::make_unique(std::move(model.Value())); - return Status::Ok(); -} - -Status LinearStaticAnalysis::BuildDofMapAndSparsePattern() { - std::vector> elements; - ElementView element_view; - elements.reserve(model_->ActiveElements().size()); - element_view.reserve(model_->ActiveElements().size()); - const ElementFactory factory; - for (const EntityIndex element_index : model_->ActiveElements()) { - auto element = factory.Create(domain_->Elements()[element_index], *domain_); - if (!element.HasValue()) { - return element.GetStatus(); - } - element_view.emplace_back(*element.Value()); - elements.push_back(std::move(element.Value())); + LinearStaticProcedureExecutor executor(parallel_for_, linear_solver_); + Result execution = + executor.Execute(prepared.Value().domain); + if (!execution.HasValue()) { + return execution.GetStatus(); } - DofManager dofs; - const Status dof_status = dofs.Build(*model_, element_view); - if (!dof_status.IsOk()) { - return dof_status; - } - - elements_ = std::move(elements); - element_view_ = std::move(element_view); - dofs_ = std::make_unique(std::move(dofs)); - state_ = std::make_unique( - AnalysisState::Create(*dofs_, {"Step-1", 0U})); - return Status::Ok(); -} - -Status LinearStaticAnalysis::AssembleAndPartitionStiffness() { - auto stiffness = - SparseAssembler::Assemble(element_view_, *dofs_, parallel_for_); - if (!stiffness.HasValue()) { - return stiffness.GetStatus(); - } - full_stiffness_ = - std::make_unique(std::move(stiffness.Value())); - - auto partitioned = - EssentialConstraintPolicy{}.Partition(*full_stiffness_, *dofs_); - if (!partitioned.HasValue()) { - return partitioned.GetStatus(); - } - partitioned_stiffness_ = - std::make_unique(std::move(partitioned.Value())); - return Status::Ok(); -} - -Status LinearStaticAnalysis::FactorizeFreeSystem() { - // This call intentionally precedes all load assembly in Run. - return linear_solver_.Factorize(partitioned_stiffness_->k_ff); -} - -Status LinearStaticAnalysis::AssembleLoadsAndEffectiveRhs() { - auto full_load = LoadAssembler::AssembleFullNodalLoad(*model_, *dofs_); - if (!full_load.HasValue()) { - return full_load.GetStatus(); - } - state_->ExternalForce() = std::move(full_load.Value()); - - auto rhs = LoadAssembler::EffectiveFreeRhs(state_->ExternalForce(), - partitioned_stiffness_->k_fc, - dofs_->PrescribedValues(), *dofs_); - if (!rhs.HasValue()) { - return rhs.GetStatus(); - } - effective_rhs_ = std::make_unique(std::move(rhs.Value())); - return Status::Ok(); -} - -Status LinearStaticAnalysis::SubstituteAndReconstruct() { - Vector free_displacement{dofs_->FreeDofCount()}; - const Status solve_status = - linear_solver_.Solve(*effective_rhs_, free_displacement); - if (!solve_status.IsOk()) { - return solve_status; - } - - state_->Displacement() = EssentialConstraintPolicy{}.ReconstructFull( - free_displacement, dofs_->PrescribedValues(), *dofs_); - return Status::Ok(); -} - -Status LinearStaticAnalysis::RecoverAndWrite() { - const Status recovery_status = ResultRecovery::Recover( - *model_, element_view_, *dofs_, *full_stiffness_, state_->Displacement(), - state_->ExternalForce(), *state_); - if (!recovery_status.IsOk()) { - return recovery_status; - } - return results_writer_.Write(request_.output_path, *domain_, *state_, - diagnostics_); + return results_writer_.Write(request.output_path, prepared.Value().domain, + execution.Value().state, + execution.Value().diagnostics); } } // namespace fesa diff --git a/src/fesa/analysis/linear_static_procedure.cpp b/src/fesa/analysis/linear_static_procedure.cpp new file mode 100644 index 0000000..cbe74df --- /dev/null +++ b/src/fesa/analysis/linear_static_procedure.cpp @@ -0,0 +1,105 @@ +#include "fesa/analysis/linear_static_procedure.h" + +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/assembly/load_assembler.h" +#include "fesa/assembly/parallel_for.h" +#include "fesa/assembly/sparse_assembler.h" +#include "fesa/constraints/essential_constraint_policy.h" +#include "fesa/elements/element.h" +#include "fesa/elements/element_factory.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/results/result_recovery.h" +#include "fesa/solvers/linear/linear_solver.h" + +namespace fesa { + +LinearStaticProcedureExecutor::LinearStaticProcedureExecutor( + const ParallelFor& parallel_for, LinearSolver& linear_solver) + : parallel_for_(parallel_for), linear_solver_(linear_solver) {} + +Result LinearStaticProcedureExecutor::Execute( + const Domain& domain) const { + Result model = AnalysisModel::Create(domain); + if (!model.HasValue()) { + return Result::Failure(model.GetStatus()); + } + + std::vector> elements; + ElementView element_view; + elements.reserve(model.Value().ActiveElements().size()); + element_view.reserve(model.Value().ActiveElements().size()); + const ElementFactory factory; + for (const EntityIndex element_index : model.Value().ActiveElements()) { + Result> element = + factory.Create(domain.Elements()[element_index], domain); + if (!element.HasValue()) { + return Result::Failure(element.GetStatus()); + } + element_view.emplace_back(*element.Value()); + elements.push_back(std::move(element.Value())); + } + + DofManager dofs; + const Status dof_status = dofs.Build(model.Value(), element_view); + if (!dof_status.IsOk()) { + return Result::Failure(dof_status); + } + + AnalysisState state = AnalysisState::Create(dofs, {"Step-1", 0U}); + Result stiffness = + SparseAssembler::Assemble(element_view, dofs, parallel_for_); + if (!stiffness.HasValue()) { + return Result::Failure(stiffness.GetStatus()); + } + + Result partitions = + EssentialConstraintPolicy{}.Partition(stiffness.Value(), dofs); + if (!partitions.HasValue()) { + return Result::Failure(partitions.GetStatus()); + } + + const Status factorized = linear_solver_.Factorize(partitions.Value().k_ff); + if (!factorized.IsOk()) { + return Result::Failure(factorized); + } + + Result external = + LoadAssembler::AssembleFullNodalLoad(model.Value(), dofs); + if (!external.HasValue()) { + return Result::Failure(external.GetStatus()); + } + state.ExternalForce() = std::move(external.Value()); + + Result rhs = LoadAssembler::EffectiveFreeRhs( + state.ExternalForce(), partitions.Value().k_fc, dofs.PrescribedValues(), + dofs); + if (!rhs.HasValue()) { + return Result::Failure(rhs.GetStatus()); + } + + Vector free_displacement{dofs.FreeDofCount()}; + const Status solved = linear_solver_.Solve(rhs.Value(), free_displacement); + if (!solved.IsOk()) { + return Result::Failure(solved); + } + state.Displacement() = EssentialConstraintPolicy{}.ReconstructFull( + free_displacement, dofs.PrescribedValues(), dofs); + + const Status recovered = ResultRecovery::Recover( + model.Value(), element_view, dofs, stiffness.Value(), + state.Displacement(), state.ExternalForce(), state); + if (!recovered.IsOk()) { + return Result::Failure(recovered); + } + + std::vector diagnostics = domain.Warnings(); + SortDiagnostics(diagnostics); + return Result::Success( + {std::move(state), std::move(diagnostics)}); +} + +} // namespace fesa diff --git a/src/fesa/analysis/nonlinear_static_procedure.cpp b/src/fesa/analysis/nonlinear_static_procedure.cpp new file mode 100644 index 0000000..41d79b8 --- /dev/null +++ b/src/fesa/analysis/nonlinear_static_procedure.cpp @@ -0,0 +1,807 @@ +#include "fesa/analysis/nonlinear_static_procedure.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/analysis/analysis_model.h" +#include "fesa/analysis/newton_iteration_log.h" +#include "fesa/analysis/nonlinear_static_control.h" +#include "fesa/assembly/parallel_for.h" +#include "fesa/constraints/essential_constraint_policy.h" +#include "fesa/elements/finite_rotation.h" +#include "fesa/elements/mitc4_shell.h" +#include "fesa/elements/nonlinear_mitc4_shell.h" +#include "fesa/fem/dof_manager.h" +#include "fesa/math/sparse_matrix.h" +#include "fesa/properties/shell_section.h" +#include "fesa/solvers/linear/tangent_solver.h" + +namespace fesa { +namespace { + +constexpr std::size_t kDofsPerNode = 6U; +constexpr std::size_t kTranslationsPerNode = 3U; +constexpr std::size_t kShellDofCount = 24U; +constexpr std::uint32_t kMaximumNewtonIterations = 100U; + +struct RuntimeShell { + EntityIndex element_index; + std::array scatter; + NonlinearMitc4Shell element; +}; + +struct InternalAssembly { + Vector force; + SparseMatrix tangent; + std::vector shell_rows; + double physical_strain_energy; +}; + +Status ProcedureFailure(const FailureCategory category, const std::string& code, + const SourceLocation& location, + const std::string& keyword, + const std::string& identity, + const std::string& message) { + return Status::Failure(category, {{Severity::kError, code, location, keyword, + identity, message}}); +} + +std::string DiagnosticCode(const Status& status) { + if (status.Diagnostics().empty()) { + return "nonlinear-procedure-failure"; + } + return status.Diagnostics().front().code; +} + +std::string DiagnosticReason(const Status& status) { + if (status.Diagnostics().empty()) { + return "The nonlinear procedure returned no diagnostic."; + } + return status.Diagnostics().front().message; +} + +NewtonChannelDecision UnevaluatedDecision(const std::string& identity, + const NewtonChannelUnit unit) { + return {identity, + 0.0, + 0.0, + NewtonConvergenceBranch::kZeroScale, + kNewtonZeroScaleThreshold, + unit, + false}; +} + +NewtonIterationLogRecord NewLogRecord(const StepDefinition& step, + const LoadFactorIncrement& increment, + const std::uint32_t iteration) { + return {step.Name(), + increment.increment_index, + increment.load_factor, + iteration, + NewtonIterationStage::kEntered, + {false, NewtonIterationStage::kEntered, {}, {}}, + "entered", + "pending", + {}, + UnevaluatedDecision("residual_force", NewtonChannelUnit::kForce), + UnevaluatedDecision("residual_moment", + NewtonChannelUnit::kForceLength), + UnevaluatedDecision("correction_translation", + NewtonChannelUnit::kLength), + UnevaluatedDecision("correction_rotation", + NewtonChannelUnit::kDimensionless), + false}; +} + +Status WriteAndFlush(NewtonIterationLogWriter& log, + const NewtonIterationLogRecord& record) { + const Status write_status = log.Write(record); + if (!write_status.IsOk()) { + return write_status; + } + return log.Flush(); +} + +Status RecordFailure(NewtonIterationLogWriter& log, + NewtonIterationLogRecord* record, const Status& failure, + const NewtonIterationStage stage) { + record->last_completed_stage = stage; + record->failure = {true, stage, DiagnosticCode(failure), + DiagnosticReason(failure)}; + record->transition = "failed"; + record->outcome = "failed"; + record->diagnostic_code = DiagnosticCode(failure); + const Status log_status = WriteAndFlush(log, *record); + return log_status.IsOk() ? failure : log_status; +} + +Matrix InitialFrame(const ShellNodeInitialFrame& frame) { + Matrix result{3U, 3U}; + for (std::size_t row = 0U; row < kTranslationsPerNode; ++row) { + result(row, 0U) = frame.tangent_a[row]; + result(row, 1U) = frame.tangent_b[row]; + result(row, 2U) = frame.director[row]; + } + return result; +} + +Result BuildDofManager(const Domain& domain) { + Result model = AnalysisModel::Create(domain); + if (!model.HasValue()) { + return Result::Failure(model.GetStatus()); + } + return DofManager::Create(model.Value()); +} + +Result BuildBaseline(const Domain& domain) { + if (domain.ShellNodeInitialFrames().size() != domain.Nodes().size()) { + return Result::Failure(ProcedureFailure( + FailureCategory::kModel, "invalid-nonlinear-state", + {domain.SourcePath(), 0U}, + "NODE", domain.SourceContentIdentity(), + "Nonlinear analysis requires one initial shell frame per node.")); + } + + NonlinearStateBaselineInput baseline; + baseline.node_baselines.reserve(domain.Nodes().size()); + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + const ShellNodeInitialFrame& frame = domain.ShellNodeInitialFrames()[node]; + if (frame.node_index != static_cast(node)) { + return Result::Failure(ProcedureFailure( + FailureCategory::kModel, "invalid-nonlinear-state", + domain.Nodes()[node].location, "NODE", + domain.Nodes()[node].source_id.source_label_text, + "Initial shell frames must follow stable Domain node order.")); + } + baseline.node_baselines.push_back( + {static_cast(node), domain.Nodes()[node].source_id, + {frame.tangent_a, frame.tangent_b, frame.director}, frame.director}); + } + return Result::Success(std::move(baseline)); +} + +Result> BuildRuntimeShells(const Domain& domain, + const DofManager& dofs) { + std::vector shells; + shells.reserve(domain.Elements().Size()); + for (std::size_t index = 0U; index < domain.Elements().Size(); ++index) { + const auto* definition = + dynamic_cast(&domain.Elements()[index]); + if (definition == nullptr) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kModel, "unsupported-nonlinear-element", + {}, "ELEMENT", + domain.Elements()[index].SourceId().source_label_text, + "The nonlinear static procedure supports MITC4 shell elements " + "only.")); + } + if (definition->section_index >= domain.Properties().Size() || + definition->material_index >= domain.Materials().Size()) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kModel, "invalid-nonlinear-static-data", + definition->location, "ELEMENT", + definition->source_id.source_label_text, + "The nonlinear shell element property or material index is " + "invalid.")); + } + + const auto* section = + dynamic_cast( + &domain.Properties()[definition->section_index]); + const auto* material = dynamic_cast( + &domain.Materials()[definition->material_index]); + if (section == nullptr || material == nullptr) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kModel, "incompatible-nonlinear-shell-property", + definition->location, "ELEMENT", + definition->source_id.source_label_text, + "A nonlinear MITC4 shell requires a shell section and linear " + "elastic material.")); + } + + std::array nodes{}; + std::array frames{}; + for (std::size_t node = 0U; node < definition->node_indices.size(); + ++node) { + const EntityIndex node_index = definition->node_indices[node]; + if (node_index >= domain.Nodes().size() || + node_index >= domain.ShellNodeInitialFrames().size()) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kModel, "invalid-shell-director", + definition->location, "ELEMENT", + definition->source_id.source_label_text, + "A nonlinear shell node does not have a stable initial frame.")); + } + nodes[node] = &domain.Nodes()[node_index]; + frames[node] = domain.ShellNodeInitialFrames()[node_index]; + if (frames[node].node_index != node_index) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kModel, "invalid-shell-director", + definition->location, "ELEMENT", + definition->source_id.source_label_text, + "A nonlinear shell initial frame does not match its node " + "identity.")); + } + } + + Result shell = + NonlinearMitc4Shell::Create(nodes, frames, *section, *material); + if (!shell.HasValue()) { + return Result>::Failure(shell.GetStatus()); + } + const EntityIndex element_index = static_cast(index); + shells.push_back( + {element_index, dofs.ShellElementScatter(element_index), + std::move(shell.Value())}); + } + return Result>::Success(std::move(shells)); +} + +Status PopulateNodalKinematics(const Domain& domain, + NonlinearTrialState* trial) { + if (trial->generalized_coordinates.Size() != + domain.Nodes().size() * kDofsPerNode) { + return ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, + "NONLINEAR_STATIC_PROCEDURE", domain.SourceContentIdentity(), + "Nonlinear trial coordinates do not match the Domain node inventory."); + } + + trial->displacement = trial->generalized_coordinates; + trial->rotation_vector = Vector{trial->generalized_coordinates.Size()}; + trial->nodal_triad.clear(); + trial->nodal_director.clear(); + trial->nodal_triad.reserve(domain.Nodes().size()); + trial->nodal_director.reserve(domain.Nodes().size()); + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + const std::size_t first = node * kDofsPerNode; + const Vector3 phi{trial->generalized_coordinates[first + 3U], + trial->generalized_coordinates[first + 4U], + trial->generalized_coordinates[first + 5U]}; + Result rotation = MakeFiniteRotationState( + phi, InitialFrame(domain.ShellNodeInitialFrames()[node])); + if (!rotation.HasValue()) { + return rotation.GetStatus(); + } + for (std::size_t component = 0U; component < kTranslationsPerNode; + ++component) { + trial->rotation_vector[first + 3U + component] = phi[component]; + } + const Matrix& q = rotation.Value().q; + trial->nodal_triad.push_back( + {{{q(0U, 0U), q(1U, 0U), q(2U, 0U)}, + {q(0U, 1U), q(1U, 1U), q(2U, 1U)}, + {q(0U, 2U), q(1U, 2U), q(2U, 2U)}}}); + trial->nodal_director.push_back(rotation.Value().director.Components()); + } + return Status::Ok(); +} + +NonlinearMitc4TrialDofs ExtractElementTrial( + const RuntimeShell& shell, const Vector& coordinates) { + NonlinearMitc4TrialDofs trial{}; + for (std::size_t node = 0U; node < 4U; ++node) { + const std::size_t first = node * kDofsPerNode; + trial.displacement[node] = + {coordinates[shell.scatter[first]], + coordinates[shell.scatter[first + 1U]], + coordinates[shell.scatter[first + 2U]]}; + trial.rotation_vector[node] = + {coordinates[shell.scatter[first + 3U]], + coordinates[shell.scatter[first + 4U]], + coordinates[shell.scatter[first + 5U]]}; + } + return trial; +} + +bool IsFinite(const Vector& values) { + for (std::size_t index = 0U; index < values.Size(); ++index) { + if (!std::isfinite(values[index])) { + return false; + } + } + return true; +} + +bool IsFinite(const Matrix& values) { + for (std::size_t row = 0U; row < values.Rows(); ++row) { + for (std::size_t column = 0U; column < values.Columns(); ++column) { + if (!std::isfinite(values(row, column))) { + return false; + } + } + } + return true; +} + +Result AssembleInternal( + const std::vector& shells, const DofManager& dofs, + const Vector& coordinates, const ParallelFor& parallel_for) { + std::vector> local( + shells.size()); + std::vector> failures(shells.size()); + parallel_for.Execute(shells.size(), [&](const std::size_t index) { + Result result = + EvaluateInternalResidualAndTangent(shells[index].element, + ExtractElementTrial(shells[index], + coordinates)); + if (!result.HasValue()) { + failures[index] = result.GetStatus(); + return; + } + local[index] = std::move(result.Value()); + }); + + Vector force{dofs.FullDofCount()}; + std::vector contributions; + contributions.reserve(shells.size() * kShellDofCount * kShellDofCount); + std::vector rows; + rows.reserve(shells.size() * 4U); + double energy = 0.0; + for (std::size_t index = 0U; index < shells.size(); ++index) { + if (failures[index].has_value()) { + return Result::Failure(*failures[index]); + } + if (!local[index].has_value() || + !IsFinite(local[index]->internal_residual) || + !IsFinite(local[index]->internal_tangent) || + !std::isfinite(local[index]->physical_strain_energy)) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", std::to_string(index), + "A nonlinear shell internal residual or tangent is nonfinite.")); + } + for (std::size_t row = 0U; row < kShellDofCount; ++row) { + force[shells[index].scatter[row]] += local[index]->internal_residual[row]; + for (std::size_t column = 0U; column < kShellDofCount; ++column) { + contributions.push_back( + {shells[index].scatter[row], shells[index].scatter[column], + local[index]->internal_tangent(row, column), index, + row * kShellDofCount + column}); + } + } + for (const NonlinearMitc4RecoveryPoint& point : + local[index]->recovery.gauss_points) { + rows.push_back({shells[index].element_index, + point.location, + point.natural_coordinates, + {point.local_frame.e1, point.local_frame.e2, + point.local_frame.e3}, + point.generalized_strain, + point.section_resultant, + point.stress}); + } + energy += local[index]->physical_strain_energy; + } + if (!IsFinite(force) || !std::isfinite(energy)) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", {}, + "Global nonlinear internal force or energy is nonfinite.")); + } + + Result tangent = SparseMatrix::FromCoo( + dofs.FullDofCount(), dofs.FullDofCount(), std::move(contributions), + dofs.GetSparsePattern()); + if (!tangent.HasValue()) { + return Result::Failure(tangent.GetStatus()); + } + return Result::Success( + {std::move(force), std::move(tangent.Value()), std::move(rows), energy}); +} + +Result Difference(const Vector& left, const Vector& right) { + if (left.Size() != right.Size()) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", {}, + "Nonlinear internal and external vectors must have equal dimensions.")); + } + Vector result{left.Size()}; + for (std::size_t index = 0U; index < result.Size(); ++index) { + result[index] = left[index] - right[index]; + } + if (!IsFinite(result)) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", {}, + "Nonlinear residual must remain finite.")); + } + return Result::Success(std::move(result)); +} + +Result Difference(const SparseMatrix& internal, + const SparseMatrix& external, + const DofManager& dofs) { + if (internal.Rows() != external.Rows() || + internal.Columns() != external.Columns() || + internal.RowOffsets() != external.RowOffsets() || + internal.ColumnIndices() != external.ColumnIndices()) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", {}, + "Nonlinear internal and external tangent patterns must match.")); + } + std::vector contributions; + contributions.reserve(internal.Values().size()); + for (std::size_t row = 0U; row < internal.Rows(); ++row) { + for (std::size_t offset = internal.RowOffsets()[row]; + offset < internal.RowOffsets()[row + 1U]; ++offset) { + const double value = + internal.Values()[offset] - external.Values()[offset]; + if (!std::isfinite(value)) { + return Result::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", {}, + "Nonlinear tangent must remain finite.")); + } + contributions.push_back( + {row, internal.ColumnIndices()[offset], value, row, offset}); + } + } + return SparseMatrix::FromCoo(internal.Rows(), internal.Columns(), + std::move(contributions), + dofs.GetSparsePattern()); +} + +Vector SelectFreeComponents(const Vector& full, const DofManager& dofs, + const bool rotations) { + std::size_t count = 0U; + for (const std::size_t full_dof : dofs.FreeDofs()) { + if ((full_dof % kDofsPerNode >= kTranslationsPerNode) == rotations) { + ++count; + } + } + Vector selected{count}; + std::size_t output = 0U; + for (const std::size_t full_dof : dofs.FreeDofs()) { + if ((full_dof % kDofsPerNode >= kTranslationsPerNode) == rotations) { + selected[output++] = full[full_dof]; + } + } + return selected; +} + +Vector SelectCorrectionComponents(const Vector& correction, + const DofManager& dofs, + const bool rotations) { + std::size_t count = 0U; + for (const std::size_t full_dof : dofs.FreeDofs()) { + if ((full_dof % kDofsPerNode >= kTranslationsPerNode) == rotations) { + ++count; + } + } + Vector selected{count}; + std::size_t output = 0U; + for (std::size_t equation = 0U; equation < dofs.FreeDofs().size(); + ++equation) { + if ((dofs.FreeDofs()[equation] % kDofsPerNode >= + kTranslationsPerNode) == rotations) { + selected[output++] = correction[equation]; + } + } + return selected; +} + +Vector CurrentIncrementComponents(const Vector& current, const Vector& start, + const DofManager& dofs, + const bool rotations) { + Vector difference{current.Size()}; + for (std::size_t index = 0U; index < difference.Size(); ++index) { + difference[index] = current[index] - start[index]; + } + return SelectFreeComponents(difference, dofs, rotations); +} + +std::array GlobalEquilibrium(const Domain& domain, + const Vector& residual) { + std::array equilibrium{}; + for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { + const std::size_t first = node * kDofsPerNode; + const Vector3 force{residual[first], residual[first + 1U], + residual[first + 2U]}; + const Vector3 position{domain.Nodes()[node].coordinates}; + const Vector3 moment = position.Cross(force); + equilibrium[0U] += force.X(); + equilibrium[1U] += force.Y(); + equilibrium[2U] += force.Z(); + equilibrium[3U] += moment.X() + residual[first + 3U]; + equilibrium[4U] += moment.Y() + residual[first + 4U]; + equilibrium[5U] += moment.Z() + residual[first + 5U]; + } + return equilibrium; +} + +Status ApplyIncrementConstraints(const StepDefinition& step, + const LoadFactorIncrement& increment, + const DofManager& dofs, + NonlinearTrialState* trial) { + Result source_targets = + ApplyAbsolutePrescribedDisplacementTarget(step, increment.load_factor); + if (!source_targets.HasValue()) { + return source_targets.GetStatus(); + } + for (std::size_t index = 0U; index < dofs.ConstrainedDofs().size(); + ++index) { + const double target = + increment.load_factor * dofs.PrescribedValues()[index]; + if (!std::isfinite(target)) { + return ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", step.Location(), + "BOUNDARY", step.Name(), + "A nonlinear prescribed displacement target is nonfinite."); + } + trial->generalized_coordinates[dofs.ConstrainedDofs()[index]] = target; + } + return Status::Ok(); +} + +AcceptedFrameState AcceptedFrame(const NonlinearAnalysisState& state, + const NonlinearTrialState& trial, + const LoadFactorIncrement& increment, + const std::uint32_t iteration) { + return {static_cast(state.AcceptedFrames().size()), + increment.increment_index, + increment.load_factor, + iteration, + increment.is_factor_one, + trial.nodal_internal_order, + trial.nodal_source_ids, + trial.generalized_coordinates, + trial.displacement, + trial.rotation_vector, + trial.nodal_triad, + trial.nodal_director, + trial.internal_force, + trial.external_force, + trial.residual, + trial.reaction, + trial.shell_results, + trial.physical_strain_energy, + trial.global_equilibrium}; +} + +} // namespace + +NonlinearStaticProcedureExecutor::NonlinearStaticProcedureExecutor( + const ParallelFor& parallel_for, TangentSolver& tangent_solver) + : parallel_for_(parallel_for), tangent_solver_(tangent_solver) {} + +Result +NonlinearStaticProcedureExecutor::Execute( + const Domain& domain, NewtonIterationLogWriter& log) const { + if (domain.Steps().Size() != 1U || !domain.Steps()[0U].IsNonlinearStatic()) { + return Result::Failure(ProcedureFailure( + FailureCategory::kInput, "invalid-nonlinear-static-data", + {domain.SourcePath(), 0U}, "STATIC", domain.SourceContentIdentity(), + "Nonlinear procedure execution requires exactly one NLGEOM static " + "step.")); + } + const StepDefinition& step = domain.Steps()[0U]; + + Result dofs = BuildDofManager(domain); + if (!dofs.HasValue()) { + return Result::Failure(dofs.GetStatus()); + } + Result baseline = BuildBaseline(domain); + if (!baseline.HasValue()) { + return Result::Failure( + baseline.GetStatus()); + } + Result state = + NonlinearAnalysisState::Create(domain, dofs.Value(), baseline.Value()); + if (!state.HasValue()) { + return Result::Failure(state.GetStatus()); + } + Result> shells = + BuildRuntimeShells(domain, dofs.Value()); + if (!shells.HasValue()) { + return Result::Failure(shells.GetStatus()); + } + Result> increments = + BuildFixedLoadFactorSequence(step); + if (!increments.HasValue()) { + return Result::Failure( + increments.GetStatus()); + } + + const EssentialConstraintPolicy constraints; + for (const LoadFactorIncrement& increment : increments.Value()) { + Result trial = state.Value().BeginTrialFromCommitted(); + if (!trial.HasValue()) { + return Result::Failure(trial.GetStatus()); + } + const Vector increment_start = trial.Value().generalized_coordinates; + Status constraint_status = + ApplyIncrementConstraints(step, increment, dofs.Value(), + &trial.Value()); + if (!constraint_status.IsOk()) { + return Result::Failure(constraint_status); + } + + for (std::uint32_t iteration = 1U; iteration <= kMaximumNewtonIterations; + ++iteration) { + NewtonIterationLogRecord record = + NewLogRecord(step, increment, iteration); + trial.Value().increment_index = increment.increment_index; + trial.Value().load_factor = increment.load_factor; + trial.Value().is_factor_zero_baseline = false; + + Status kinematics = PopulateNodalKinematics(domain, &trial.Value()); + if (!kinematics.IsOk()) { + return Result::Failure( + RecordFailure(log, &record, kinematics, + NewtonIterationStage::kKinematicsEvaluated)); + } + record.last_completed_stage = NewtonIterationStage::kKinematicsEvaluated; + + Result internal = AssembleInternal( + shells.Value(), dofs.Value(), trial.Value().generalized_coordinates, + parallel_for_); + if (!internal.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, internal.GetStatus(), + NewtonIterationStage::kInternalAssembled)); + } + record.last_completed_stage = NewtonIterationStage::kInternalAssembled; + + Result external = + AssembleGlobalFixedLoadContribution( + domain, dofs.Value(), trial.Value().generalized_coordinates, + increment.load_factor); + if (!external.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, external.GetStatus(), + NewtonIterationStage::kExternalAssembled)); + } + record.last_completed_stage = NewtonIterationStage::kExternalAssembled; + + Result residual = + Difference(internal.Value().force, + external.Value().generalized_external_force); + if (!residual.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, residual.GetStatus(), + NewtonIterationStage::kExternalAssembled)); + } + Result tangent = + Difference(internal.Value().tangent, + external.Value().generalized_external_tangent, + dofs.Value()); + if (!tangent.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, tangent.GetStatus(), + NewtonIterationStage::kExternalAssembled)); + } + trial.Value().internal_force = std::move(internal.Value().force); + trial.Value().external_force = + std::move(external.Value().generalized_external_force); + trial.Value().residual = std::move(residual.Value()); + trial.Value().reaction = trial.Value().residual; + trial.Value().shell_results = std::move(internal.Value().shell_rows); + trial.Value().physical_strain_energy = + internal.Value().physical_strain_energy; + trial.Value().global_equilibrium = + GlobalEquilibrium(domain, trial.Value().residual); + + Result partition = + constraints.Partition(tangent.Value(), dofs.Value()); + if (!partition.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, partition.GetStatus(), + NewtonIterationStage::kExternalAssembled)); + } + const Status factorization = tangent_solver_.FactorizeFresh( + partition.Value().k_ff); + if (!factorization.IsOk()) { + return Result::Failure(RecordFailure( + log, &record, factorization, + NewtonIterationStage::kSolvedCorrection)); + } + + Vector correction_rhs = constraints.GatherFree(trial.Value().residual, + dofs.Value()); + for (std::size_t index = 0U; index < correction_rhs.Size(); ++index) { + correction_rhs[index] = -correction_rhs[index]; + } + Vector correction{dofs.Value().FreeDofCount()}; + const Status solve = + tangent_solver_.SolveCorrection(correction_rhs, correction); + if (!solve.IsOk()) { + return Result::Failure(RecordFailure( + log, &record, solve, NewtonIterationStage::kSolvedCorrection)); + } + record.last_completed_stage = NewtonIterationStage::kSolvedCorrection; + + const NewtonConvergenceResult convergence = EvaluateNewtonConvergence({ + {"residual_force", SelectFreeComponents(trial.Value().residual, + dofs.Value(), false), + SelectFreeComponents(trial.Value().internal_force, dofs.Value(), + false), + SelectFreeComponents(trial.Value().external_force, dofs.Value(), + false)}, + {"residual_moment", SelectFreeComponents(trial.Value().residual, + dofs.Value(), true), + SelectFreeComponents(trial.Value().internal_force, dofs.Value(), + true), + SelectFreeComponents(trial.Value().external_force, dofs.Value(), + true)}, + {"correction_translation", + SelectCorrectionComponents(correction, dofs.Value(), false), + CurrentIncrementComponents(trial.Value().generalized_coordinates, + increment_start, dofs.Value(), false)}, + {"correction_rotation", + SelectCorrectionComponents(correction, dofs.Value(), true), + CurrentIncrementComponents(trial.Value().generalized_coordinates, + increment_start, dofs.Value(), true)}}); + record.force_residual = convergence.force_residual; + record.moment_residual = convergence.moment_residual; + record.translation_correction = convergence.translation_correction; + record.rotation_correction = convergence.rotation_correction; + record.combined_passed = convergence.combined_passed; + record.last_completed_stage = NewtonIterationStage::kConvergenceEvaluated; + + if (convergence.combined_passed) { + const Status committed = state.Value().CommitAcceptedFrame( + AcceptedFrame(state.Value(), trial.Value(), increment, iteration)); + if (!committed.IsOk()) { + return Result::Failure(RecordFailure( + log, &record, committed, NewtonIterationStage::kAccepted)); + } + record.last_completed_stage = NewtonIterationStage::kAccepted; + record.transition = "accepted"; + record.outcome = "accepted"; + const Status log_status = WriteAndFlush(log, record); + if (!log_status.IsOk()) { + return Result::Failure(log_status); + } + break; + } + + if (iteration == kMaximumNewtonIterations) { + const Status failure = ProcedureFailure( + FailureCategory::kSolver, "nonlinear-nonconvergence", + step.Location(), "STATIC", step.Name(), + "The nonlinear procedure did not converge within 100 iterations."); + return Result::Failure(RecordFailure( + log, &record, failure, + NewtonIterationStage::kConvergenceEvaluated)); + } + + for (std::size_t equation = 0U; equation < dofs.Value().FreeDofs().size(); + ++equation) { + const std::size_t full_dof = dofs.Value().FreeDofs()[equation]; + trial.Value().generalized_coordinates[full_dof] += correction[equation]; + if (!std::isfinite(trial.Value().generalized_coordinates[full_dof])) { + const Status failure = ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", {}, + "NONLINEAR_STATIC_PROCEDURE", std::to_string(full_dof), + "A nonlinear free-coordinate correction is nonfinite."); + return Result::Failure(RecordFailure( + log, &record, failure, NewtonIterationStage::kSolvedCorrection)); + } + } + record.transition = "continue"; + record.outcome = "not-converged"; + const Status log_status = WriteAndFlush(log, record); + if (!log_status.IsOk()) { + return Result::Failure(log_status); + } + } + } + + std::vector diagnostics = domain.Warnings(); + SortDiagnostics(diagnostics); + return Result::Success( + {std::move(state.Value()), std::move(diagnostics)}); +} + +} // namespace fesa diff --git a/src/fesa/analysis/prepared_analysis.cpp b/src/fesa/analysis/prepared_analysis.cpp new file mode 100644 index 0000000..ce2042d --- /dev/null +++ b/src/fesa/analysis/prepared_analysis.cpp @@ -0,0 +1,79 @@ +#include "fesa/analysis/prepared_analysis.h" + +#include + +#include "fesa/analysis/linear_static_procedure.h" +#include "fesa/analysis/newton_iteration_log.h" +#include "fesa/analysis/nonlinear_static_procedure.h" +#include "fesa/app/output_paths.h" +#include "fesa/io/abaqus/domain_mapper.h" +#include "fesa/io/abaqus/input_reader.h" +#include "fesa/results/nonlinear_results_writer.h" +#include "fesa/results/results_writer.h" + +namespace fesa { + +Result PrepareAnalysisInput( + const std::filesystem::path& input_path) { + const Result syntax = AbaqusInputReader{}.Read(input_path); + if (!syntax.HasValue()) { + return Result::Failure(syntax.GetStatus()); + } + + Result mapped = AbaqusDomainMapper{}.Map(syntax.Value()); + if (!mapped.HasValue()) { + return Result::Failure(mapped.GetStatus()); + } + + PreparedAnalysisInput prepared{std::move(mapped.Value()), {}}; + prepared.diagnostics = prepared.domain.Warnings(); + SortDiagnostics(prepared.diagnostics); + return Result::Success(std::move(prepared)); +} + +Result ExecutePreparedAnalysis( + const Domain& domain, LinearStaticProcedureExecutor& linear_executor, + NonlinearStaticProcedureExecutor& nonlinear_executor, + NewtonIterationLogWriter& log) { + if (domain.Steps().Size() != 1U) { + return Result::Failure(Status::Failure( + FailureCategory::kInput, + {{Severity::kError, "invalid-analysis-step-count", {}, "*STEP", {}, + "Prepared analysis requires exactly one static step."}})); + } + + if (domain.Steps()[0U].IsNonlinearStatic()) { + Result nonlinear = + nonlinear_executor.Execute(domain, log); + if (!nonlinear.HasValue()) { + return Result::Failure(nonlinear.GetStatus()); + } + return Result::Success( + PreparedAnalysisOutcome{std::move(nonlinear.Value())}); + } + + Result linear = linear_executor.Execute(domain); + if (!linear.HasValue()) { + return Result::Failure(linear.GetStatus()); + } + return Result::Success( + PreparedAnalysisOutcome{std::move(linear.Value())}); +} + +Status FinalizePreparedAnalysisResult( + const DerivedOutputPaths& paths, const Domain& domain, + const PreparedAnalysisOutcome& outcome, + const std::vector& diagnostics, ResultsWriter& linear_writer, + NonlinearResultsWriter& nonlinear_writer) { + if (std::holds_alternative(outcome)) { + return linear_writer.Write( + paths.results_path, domain, + std::get(outcome).state, diagnostics); + } + + return nonlinear_writer.Write( + paths.results_path, domain, + std::get(outcome).state, diagnostics); +} + +} // namespace fesa diff --git a/src/fesa/app/fesa_application.cpp b/src/fesa/app/fesa_application.cpp index e878035..5ac723b 100644 --- a/src/fesa/app/fesa_application.cpp +++ b/src/fesa/app/fesa_application.cpp @@ -2,17 +2,20 @@ #include #include -#include #include #include -#include "fesa/analysis/analysis.h" -#include "fesa/analysis/linear_static_analysis.h" +#include "fesa/analysis/linear_static_procedure.h" +#include "fesa/analysis/newton_iteration_log.h" +#include "fesa/analysis/nonlinear_static_procedure.h" +#include "fesa/analysis/prepared_analysis.h" #include "fesa/app/output_paths.h" #include "fesa/assembly/parallel_for.h" #include "fesa/core/diagnostic.h" #include "fesa/io/hdf5/hdf5_results_writer.h" +#include "fesa/io/hdf5/nonlinear_hdf5_results_writer.h" #include "fesa/solvers/linear/mkl_pardiso_solver.h" +#include "fesa/solvers/linear/mkl_pardiso_tangent_solver.h" namespace fesa { namespace { @@ -73,17 +76,53 @@ int FesaApplication::Run(const std::vector& arguments) { return kOutputExitCode; } - AnalysisRequest request; - request.input_path = paths.Value().input_path; - request.output_path = paths.Value().results_path; - request.log_path = paths.Value().log_path; - TbbParallelFor parallel_for; MklPardisoSolver linear_solver; - Hdf5ResultsWriter results_writer; - std::unique_ptr analysis = std::make_unique( - parallel_for, linear_solver, results_writer); - const Status status = analysis->Run(request); + MklPardisoTangentSolver tangent_solver; + Hdf5ResultsWriter linear_writer; + NonlinearHdf5ResultsWriter nonlinear_writer; + NewtonIterationLogWriter log; + + Status status = log.Open(paths.Value().log_path); + if (!status.IsOk()) { + WriteDiagnostics(status.Diagnostics()); + return ExitCodeFor(status); + } + + Result prepared = + PrepareAnalysisInput(paths.Value().input_path); + if (!prepared.HasValue()) { + status = prepared.GetStatus(); + } else { + LinearStaticProcedureExecutor linear_executor(parallel_for, linear_solver); + NonlinearStaticProcedureExecutor nonlinear_executor(parallel_for, + tangent_solver); + Result outcome = ExecutePreparedAnalysis( + prepared.Value().domain, linear_executor, nonlinear_executor, log); + if (!outcome.HasValue()) { + status = outcome.GetStatus(); + } else { + const Status close_status = log.Close(); + if (!close_status.IsOk()) { + WriteDiagnostics(close_status.Diagnostics()); + return ExitCodeFor(close_status); + } + status = FinalizePreparedAnalysisResult( + paths.Value(), prepared.Value().domain, outcome.Value(), + prepared.Value().diagnostics, linear_writer, nonlinear_writer); + if (status.IsOk()) { + return kSuccessExitCode; + } + WriteDiagnostics(status.Diagnostics()); + return ExitCodeFor(status); + } + } + + const Status close_status = log.Close(); + if (!close_status.IsOk()) { + WriteDiagnostics(close_status.Diagnostics()); + return ExitCodeFor(close_status); + } if (status.IsOk()) { return kSuccessExitCode; } diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 43fc174..3298c37 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -72,6 +72,7 @@ target_link_libraries( add_executable( fesa_integration_tests integration/analysis/linear_static_analysis_test.cpp + integration/analysis/nonlinear_static_procedure_test.cpp integration/app/fesa_application_test.cpp ) diff --git a/tests/integration/analysis/linear_static_analysis_test.cpp b/tests/integration/analysis/linear_static_analysis_test.cpp index a738210..2205230 100644 --- a/tests/integration/analysis/linear_static_analysis_test.cpp +++ b/tests/integration/analysis/linear_static_analysis_test.cpp @@ -16,6 +16,7 @@ #include "fesa/analysis/analysis.h" #include "fesa/assembly/parallel_for.h" +#include "fesa/math/sparse_matrix.h" #include "fesa/results/results_writer.h" #include "fesa/solvers/linear/mkl_pardiso_solver.h" diff --git a/tests/integration/analysis/nonlinear_static_procedure_test.cpp b/tests/integration/analysis/nonlinear_static_procedure_test.cpp new file mode 100644 index 0000000..dd13cab --- /dev/null +++ b/tests/integration/analysis/nonlinear_static_procedure_test.cpp @@ -0,0 +1,157 @@ +#include "fesa/app/fesa_application.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace { + +class TempDirectory { + public: + explicit TempDirectory(const std::string& label) { + static std::atomic sequence{0U}; + const auto tick = + std::chrono::steady_clock::now().time_since_epoch().count(); + path_ = std::filesystem::temp_directory_path() / + ("fesa-step10-nonlinear-" + label + "-" + + std::to_string(tick) + "-" + + std::to_string(sequence.fetch_add(1U))); + std::error_code error; + if (!std::filesystem::create_directory(path_, error) || error) { + throw std::runtime_error{"Unable to create nonlinear procedure fixture."}; + } + } + + TempDirectory(const TempDirectory&) = delete; + TempDirectory& operator=(const TempDirectory&) = delete; + + ~TempDirectory() { + std::error_code ignored; + std::filesystem::remove_all(path_, ignored); + } + + const std::filesystem::path& Path() const noexcept { return path_; } + + private: + std::filesystem::path path_; +}; + +void WriteText(const std::filesystem::path& path, const std::string& text) { + std::ofstream stream{path, std::ios::binary | std::ios::trunc}; + stream.write(text.data(), static_cast(text.size())); + if (!stream) { + throw std::runtime_error{"Unable to write nonlinear procedure input."}; + } +} + +std::string AllConstrainedNonlinearShellDeck() { + return R"inp(*Part, name=ShellPart +*Node +1, 0., 0., 0. +2, 1., 0., 0. +3, 1., 1., 0. +4, 0., 1., 0. +*Element, type=S4 +1, 1, 2, 3, 4 +*Elset, elset=ShellSet +1 +*Shell Section, elset=ShellSet, material=Steel +0.1 +*End Part +*Assembly, name=Assembly +*Instance, name=Shell-1, part=ShellPart +*End Instance +*Nset, nset=All, instance=Shell-1 +1, 2, 3, 4 +*End Assembly +*Material, name=Steel +*Elastic +1000., 0.25 +*Boundary +All, 1, 6 +*Step, name=Step-1, nlgeom=YES +*Static +0.1, 1., 0.001, 0.1 +*End Step +)inp"; +} + +class Hdf5File { + public: + explicit Hdf5File(const std::filesystem::path& path) + : handle_{H5Fopen(path.string().c_str(), H5F_ACC_RDONLY, H5P_DEFAULT)} { + if (handle_ < 0) { + throw std::runtime_error{"Unable to open nonlinear results HDF5."}; + } + } + + Hdf5File(const Hdf5File&) = delete; + Hdf5File& operator=(const Hdf5File&) = delete; + + ~Hdf5File() { (void)H5Fclose(handle_); } + + hid_t Get() const noexcept { return handle_; } + + private: + hid_t handle_; +}; + +std::string ReadStringAttribute(const hid_t object, const char* name) { + const hid_t attribute = H5Aopen(object, name, H5P_DEFAULT); + const hid_t type = attribute < 0 ? -1 : H5Aget_type(attribute); + if (attribute < 0 || type < 0) { + if (type >= 0) { + (void)H5Tclose(type); + } + if (attribute >= 0) { + (void)H5Aclose(attribute); + } + throw std::runtime_error{"Unable to read nonlinear metadata attribute."}; + } + char* value = nullptr; + const herr_t read = H5Aread(attribute, type, &value); + const std::string result = read >= 0 && value != nullptr ? value : ""; + if (value != nullptr) { + (void)H5free_memory(value); + } + (void)H5Tclose(type); + (void)H5Aclose(attribute); + if (read < 0) { + throw std::runtime_error{"Unable to read nonlinear metadata text."}; + } + return result; +} + +// NSNR-PROC-004, NSNR-PROC-007, and NSNR-PROC-010. +TEST(NonlinearStaticProcedure, + AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames) { + TempDirectory directory{"schema-v1"}; + const auto input = directory.Path() / "shellnl.inp"; + const auto output = directory.Path() / "shellnl_results.h5"; + WriteText(input, AllConstrainedNonlinearShellDeck()); + + testing::internal::CaptureStderr(); + const int exit_code = fesa::FesaApplication{}.Run({input.string()}); + const std::string standard_error = testing::internal::GetCapturedStderr(); + + ASSERT_EQ(exit_code, 0) << standard_error; + ASSERT_TRUE(std::filesystem::exists(output)); + ASSERT_GT(H5Fis_hdf5(output.string().c_str()), 0); + const Hdf5File file{output}; + const hid_t metadata = H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT); + ASSERT_GE(metadata, 0); + EXPECT_EQ(ReadStringAttribute(metadata, "feature_id"), + "nonlinear-static-newton-raphson"); + (void)H5Gclose(metadata); + EXPECT_GT(H5Lexists(file.Get(), "/steps/Step-1/accepted_frames", H5P_DEFAULT), + 0); +} + +} // namespace diff --git a/tests/integration/app/fesa_application_test.cpp b/tests/integration/app/fesa_application_test.cpp index 330047c..efdbb4f 100644 --- a/tests/integration/app/fesa_application_test.cpp +++ b/tests/integration/app/fesa_application_test.cpp @@ -368,6 +368,20 @@ TEST(LinearStaticCli, DefaultOutputUsesInputSiblingDerivedName) { EXPECT_FALSE(std::filesystem::exists(directory.Path() / "results.h5")); } +// NSNR-PROC-001: log lifecycle begins after leasing and before parse/map. +TEST(FesaApplication, OpensDerivedLogBeforeInputMapping) { + TempDirectory directory{"log-before-input"}; + const auto input = directory.Path() / "missing.inp"; + const auto log = directory.Path() / "missing_log.txt"; + + const auto result = RunApplication({input.string()}); + + EXPECT_EQ(result.exit_code, 3); + ExpectDiagnosticFieldOrder(result.standard_error); + ASSERT_TRUE(std::filesystem::exists(log)); + EXPECT_EQ(std::filesystem::file_size(log), 0U); +} + TEST(LinearStaticCli, ReturnsEveryExactExitCodeAndOrderedDiagnostic) { TempDirectory directory{"exit-codes"}; const auto valid_input = directory.Path() / "valid.inp"; diff --git a/tests/reference/b33_reference_comparison_test.cpp b/tests/reference/b33_reference_comparison_test.cpp index 0c277f1..2987869 100644 --- a/tests/reference/b33_reference_comparison_test.cpp +++ b/tests/reference/b33_reference_comparison_test.cpp @@ -252,6 +252,7 @@ TEST(B33ReferenceComparison, GeneratesAuthoritativeHdf5AndComparisonEvidence) { std::sort(generated_names.begin(), generated_names.end()); EXPECT_EQ(generated_names, (std::vector{"cantilever beam.inp", + "cantilever beam_log.txt", "cantilever beam_results.h5", "comparison.json"})); diff --git a/tests/reference/mitc4_reference_cases_test.cpp b/tests/reference/mitc4_reference_cases_test.cpp index 360a070..75b3fe6 100644 --- a/tests/reference/mitc4_reference_cases_test.cpp +++ b/tests/reference/mitc4_reference_cases_test.cpp @@ -111,6 +111,7 @@ CaseEvidence RunCase(const std::string& case_id, EXPECT_EQ(generated, (std::vector{"comparison.json", input.filename().string(), + input.stem().string() + "_log.txt", results.filename().string()})); EXPECT_TRUE(std::filesystem::is_directory(reference_directory)); ExpectUnchanged(input, input_before); From 65b56b1755e4537b48b44476375b6235da732648 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Mon, 24 Aug 2026 15:49:08 +0900 Subject: [PATCH 22/32] chore(nonlinear-static-newton-raphson): step 10 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index dc2b04f..53bbb37 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -85,7 +85,10 @@ { "step": 10, "name": "prepared-analysis-flow-and-full-procedure", - "status": "pending" + "status": "completed", + "summary": "Prepared parse-once analysis flow, separated linear/nonlinear procedures, and delayed HDF5 finalization until log close.", + "started_at": "2026-08-24T15:19:07+0900", + "completed_at": "2026-08-24T15:49:07+0900" }, { "step": 11, From 6dbf1b2bcf97dbb1798cbba9bd43346d1a4e63e0 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 09:22:33 +0900 Subject: [PATCH 23/32] feat(nonlinear-static-newton-raphson): step 11 - equilibrium-projection-and-reference-gate --- .../coordination.md | 184 +- .../corrections.md | 326 +- .../formulation.md | 39 +- .../implementation-plan.md | 209 +- docs/nonlinear-static-newton-raphson/io.md | 322 +- .../numerical-review.md | 303 +- .../reference-model.md | 374 +- .../requirements.md | 70 +- .../translation-displacement-comparison.md | 186 + .../nonlinear-static-newton-raphson/step10.md | 5 + .../nonlinear-static-newton-raphson/step11.md | 450 +- .../nonlinear-static-newton-raphson/step12.md | 242 +- .../nonlinear-static-newton-raphson/step5.md | 12 +- .../nonlinear-static-newton-raphson/step7.md | 9 +- .../shellNL-meshfine displacements.csv | 730 +++ .../shellNL-meshfine reactions.csv | 730 +++ .../shellNL-meshfine stresses.csv | 5409 +++++++++++++++++ .../shellNL-meshfine/shellNL-meshfine.inp | 1494 +++++ .../analysis/nonlinear_static_control.cpp | 8 +- .../analysis/nonlinear_static_procedure.cpp | 117 +- src/fesa/io/hdf5/hdf5_self_check.cpp | 2 +- .../io/hdf5/nonlinear_hdf5_results_writer.cpp | 2 +- tests/CMakeLists.txt | 2 + .../nonlinear_static_procedure_test.cpp | 189 + .../nonlinear_static_reference_cases_test.cpp | 401 ++ .../nonlinear_static_reference_comparison.cpp | 1624 +++++ .../nonlinear_static_reference_comparison.h | 129 + .../analysis/newton_iteration_log_test.cpp | 88 + .../nonlinear_static_control_test.cpp | 169 + .../nonlinear_hdf5_results_writer_test.cpp | 25 + 30 files changed, 13122 insertions(+), 728 deletions(-) create mode 100644 docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md create mode 100644 reference/shellNL-meshfine/shellNL-meshfine displacements.csv create mode 100644 reference/shellNL-meshfine/shellNL-meshfine reactions.csv create mode 100644 reference/shellNL-meshfine/shellNL-meshfine stresses.csv create mode 100644 reference/shellNL-meshfine/shellNL-meshfine.inp create mode 100644 tests/reference/nonlinear_static_reference_cases_test.cpp create mode 100644 tests/reference/nonlinear_static_reference_comparison.cpp create mode 100644 tests/reference/nonlinear_static_reference_comparison.h diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index 1d4a6b6..e80f5a8 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -6,25 +6,25 @@ - workflow_state: `needs-implementation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-24` (REWORK-006 passed; Step 1 no-push Harness rerun authorized) +- last_updated: `2026-08-28` (REWORK-009 passed; bounded Step 11 all-WindowsApps-filter rerun package prepared) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: REWORK-006 passed and Step 1 is reset to `pending`; authorize no-push Harness rerun from Step 1 under the approved Ninja/MSVC workspace-write envelope. -- constraints: 승인된 Stage 1-5 hashes, physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel과 Stage 6 materialization evidence를 보존한다. Step 0 commits `fc16ef6` and `e7c6932`, Step 1 uncommitted implementation changes, phase block evidence and no-reference-artifact-change evidence must be preserved. The approved continuation envelope is MSVC/x64/Debug with Ninja generator, full CTest, `workspace-write`, Codex CLI `0.149.1`, `CODEX_HOME=C:\Users\baram\.codex`, child launch PATH filtering of `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` and `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`, implementation-agent `gpt-5.6-terra`/`xhigh`, hooks retained, no-push, no `danger-full-access`, and runner-retained `--disable unified_exec`. Do not edit feature contracts/reference artifacts/tolerance policies, run Abaqus/Nastran/reference solvers, clean/delete build artifacts, or advance Step 2/Physics/Release until `implementation-report.md`, `build-test.md`, `reference-comparison.md` and passing implementation evidence exist. +- current_goal: Run one bounded Step `11` only no-push Harness/Implementation rerun after REWORK-009 proved the all-WindowsApps PATH filter; Step `12`, push, reference mutation, `danger-full-access`, `fesa.env` and runtime/product configuration remain forbidden. +- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O, Stage 6 Implementation Planning materialization, then Step `11` only no-push Harness/Implementation under Codex CLI `0.150.1` USER-DECISION-005A envelope. No push, no `danger-full-access`, no reference mutation/solver and no Step `12` auto-advance. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist | stage | owner | status | output paths | acceptance gate | evidence summary | blockers | attempt count | | --- | --- | --- | --- | --- | --- | --- | --- | -| 1. Requirements | `requirement-agent` | `passed` | `docs/nonlinear-static-newton-raphson/requirements.md` | `<=400` lines, 24 canonical shall requirements, exact 24-row Matrix, approved semantic loss 0, Stage-1 user question 0 | Approved compact content 395 lines; approval metadata 2 lines, current 397; 24↔24 exact ID sets, duplicate/missing/orphan 0, OQ/questions/trivia/placeholders 0; core semantics and NSNR-083 public precedence retained; forbidden changes 0; user explicitly approved on 2026-08-23. | 없음 | 40 | +| 1. Requirements | `requirement-agent` | `passed` | `docs/nonlinear-static-newton-raphson/requirements.md` | USER-DECISION-004 option 1을 requirements/reference acceptance contract에 최소 반영하고 compact requirements contract, existing thresholds, four-channel AND, Full Newton, 100-iteration limit, `docs/TOLERANCE.md`, approved semantic loss 0을 보존함 | Requirement Agent returned revised `requirements.md` status `draft`, ready for Coordinator/user re-approval, SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`. Coordinator audit passed: hash matched, 401 lines, 24 requirement records, 24 Matrix rows, duplicate/missing/orphan IDs 0, USER-DECISION-004 option 1 expressed, local RF/RM review-only, blocking global applied-plus-reaction force/moment plus accepted free residual present, formulation semantics preserved, AUDIT-001 Stage5/6 handoff present, no tolerance/reference/HDF5/public-scope expansion. User explicitly re-approved this hash on 2026-08-27. | 없음 | 43 | | 2. Research | `research-agent` | `passed` | `docs/nonlinear-static-newton-raphson/research.md` | 필요한 이론·benchmark·source reliability·applicability limit가 충분함 | Owner/Coordinator pass와 2026-08-23 사용자 명시 승인; 10 required sections, S1–S17, 12 benchmark candidates, 11 research-relevant requirement IDs, 14 unique open issues; nonlinear stored reference gap explicit; SHA-256 `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; forbidden changes 0. | 없음 | 1 | -| 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | strong/weak form, kinematics, tangent/residual, integration, state/recovery가 구현 가능한 계약이며 O-ROT/O-MAP/O-DRILL/O-MOM/O-BC가 승인 scope 안에서 해소됨 | Rework attempt 2 owner/Coordinator pass와 사용자 명시 승인: reaction force/generalized moment/spatial moment symbols와 dimensions가 rotation matrix `R_I`와 분리됨; immutable fixed-global source, `rho_M <= 1e-12` admissibility, exact projected physical-work covector, `DP`/`DJ_l`/map-Hessian residual-tangent identity가 §§4.4/5/11.2–11.3/13.1/13.4/17에서 일치함; 18 sections와 7 closures 보존; SHA-256 `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`. | 없음 | 2 | -| 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | 두 문서가 함께 `pass-for-io-definition`이며 수치 안정성과 exact reference contract가 준비됨 | Corrected owner return, Coordinator audit pass and user explicit approval: status `pass-for-io-definition`; approved formulation hash matched; shellNL/shell artifacts inspected read-only with row counts `49/49/288`, duplicate required wide keys 0 and nonfinite required values 0; stress CSVs are optional read-only inspection/order evidence only; `RM3` excluded; required external comparison uses displacement, reaction force and physical spatial `RM1/RM2`; exact prechecks and `docs/TOLERANCE.md` policy retained. Current hashes: numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`, reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`. | 없음 | 2 | -| 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | Abaqus subset, semantic mapping, HDF5 schema, diagnostics, CSV projection이 승인됨 | Bounded rework owner status `ready-for-coordinator-review`, SHA-256 `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`; Coordinator audit passed and user explicitly approved the same hash. REWORK-002 defects are corrected: every argv token containing literal `--output` fails pre-input/pre-log/pre-output with one `cli-usage` diagnostic; `nsnr-log-v1` uses UTF-8 no BOM/LF/TAB fixed fields with four-channel gates, typed thresholds, branch identity, early-failure `not-evaluated(reason)`, round-trip numerics and escaping; log open/write/flush/close is fail-closed with zero-byte non-Newton success logs; exact `VARIABLE=PRESELECT` output requests are ignored-with-warning; lexical path/stem derivation, single-writer/candidate collision rules, HDF5 schema v1, reference projection, stress/RM3 exclusions and `docs/TOLERANCE.md` policy are preserved. | 없음 | 2 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md` | 상세 인터뷰와 계획 승인 후 TDD, MSVC/x64/Debug CMake/CTest, blocking reference comparison이 통과함 | REWORK-006 Correction returned `corrected-for-implementation-rerun`; `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. Evidence: nested `workspace-write` launched from VsDevCmd x64 plus dependency env; Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full CTest all exit 0; 228 discovered/228 passed; Stop-hook `codex exec` exit 0; focused contract test 1/1; full Python 24 passed plus one pre-existing `xhigh`/`extra high` mismatch; reference hashes unchanged; top phase and Step 1 reset to `pending` only after pass, Step 2 remains pending. | Stage 6 implementation evidence docs still absent; no-push Harness rerun from Step 1 is authorized | 14 | +| 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | §14.1만 USER-DECISION-003 option 1로 갱신하고 strong/weak form, kinematics, tangent/residual, integration, state/recovery, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure를 보존함 | Owner returned `ready-for-coordinator-and-user-reapproval`, SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, §14.1-only diff `34` additions/`5` deletions, revised requirements hash matched, 13/13 contract assertions and diff check passed, no other owner file changes. Coordinator audit passed and user explicitly re-approved this hash on 2026-08-24: exact-zero branch selector is matching external residual-channel scale, nonzero external scale retains relative `max(internal, external)` denominator and `1e-2`, typed absolutes remain `1e-3`, correction gates/four-channel AND/lifecycle/reference disposition unchanged. | 없음 | 3 | +| 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | USER-DECISION-006 delegated reapproval: both normalized factor-one global FORCE and MOMENT balance gates are fixed `<=1e-8`, with exact formulas, sum-of-contribution scales, zero-scale rule, source identity and USER-DECISION-004 dispositions preserved | Owner returned `pass-for-io-definition`, blockers none. Coordinator audit verified hashes `numerical-review.md` `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; both reports record global force/moment normalized gate `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, 12 reference hashes/length/mtime unchanged, fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and `RM3`/stress excluded. Root independently verified hashes, target occurrences and `git diff --check` with only LF/CRLF warnings. | 없음 | 6 | +| 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `11` only no-push rerun uses Codex CLI `0.150.1`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and a child launch PATH that removes every entry matching `\\WindowsApps(?:\\|$)`; Step `12` remains outside scope | REWORK-009 owner returned `corrected-for-implementation-rerun`, blockers none, `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator/root audit verified Section 14 records the confirmed all-WindowsApps filter, exact shell smoke, recovered RED->GREEN, focused passes, Stop `302/302`, no runner/source/test/CMake/phase/upstream/reference/tolerance edits, and one bounded Step `11` rerun recommendation. Step `11` and top phase remain `pending`, Step `12` pending, HEAD `65b56b1`, and canonical evidence docs are absent. | Step `11` rerun owner return missing; Step `12` not authorized | 33 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | @@ -33,46 +33,52 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `stage-6-step1-no-push-harness-rerun` -- target_sub_agent: `implementation-agent` via Harness Executor (`python scripts/execute.py nonlinear-static-newton-raphson`; root launch required) +- current_dispatch: `STEP11-EXECUTION-004-all-windowsapps-filter-step11-only-rerun-root-executor-required` +- target_sub_agent: `implementation-agent` via Harness Executor - required_inputs: - - REWORK-006 Correction return: status `corrected-for-implementation-rerun`, `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. - - User explicitly approved USER-DECISION-002 option A / DECISION-039: Ninja/MSVC is the accepted Stage 6 validation contract for continuation. - - Current isolated worktree: `C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson`; no push. - - Step 0 evidence: completed and committed as feature commit `fc16ef6` plus metadata commit `e7c6932`. - - Current Step 1 state: `pending` with historical `started_at`; existing uncommitted Domain/Abaqus mapping production and C++ test changes are preserved; Step 2..12 remain pending. - - Current hashes: `phases/index.json` `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`; phase index `D3F30298EB728F4DECA948827900CF35989F47F009872B43DC4BD997B30C3950`. - - Correction files/evidence: tracked `CMakePresets.json` SHA-256 `900EEE9EC564CEA09F2A73B8AC59865A7233E9480FAACD3CFEF60F2ABCDFFD43`; ignored `.harness/config.json` byte-identical to `.harness/config.example.json` SHA-256 `D07429860D472AE37D02D6CD638900FA46175085AF47F179E98601227F8D3C43`; contract test `tests/test_harness_preset_contract.py` SHA-256 `94433B65E155C90837724810A1E773BB990779AFB217268E557AE4E7662B8396`. - - Correction validation: nested `workspace-write`/VsDevCmd x64/dependency env; Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full all exit 0; 228 discovered/228 passed; Stop-hook `codex exec` exit 0; focused contract test 1/1; full Python 24 passed plus pre-existing `xhigh`/`extra high` mismatch 1. - - Root independent review: no blocking finding; read AGENTS/ARCHITECTURE/ADR; focused contract test fresh pass 1/1; `cmake --list-presets` exposes only approved preset; `cmake --preset ... -N` exit 0; `git diff --check` pass; local config/build ignored as intended; `git diff -- reference` clean; no old VS/`.harness/build` commands remain in `implementation-plan.md` or `step0.md`..`step12.md`. - - Approved Stage 1-5 hashes remain unchanged: requirements `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2`; research `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE`; formulation `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0`; numerical-review `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01`; reference-model `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3`; io `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28`. + - Use `fesa-cpp-msvc-tdd` and project-local `harness`; execute only Executor-selected Step `11` `equilibrium-projection-and-reference-gate`. + - Read `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.codex/hooks.json`, `docs/nonlinear-static-newton-raphson/coordination.md`, approved Stage 4/5/6 documents, phase indexes, `step11.md`, `step11-output.json`, and `corrections.md` Section 14. + - Preserve USER-DECISION-006: both normalized factor-one global FORCE and MOMENT balance gates are fixed inclusive `<=1e-8`; no `fesa.env`, config parsing, runtime API, CLI option, public API, HDF5 schema change or product solver acceptance behavior. + - Preserve exact formulas, sum-of-contribution scales, exact-zero rule, source identities, NSNR-069 free residual gates, `docs/TOLERANCE.md` separation, reference artifact immutability, local RF/RM review-only, U blocking, UR warning-only, and `RM3`/stress exclusions. + - Launch environment: Codex CLI `0.150.1`, app SHA-256 `CBD657DDFE151D1A6EBAD660BEFFDBD3265DC5AFF4B3A6095124D3E2F0156F2F`, `CODEX_HOME=C:\Users\baram\.codex`, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, `--disable unified_exec`, VsDevCmd Hostx64/x64 with approved dependency env vars and Ninja/MSVC Debug preset. + - Before nested Codex execution, after VsDevCmd/dependency setup, filter child PATH exactly with entries satisfying `$_ -and $_ -notmatch '\\WindowsApps(?:\\|$)'`; preflight must leave `pwsh` unresolved, resolve `powershell` to `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`, and print exact `FESA_CODEX_SHELL_SMOKE_OK` with exit `0`. + - Use the previously approved Step `11` only no-push wrapper/private single-step path that hard-stops before Step `12`; if only the public all-pending runner path is available and Step `12` cannot be blocked, stop and return to Coordinator. + - Preserve current dirty Step `11` implementation/test/comparator/CMake work and recovered RED->GREEN evidence; do not fabricate a new RED by reverting code. Run the Step `11` required focused/full VERIFY commands and let automatic hooks run. + - Current workdir: `C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson`. - expected_outputs: - - Executor-managed no-push Harness rerun beginning at Step 1. Executor owns branch state, pending selection, retries, timestamps, commits and advancement. - - Implementation Agent owns only Executor-selected Step 1 `RED -> observed failure -> minimal GREEN -> VERIFY`, then Step 1 status/summary or blocker payload. - - Final Stage 6 evidence remains `implementation-report.md`, `build-test.md`, and `reference-comparison.md` only after the approved phase reaches final verification. -- acceptance_gate: Root is authorized to rerun no-push `python scripts/execute.py nonlinear-static-newton-raphson` from the isolated worktree, launched from VsDevCmd x64 with `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, `HDF5_DIR`, Codex `0.149.1`, aligned `CODEX_HOME`, filtered WindowsApps PATH, `workspace-write`, hooks retained, `gpt-5.6-terra`/`xhigh`, `--disable unified_exec`, Ninja/MSVC presets, and no `danger-full-access`. Passing Stage 6 still requires successful Harness execution, MSVC/x64/Debug full CTest, required reference comparison, and Coordinator audit of implementation evidence docs. -- stop_condition: Stop and report if Step 1 rerun blocks/errors, if the old Visual Studio/FileTracker path recurs, if the nested Codex shell hang recurs, if Ninja/MSVC validation fails, or if any unauthorized `danger-full-access`, push, reference solver/artifact mutation or Step 2 advance is attempted before Step 1 completion. -- missing_evidence: no-push Harness Step 1 rerun result and Stage 6 implementation evidence docs. + - `phases/nonlinear-static-newton-raphson/step11-output.json` + - Executor-owned phase metadata and Step `11` source/test/comparator commit if the Step passes + - No `implementation-report.md`, `build-test.md` or canonical `reference-comparison.md` in this Step +- acceptance_gate: Implementation/Harness returns Step `11` completed with output path/status/evidence/blockers, no push, Stop/focused CTest evidence green under `windows-msvc-ninja-debug`, fixed `<=1e-8` force/moment gates verified, reference artifact hashes/mtimes unchanged and `git diff -- reference` clean; Step `12` remains pending. +- stop_condition: Stop and return classified blocker if the same user-local WindowsApps `pwsh.exe`/`CreateProcessAsUserW` failure recurs after the all-WindowsApps filter, if any change beyond fixed `<=1e-8` is needed, if Step `12` would start, if push/`danger-full-access`/manual hook/reference solver/reference mutation is required, or if runner/source/test/phase/upstream/tolerance edits outside `step11.md` contract are needed. +- missing_evidence: Step `11` rerun owner return and Executor commit/status evidence. This Coordinator runtime has no callable `spawn_agent` tool (`tool_search` found no dispatch tool), so root/Executor launch is required. ### Latest Sub-Agent Return - target_sub_agent: `correction-agent` - output_paths: - `docs/nonlinear-static-newton-raphson/corrections.md` -- status: `corrected-for-implementation-rerun` (owner); Coordinator decision `passed` +- status: `corrected-for-implementation-rerun`; Coordinator decision `passed` - evidence_summary: - - `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`. - - Correction expressed DECISION-039 through tracked `CMakePresets.json`, ignored `.harness/config.json`, updated `.harness/config.example.json`, `.gitignore`, `implementation-plan.md`, and `step0.md`..`step12.md`, and added `tests/test_harness_preset_contract.py`; no Harness Python production change was required. - - Nested `workspace-write` with VsDevCmd x64 and dependency environment passed Ninja/Debug/MSVC Hostx64-x64 configure/build/discovery/full CTest, 228 discovered/228 passed, and Stop-hook `codex exec` exit 0. - - Focused contract test passed 1/1; full Python was 24 passed plus one pre-existing `xhigh`/`extra high` mismatch. - - Top phase and Step 1 were reset to `pending` only after blocker-clear evidence; Step 2 remains pending. - - Reference artifact hashes match the approved inventory and `git diff -- reference` is clean. - - Correction did not run Harness phase, Step 2, reference solvers, cleanup, commit, push, or `danger-full-access`. + - Coordinator/root verified `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A` and scoped `git diff --check` exit `0` with only LF/CRLF warning. + - Section 14 confirms the prior launch filter missed `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`; filtering all entries matching `\\WindowsApps(?:\\|$)` makes `pwsh` unresolved, selects system Windows PowerShell and passes exact `FESA_CODEX_SHELL_SMOKE_OK`. + - Owner recorded recovered old-gate RED, `<=1e-8` GREEN, focused implementation/reference passes, Stop `302/302`, no blockers, no Harness phase/build/full CTest rerun, no commit/push, no reference mutation and no runner/source/test/CMake/phase/upstream/tolerance edits. - blockers: - - 없음 for REWORK-006; Stage 6 implementation evidence docs remain absent. -- self_audit_findings: Coordinator accepted the Correction return, independently checked hashes, preset/config content, phase pending state, no reference/upstream contract diff, root independent review, and did not run Harness/build/tests/reference solvers. -- return_contract_check: output path, corrected status, evidence summary, blockers, no-change assertion and cleanup evidence are present. -- acceptance_evidence_check: REWORK-006 is closed; no-push Harness rerun from Step 1 is eligible under the approved envelope. + - 없음 +- self_audit_findings: Coordinator accepts REWORK-009 as a report-only environment correction. It does not reopen Stage 4/5/6 semantics and does not itself complete Step `11`. +- return_contract_check: Return includes output path, status, evidence summary and blockers; owner scope was limited to `corrections.md` and root verified the hash. +- acceptance_evidence_check: The next eligible action is one bounded Step `11` only no-push Harness/Implementation rerun under the corrected all-WindowsApps child PATH filter. + +### USER-DECISION-004 Selected Path + +- selected: User explicitly approved option 1 on `2026-08-26`. +- meaning: exact local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` rows remain deterministic source-key/schema/finite/inventory/error-reporting evidence but become review-only/nonblocking; `RM3` remains excluded. +- blocking evidence: factor-one global resultant force `[3]`, factor-one global resultant moment `[3]`, and accepted free-DOF residual gates/evidence. Resultant moment uses the existing I/O global-equilibrium contract: global origin `[0,0,0]`, current force arms and spatial physical nodal moments. +- unchanged: displacement comparison remains blocking, `UR1/UR2/UR3` remains warning-only, stress CSVs remain optional inspection/no comparison projection, `docs/TOLERANCE.md` applies where external comparison remains, and exact source-ID prechecks are preserved. +- prohibited: no averaging/collapse/zero clamp, no tolerance relaxation, no comparator weakening, no reference artifact edit, and no Abaqus S4 internal-equivalence claim. +- re-approval path: Stage 1 requirements, Stage 4 Numerical/reference and Stage 5 I/O are re-approved. Stage 6 implementation-planning revision draft is returned, Coordinator-audited, user-approved and materialized by MATERIALIZATION-003. DECISION-042 now supplies the separate explicit Step 11 Harness/Implementation request. Stage 3 formulation has no immediate dispatch because current §11.4 and §13.4 already define full residual/reactions and global resultant identities. + +`MESH-REFINEMENT-SPIKE-001` remains diagnostic evidence that option 3 is not met by the current Abaqus S4 coarse/fine pair. `TRANSLATION-REPORT-001` remains translation-only diagnostic evidence and does not authorize final reference-model, tolerance, comparator, HDF5 schema, implementation, Harness, Step 12, Physics or Release changes. ### Compact Migration Evidence @@ -187,10 +193,56 @@ | 2026-08-24 | REWORK-005 FileTracker Correction return and Coordinator audit | `blocked` | Correction returned `blocked` / `needs-user-decision`, changed only `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `BCA9DEE6F6F262A70FB5C7A49B2BF06CA3FF8BC6C6838FB20A8B48071CF9D420`. VS18/MSBuild `18.8.2` fails in FESA and gtest at `FileTracker..cctor()` -> `GetLongFilePath` with `E_ACCESSDENIED`; inherited `TEMP`/`TMP` is outside workspace; `/p:TrackFileAccess=false` and `:workspace` echo were not proven; exact process trees were cleaned; Ninja/MSVC 27/27 focused and 228/228 full evidence is preserved but not an approved substitute. | `needs-user-decision` | User must choose A Ninja/MSVC evidence substitution, B isolated `danger-full-access` fallback, or C stop pending external Codex sandbox Temp/FileTracker repair | | 2026-08-24 | USER-DECISION-002 option A and REWORK-006 dispatch | `in-progress` | User explicitly approved option A: Ninja/MSVC is the accepted Stage 6 validation contract. Coordinator/root audit found `.harness/config.json` ignored/absent, CMake presets absent, and adapter preset triplets sufficient to route Stop hook to Ninja without Harness Python production changes. Root dispatched `correction-agent` for preset/config plumbing, preset-contract RED test, planning/phase command rewrite, blocker-clear evidence, and phase reset only after evidence. | `needs-correction` | Await REWORK-006 Correction return; no Harness rerun, Step 2, `danger-full-access`, push, reference solver or reference artifact change | | 2026-08-24 | REWORK-006 Correction return and Coordinator audit | `passed` | Correction returned `corrected-for-implementation-rerun`; `corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81`; Ninja/MSVC Debug configure/build/discovery/full CTest passed with 228/228, Stop-hook `codex exec` exit 0, focused contract test 1/1, full Python 24 passed plus pre-existing `xhigh`/`extra high`; reference hashes unchanged; top phase and Step 1 reset to `pending` only after evidence; root independent review found no blocking issue. | `needs-implementation` | Root is authorized to rerun no-push `python scripts/execute.py nonlinear-static-newton-raphson` from Step 1 under approved Ninja/MSVC workspace-write envelope | +| 2026-08-24 | Harness Step 11 reference-comparison block and REWORK-007 dispatch | `needs-rework` | Harness Steps 0..10 completed. Step 11 owner added reference comparator/test files but blocked because copied `shellNL.inp` reaches `nonlinear-nonconvergence` after 100 Newton iterations; `shellNL_results.h5` is absent, `git diff -- reference` is clean, and Step 12 remains pending. Log evidence shows force/correction channels passing while residual moment remains failing; approved convergence contract must not be relaxed silently. | `needs-correction` | Root profile dispatch to bounded `correction-agent`: diagnose/fix only implementation-owned nonlinear solver/convergence defect under approved contracts, or return `upstream-contract` / `needs-user-decision` if the approved moment-denominator contract is the blocker | +| 2026-08-24 | REWORK-007 upstream-contract return and Coordinator audit | `blocked` | Correction returned `needs-upstream-decision`, `corrections.md` SHA-256 `63E0FF45AF44F564B276C2400B2D1A9AB5F90FC9E1470F4F8246ED57231B175B`, changed only that report. Proof: shellNL has no external rotational generalized force, so approved `D_M=max(||f_int||inf,||f_ext||inf)` gives `eta_M=1` for every nonzero rotational residual; focused CTest #288 reproduced the failure and 100/100 log records have numerator=denominator, relative branch, pass=0. | `needs-user-decision` | USER-DECISION-003: choose a residual-moment convergence contract path before requirements/formulation/numerical-review/io/planning rework or stop the feature | +| 2026-08-24 | USER-DECISION-003 option 1 and Requirements rework dispatch | `in-progress` | User approved option 1: if the matching external residual-channel scale is exact zero, apply the existing typed absolute residual gate; otherwise retain the current relative denominator. Coordinator recorded required re-approval sequence and bounded Stage 1 rework to NSNR-069 in `requirements.md` only. | `needs-requirements` | Root profile dispatch to `requirement-agent`; await revised `requirements.md` return and Coordinator audit before explicit Stage 1 re-approval | +| 2026-08-24 | Requirements NSNR-069 option 1 return and Coordinator audit | `passed` | Requirement Agent returned `draft`, `ready-for-coordinator-review`, `requirements.md` SHA-256 `89B6AEC25BD6AF5B79D328EEF63359A82DDB9402AE9482E3082A70C474A7B8B8`. Coordinator verified hash, `git diff --check`, 397 lines, 24/24 records/Matrix rows, scoped NSNR-069/status/tolerance/matrix/handoff diff, unchanged thresholds/four-channel AND/Full Newton/100 iterations/reference disposition, and no forbidden execution or artifact change. | `needs-user-decision` | Ask user to explicitly approve revised `requirements.md`; do not dispatch formulation yet | +| 2026-08-24 | Revised Stage 1 approval and Formulation §14.1 dispatch | `in-progress` | User explicitly approved revised `requirements.md` SHA-256 `89B6AEC25BD6AF5B79D328EEF63359A82DDB9402AE9482E3082A70C474A7B8B8`. Coordinator closed the Stage 1 re-approval item and prepared a bounded `formulation-agent` package for `formulation.md` §14.1 only under USER-DECISION-003 option 1. | `needs-formulation` | Root profile dispatch to `formulation-agent`; await §14.1-only return and Coordinator audit; do not start numerical-review/I/O/planning/implementation | +| 2026-08-24 | Formulation §14.1 option 1 return and Coordinator audit | `passed` | Formulation Agent returned `ready-for-coordinator-and-user-reapproval`, `formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`. Coordinator verified hash, §14.1-only diff `34` additions/`5` deletions, revised requirements hash alignment, external-scale exact-zero selector, retained nonzero-external relative gate, unchanged thresholds/correction gates/four-channel AND/lifecycle/reference disposition, and no forbidden execution or artifact change. | `needs-user-decision` | Ask user to explicitly approve revised `formulation.md`; do not dispatch numerical-review yet | +| 2026-08-24 | Revised Stage 3 approval and Numerical/reference dispatch | `in-progress` | User explicitly approved revised `formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`. Coordinator closed REAPPROVAL-002 and prepared a bounded `numerical-review-agent` package to validate USER-DECISION-003 option 1, dimensions/predicates, shellNL readiness and reference disposition. | `needs-numerical-review` | Root profile dispatch to `numerical-review-agent`; await owner return and Coordinator audit; do not start I/O/planning/implementation | +| 2026-08-24 | Numerical/reference option 1 return and Coordinator audit | `passed` | Numerical Review Agent returned `pass-for-io-definition`; `numerical-review.md` SHA-256 `E93E0DEF1FD5ECDF956D50C6F8B8F1C073E21650E14EDC97A683DCA4688FE153`, diff `+49/-11`; `reference-model.md` byte-identical SHA-256 `44B619BE2494007D8F2F51F34B9D974F934C26818F5AB8AF2DAA288ABF78D2FC`. Coordinator verified revised branch coverage, unchanged reference disposition, reference hashes/row counts, no concrete HDF5 dataset paths, no forbidden artifact/execution scope and diff check pass. | `needs-user-decision` | Ask user to explicitly approve revised Stage 4 artifacts; do not dispatch I/O yet | +| 2026-08-24 | Revised Stage 4 approval and I/O dispatch | `in-progress` | User explicitly approved revised `numerical-review.md` SHA-256 `E93E0DEF1FD5ECDF956D50C6F8B8F1C073E21650E14EDC97A683DCA4688FE153` and unchanged `reference-model.md` SHA-256 `44B619BE2494007D8F2F51F34B9D974F934C26818F5AB8AF2DAA288ABF78D2FC`. Coordinator closed REAPPROVAL-003 and prepared a bounded `io-definition-agent` package for `io.md` only. | `needs-io-definition` | Root profile dispatch to `io-definition-agent`; await owner return and Coordinator audit; do not start planning/implementation/Harness | +| 2026-08-24 | I/O option 1 return and Coordinator audit | `passed` | I/O Definition Agent returned `ready-for-coordinator-review`; `io.md` raw SHA-256 `DB0BD8339172FD05712D2B7469966DEB0A6A82CB5A0052817F4725319E741334`, LF-normalized SHA-256 `E0C42775FF5C3963A37DF70B00044DDA244A463A6DD222975C2903A1BFA205AF`, diff `+37/-20`. Coordinator verified approved source hash alignment, residual matching-external-scale exact-zero/nonzero selector, retained nonzero relative denominator, unchanged 39-field `nsnr-log-v1` labels/order, unchanged HDF5/reference projection and dispositions, stress optional/RM3 excluded, diff check pass and reference diff clean. | `needs-user-decision` | Ask user to explicitly approve revised `io.md`; do not dispatch planning/implementation/Harness | +| 2026-08-24 | Revised Stage 5 approval and Implementation Planning revision-draft dispatch | `in-progress` | User explicitly approved revised `io.md` raw SHA-256 `DB0BD8339172FD05712D2B7469966DEB0A6A82CB5A0052817F4725319E741334`, LF-normalized SHA-256 `E0C42775FF5C3963A37DF70B00044DDA244A463A6DD222975C2903A1BFA205AF`. Coordinator closed REAPPROVAL-004 and prepared a bounded `implementation-planning-agent` package to draft exact plan/phase revisions for USER-DECISION-003 option 1 while preserving Steps 0..10 history and Step 11 blocked comparator work. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; owner returns concise revision draft only; do not materialize planning files or run Harness until user approves the draft | +| 2026-08-25 | Implementation Planning option 1 revision draft return and Coordinator audit | `passed` | Implementation Planning owner returned `draft-ready-for-user-review`, no files changed/executed. Draft proposes minimal updates to `implementation-plan.md`, Step `5/7/10/11/12` and phase indexes; Step 11 owns RED-first `NSNR-CTRL-018..021` and `NSNR-LOG-012`, minimal `nonlinear_static_control.cpp` update, comparator preservation, copied `shellNL` reference comparison and full CTest. Coordinator verified approved upstream semantics and Harness ownership boundaries. | `needs-user-decision` | Ask user to explicitly approve the planning revision draft; do not materialize or run Harness | +| 2026-08-25 | Implementation Planning revision draft approval and materialization dispatch | `in-progress` | User explicitly approved the audited Implementation Planning revision draft and requested materialization. Coordinator closed REAPPROVAL-005 and prepared bounded materialization dispatch limited to `implementation-plan.md`, Step `5/7/10/11/12`, feature index and top index. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; await materialization return and Coordinator audit; do not run Harness/CTest/code/reference/push | +| 2026-08-25 | Implementation Planning materialization return and Coordinator audit | `passed` | Owner returned `ready-for-implementation`; approved 8 outputs materialized, Step 11 reset to `pending`, top phase reset to `pending`, Steps 0..10 completed history and Step 11 partial comparator files preserved, Step 12 pending, forbidden source/include/reference/tolerance diff empty, HEAD unchanged and no execution/commit/push. | `ready-for-implementation` | Await separate explicit no-push Harness/Implementation execution request; current Executor-selected pending Step is Step 11 | +| 2026-08-25 | Step 11 no-push Harness/Implementation execution authorization | `in-progress` | User explicitly requested no-push Harness/Implementation rerun from Step 11. Coordinator preflight verified isolated linked worktree, branch `feat-nonlinear-static-newton-raphson`, HEAD `65b56b1`, Step 11 `pending` with historical `started_at`, Step 12 `pending`, Codex CLI `0.149.1`, approved `windows-msvc-ninja-debug` preset/config, runner `--disable unified_exec`, and approved dirty state with preserved comparator files. | `needs-implementation` | Launch no-push Harness Executor under DECISION-038/039 envelope; await Step 11 return; no `danger-full-access`, push, reference mutation, reference solver, Step 12, Physics or Release | +| 2026-08-25 | Step 11 reference-comparison return and REWORK-008 dispatch package | `needs-rework` | Harness exit `2`; Step 11 blocked; Step 12 pending; `step11-output.json` SHA-256 `0F3B876AF84398EB1D2C90335998115797054B012899DE27E4070A6F533EEF91`. Selector/control/log fix passed and factor-one HDF5 exists, but reference gate `15/16` failed on blocking reaction RMS. Additional read-only diagnosis shows deterministic key mapping and global equilibrium but local reaction redistribution mismatch already present in linear-limit reactions, so Correction must audit implementation-vs-upstream-contract before any production edit. | `needs-correction` | Root profile dispatch to `correction-agent` for REWORK-008 diagnostic; no tolerance/reference/HDF5 schema contract change, reference solver, reference mutation, `danger-full-access`, push, Step 12, Physics or Release | +| 2026-08-25 | REWORK-008 upstream-contract return and USER-DECISION-004 gate | `blocked` | Correction returned `needs-upstream-decision`, classification `upstream-contract` / `reference-blocking-model-adequacy-conflict`, Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`. It found no reaction computation/storage/mapping defect: residual→reaction→HDF5 mapping exact, constrained `phi=0`, global resultant matches, and local RF/RM mismatch already exists in FESA-linear versus Abaqus-linear while each solver NL≈linear. No forbidden files changed by correction; reference diff clean and HEAD unchanged. | `needs-user-decision` | USER-DECISION-004: choose local nodal reactions review-only with global equilibrium blocking, global resultant-only blocking, or independent formulation-appropriate local-reaction benchmark; do not dispatch further work before explicit choice | +| 2026-08-25 | MESH-REFINEMENT-SPIKE-001 numerical-review dispatch | `in-progress` | User added untracked main-checkout `reference/shellNL-meshfine` artifacts and explicitly approved a spike design for USER-DECISION-004 option 3 candidate validation. Coordinator verified read-only hashes/rows and feature-worktree missing state, then recorded a bounded `numerical-review-agent` package for artifact/input-equivalence/row-identity readiness only. | `needs-user-decision` | Root profile dispatch to `numerical-review-agent`; no final option selection, reference solver, artifact mutation, tolerance/comparator/HDF5 schema/implementation/Harness/Step 12/Physics/Release change | +| 2026-08-25 | MESH-REFINEMENT-SPIKE-001 diagnostic return and Coordinator audit | `passed` | Fine artifacts copied byte-identically; required displacement/reaction artifacts are valid, stress is optional inventory only with one malformed optional key. Existing executable run exited `0` and produced H5/log hashes. Translation/rotation pass common tolerance, but local RF/RM rows still fail per-row gates; inplane reaction worsens under refinement. Global resultants and free residuals are sound. The same Abaqus S4 coarse/fine pair is not an independent formulation-appropriate local-reaction benchmark. | `needs-user-decision` | Ask user to choose USER-DECISION-004; Coordinator recommends option 1 review-only local nodal rows plus blocking global equilibrium/resultants; no Harness/Step 11 rerun before approval | +| 2026-08-26 | TRANSLATION-REPORT-001 focused reporting dispatch | `in-progress` | User approved bounded focused report design for `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md`: coarse/fine U1/U2/U3 translation-only comparison with exact artifact/HDF5 identity, source-key prechecks, `docs/TOLERANCE.md`, metrics, worst rows, mesh trend and exclusions. | `needs-user-decision` | Root profile dispatch to `implementation-agent`; only the focused report may be created; do not create canonical `reference-comparison.md`, run solver/Harness/reference solver, edit code/comparator/tolerance/reference artifacts, change USER-DECISION-004, or advance Step 11/12 | +| 2026-08-26 | TRANSLATION-REPORT-001 return and Coordinator audit | `passed` | Implementation Agent returned `translation-diagnostic-pass-not-a-gate` and created only `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`. Coordinator/root audit verified exact artifact hashes, coarse/fine U-key prechecks, `docs/TOLERANCE.md` pass metrics, explicit exclusions, diff check pass, tracked reference diff clean and canonical evidence docs absent. | `needs-user-decision` | Historical pre-decision state; superseded by USER-DECISION-004 option 1 entry below. No Step 11 rerun, Step 12, Physics or Release before required upstream re-approval | +| 2026-08-26 | USER-DECISION-004 option 1 approval and requirements dispatch package | `in-progress` | User explicitly selected option 1. Coordinator recorded local nodal RF/RM as review-only/nonblocking, global resultant force/moment plus accepted free residual as blocking reaction/equilibrium evidence, verified Stage 3 formulation has no immediate semantic rework need because §11.4/§13.4 already define reactions/global resultants, and recorded the Stage 5/6 projection audit item for current-position/spatial-moment global equilibrium versus raw-residual implementation helper. | `needs-requirements` | Root profile dispatch to bounded `requirement-agent` for `requirements.md` only; after owner return, Coordinator audit and explicit user approval are required before Stage 4 | +| 2026-08-27 | REAPPROVAL-006 Requirements return and Coordinator audit | `passed` | Requirement Agent returned revised `requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`, status `draft`. Coordinator verified hash, 24/24 requirement and matrix preservation, USER-DECISION-004 option 1 semantics, AUDIT-001 Stage5/6 handoff, preserved formulation meaning, unchanged thresholds/reference immutability and no forbidden gate advancement. | `needs-user-decision` | Ask user to explicitly approve revised `requirements.md`; do not dispatch Stage 4 Numerical/reference until approval | +| 2026-08-27 | Revised Stage 1 approval and Stage 4 Numerical/reference dispatch package | `in-progress` | User explicitly approved revised `requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`. Coordinator closed Stage 1 re-approval and prepared bounded `numerical-review-agent` package requiring `fesa-numerical-review`, USER-DECISION-004 option 1 reaction disposition, coarse/fine reference role review and AUDIT-001 downstream separation. | `needs-numerical-review` | Root profile dispatch to `numerical-review-agent`; allowed outputs only `numerical-review.md` and `reference-model.md`; do not start Stage 5 | +| 2026-08-27 | REAPPROVAL-007 Numerical/reference return and Coordinator audit | `passed` | Numerical Review Agent returned `pass-for-io-definition`, blockers none; `numerical-review.md` SHA-256 `0A7224003CFF706E9B4D9F55BA2624805299FAC8F42ECD2BC37E429B26DF0091`, `reference-model.md` SHA-256 `81A82D3B367FF501F3C355F81D4E5DD4677BE58E4182E4EB8EEDBB2462FEA2CE`. Coordinator verified requirements/formulation alignment, fine-primary/coarse-companion roles, local RF/RM review-only with `RM3`/stress excluded, U blocking/UR warning-only, internal normalized `1e-10` global balance gate separated from external `docs/TOLERANCE.md`, NSNR-069 free residual gate and AUDIT-001 Stage5/6 handoff. | `needs-user-decision` | Ask user to explicitly approve revised Stage 4 artifacts; do not dispatch Stage 5 I/O yet | +| 2026-08-27 | Revised Stage 4 approval and Stage 5 I/O dispatch package | `in-progress` | User explicitly approved revised `numerical-review.md` SHA-256 `0A7224003CFF706E9B4D9F55BA2624805299FAC8F42ECD2BC37E429B26DF0091` and `reference-model.md` SHA-256 `81A82D3B367FF501F3C355F81D4E5DD4677BE58E4182E4EB8EEDBB2462FEA2CE`. Coordinator closed REAPPROVAL-007 and prepared bounded `io-definition-agent` package requiring `fesa-io-contract`, USER-DECISION-004 option 1 HDF5/reference projection update, AUDIT-001 logical quantity separation and no parser/API/code/reference changes. | `needs-io-definition` | Root profile dispatch to `io-definition-agent`; expected output only `io.md`; await owner return and Coordinator audit; do not start Stage 6/Harness | +| 2026-08-27 | REAPPROVAL-008 I/O return and Coordinator audit | `passed` | I/O Definition Agent returned `ready-for-coordinator-review`, blockers none; `io.md` raw SHA-256 `C7400C2B1454BE7287EE22D18BB28DA7AFB27FE6F8287783BB83769A4AB8D83C`, LF-normalized SHA-256 `BF775990D83D95B470F814BE57C9676305119D97E48225E231D4926E7809029F`. Coordinator verified approved source hashes, HDF5 schema v1 authority, `/global/equilibrium` applied-plus-reaction current-position/spatial-moment semantics, distinct free-residual/constrained-resultant/balance-error projections, local RF/RM review-only, `RM3`/stress excluded, U blocking/UR warning-only, fine primary/coarse companion and internal `1e-10` versus external `docs/TOLERANCE.md` boundary. | `needs-user-decision` | Ask user to explicitly approve revised `io.md`; do not start Stage 6 planning/materialization/Harness before approval | +| 2026-08-27 | Revised Stage 5 approval and Stage 6 planning re-entry draft dispatch | `in-progress` | User explicitly approved revised `io.md` raw SHA-256 `C7400C2B1454BE7287EE22D18BB28DA7AFB27FE6F8287783BB83769A4AB8D83C`. Coordinator closed REAPPROVAL-008 and prepared bounded DRAFT ONLY `implementation-planning-agent` package requiring `fesa-cpp-msvc-tdd` plus project-local `harness`; the owner must audit existing Step 11+ plan/phase state and return a chat draft only. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; no planning-file materialization, Harness, build, CTest, solver, reference solver, source/test/CMake/reference/tolerance edit, commit or push before draft approval | +| 2026-08-27 | REAPPROVAL-009 Planning draft return and Coordinator audit | `passed` | Planning Agent returned `draft-ready-for-user-review`, blockers none, no files changed/executed. Coordinator verified the draft is a minimal Step 11/12 revision: preserve Steps `0..10`, reset/rename only Step `11` after approval, keep Step `12` pending, cover AUDIT-001 current-arm/spatial-moment projections, no new HDF5 dataset/public header, internal/external tolerance separation, fine primary/coarse companion and approved Ninja/MSVC commands. | `needs-user-decision` | Ask user to approve or reject the Stage 6 revision draft; do not materialize planning files or run Harness until explicit approval | +| 2026-08-27 | REAPPROVAL-009 draft approval and MATERIALIZATION-003 dispatch package | `in-progress` | User explicitly approved the Coordinator-audited 2-Step draft. Coordinator prepared materialization-only dispatch to `implementation-planning-agent`, required `fesa-cpp-msvc-tdd` plus project-local `harness`, fixed current input hashes and allowed only `implementation-plan.md`, `phases/index.json`, phase index, `step11.md` and `step12.md` as outputs. | `needs-implementation-plan` | Root profile dispatch to `implementation-planning-agent`; no Harness/build/CTest/solver/reference solver, code/tests/CMake/upstream/reference/tolerance edit, evidence-doc creation, commit or push | +| 2026-08-27 | MATERIALIZATION-003 return and Coordinator audit | `passed` | Planning Agent materialized exactly the allowed five outputs: `implementation-plan.md` `758F8F5BB224E88864338C48221D53D4BD2F8633E04C9F2136FFF9E2D1BADFB8`, `phases/index.json` `536D4BF9427792ECCCE4C9A2980210E050035D0202DB8A700BDD671E0DB218C7`, phase index `D808D5C0F389B444A529FC81A48B5726E4CF282CA51B62F3AECAC4D89EA6A5BF`, `step11.md` `D324F7E1495A25B3B8CEA7A2A6C68D559F8336C3A527A164ECD2D0A82C20A526`, `step12.md` `F2831F7E802A40631C91E638C9079508EF1A97CFE46FACC51DCBB4EC55337452`. Coordinator verified JSON parse, 24/24 requirements mapping, clean placeholder scan, scoped `git diff --check` pass, `NSNR-PROC-019` collision handling, Step `11` pending, Step `12` pending, Steps `0..10` preserved, canonical evidence docs absent, tracked reference diff clean, and no execution/commit/push. | `needs-implementation` | Await separate explicit no-push Step 11 Harness/Implementation request; do not run Harness automatically | +| 2026-08-27 | Step 11 no-push Harness/Implementation execution approval | `in-progress` | User explicitly approved `Harness/Implementation 시작`. Coordinator verified current runner CLI takes slug `nonlinear-static-newton-raphson`, current phase has Step `11` pending and Step `12` pending, and prepared a no-push `implementation-agent` via Harness dispatch for Step `11` only under DECISION-038/039. Step `12` is outside this approval; current runner loops over pending steps, so root/Executor must enforce the one-step boundary or stop before Step `12`. | `needs-implementation` | Root may run `python scripts/execute.py nonlinear-static-newton-raphson` only under the recorded no-push Step 11 envelope; await Step `11` return | +| 2026-08-27 | Step 11 execution recurrent runtime block | `blocked` | DECISION-042 Step11-only execution used the approved no-push envelope but timed out after `1800s`; `step11-output.json` SHA-256 `9FCBC5CE10E2C1B931EC16CADFADF7684C45FBB0B11D9A404922D607EB16706D`, exit `124`, stderr `Codex timed out after 1800 seconds.`, stdout nested command executions stuck `in_progress`. Retry was prevented by secondary CP949 `UnicodeEncodeError` printing `↻`. Read-only shell smokes under tested flag/env variants did not complete. Step `11` and Step `12` remain pending; no production/test/reference edits, commit or push. | `needs-user-decision` | No automatic correction dispatch; user must choose a runtime/runner route before any Step `11` rerun | +| 2026-08-28 | USER-DECISION-005 option A and Step 11 runtime-smoke dispatch | `in-progress` | User approved option A: use official current Codex CLI `0.150.1` to restore the runtime/update path, prove same `workspace-write`/filtered WindowsApps PATH/`CODEX_HOME`/VsDevCmd/hooks/Terra-xhigh/`--disable unified_exec` envelope with a bounded nested shell smoke, then rerun only Step `11` no-push if the smoke passes. | `needs-implementation` | Root may perform the Codex `0.150.1` smoke preflight and, only on pass, launch Step `11` Harness/Implementation under the active dispatch; Step `12`, push, `danger-full-access`, reference solver/artifact mutation and manual hooks remain forbidden | +| 2026-08-28 | USER-DECISION-005A smoke pass and Step 11 dispatch confirmation | `passed` | Root supplied smoke success evidence: Codex CLI `0.150.1`, app SHA-256 `CBD657DDFE151D1A6EBAD660BEFFDBD3265DC5AFF4B3A6095124D3E2F0156F2F`, doctor `20 ok/0 fail`, same-envelope smoke `93.621s`, nested exit `0`, command_execution completed, command exit `0`, output `CODEX_SHELL_SMOKE_OK`, stderr empty. Coordinator updated `BLOCKER-002` to smoke-passed and confirmed Step `11` dispatch. | `needs-implementation` | Historical smoke gate pass; superseded by the Step `11` blocked return below | +| 2026-08-28 | USER-DECISION-005A Step 11 blocked return | `blocked` | Step `11` only no-push Harness ran after smoke pass; runner exit `2`; Step `11` blocked at `2026-08-28T02:03:23+09:00`; Step `12` pending. Current-arm/spatial projection reproduced and NSNR-069 free residual accepted, but coarse/fine factor-one global moment balance metrics `1.413750912531167e-10`/`2.7454660159924086e-10` exceed approved `1e-10`; CTest `295` and `299` failed. `step11-output.json` SHA-256 `D56EB816DDD63E71D8880CA5AF39C10A38E2BF562A28207D26417716154F1872`; no commits/push; reference hashes/length/mtimes unchanged and `git diff -- reference` empty. | `needs-user-decision` | USER-DECISION-006: choose an upstream convergence-acceptance/global-balance-gate path before any rework, Step `11` retry, Step `12`, Physics or Release | +| 2026-08-28 | USER-DECISION-006 superseding global balance threshold and Stage 4 dispatch package | `in-progress` | User withdrew the entire `fesa.env`/runtime-config discussion and superseded the prior moment-only `1e-9` decision. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8`; all formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation are preserved. User delegated Stage 4/5/6 reapproval and Step `11` completion without intermediate approval waits, bounded to this threshold-only change. | `needs-numerical-review` | Root/profile dispatch to `numerical-review-agent` with `fesa-numerical-review`; allowed outputs only `numerical-review.md` and `reference-model.md`; do not start Stage 5, planning, Harness, Step `11` retry, Step `12`, reference solver, push or `danger-full-access` before owner return and Coordinator audit | +| 2026-08-28 | REAPPROVAL-010 Stage 4 return and Coordinator audit | `passed` | Numerical Review Agent returned `pass-for-io-definition`, blockers none; `numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C`, `reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`. Coordinator verified required output paths/status, both normalized factor-one global force/moment gates `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, unchanged dispositions and no forbidden Stage 5/6/source/reference advancement. | `needs-io-definition` | Prepare bounded Stage 5 `io-definition-agent` dispatch; expected output only `io.md` | +| 2026-08-28 | REAPPROVAL-011 Stage 5 I/O dispatch package | `in-progress` | Coordinator prepared bounded `io-definition-agent` package requiring `fesa-io-contract` and the passed Stage 4 hashes. Scope is limited to `io.md` global balance gate literals/diagnostics/handoff for force and moment `<=1e-8`; HDF5 schema/projections/reference paths/dispositions and `docs/TOLERANCE.md` separation must be preserved. | `needs-io-definition` | Root/profile dispatch to `io-definition-agent`; await owner return and Coordinator audit; do not start Stage 6 planning/Harness/Step 11 retry | +| 2026-08-28 | REAPPROVAL-011 Stage 5 I/O return and Coordinator audit | `passed` | I/O Definition Agent returned `ready-for-coordinator-review`, blockers none; `io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. Coordinator verified both coarse/fine global force and moment internal gates `<=1e-8`, unchanged HDF5 schema/projections/identities/scales/zero-scale/NSNR-069/reference paths and external-only `docs/TOLERANCE.md`, and no `fesa.env`/runtime-config direction. | `needs-implementation-plan` | Prepare bounded Stage 6 `implementation-planning-agent` materialization dispatch; do not run Harness or edit planning files as Coordinator | +| 2026-08-28 | REAPPROVAL-012 Stage 6 planning materialization dispatch package | `in-progress` | Coordinator prepared bounded `implementation-planning-agent` package requiring `fesa-cpp-msvc-tdd` plus project-local `harness`. Scope is limited to `implementation-plan.md`, `phases/index.json`, phase index, `step11.md` and `step12.md`; update only obsolete `1e-10` global balance references to force/moment `<=1e-8`, preserve Steps `0..10` and dirty Step `11` implementation work, reset top/Step `11` for rerun only after materialization evidence, and keep Step `12` pending. | `needs-implementation-plan` | Root/profile dispatch to `implementation-planning-agent`; await materialization return and Coordinator audit; no Harness/build/CTest/solver/reference solver, implementation, commit or push | +| 2026-08-28 | REAPPROVAL-012 Stage 6 planning materialization return and Coordinator audit | `passed` | Planning owner returned `ready-for-implementation`, blockers none; hashes verified for `implementation-plan.md` `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8`, and `step12.md` `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. Coordinator/root verified JSON parse, top/Step `11` pending, Step `12` pending, Steps `0..10` completed metadata retained, Step `11.started_at` retained, `NSNR-REF-024..025` gate requirements present, and no execution. | `needs-implementation` | Prepare Step `11` only no-push `implementation-agent` Harness package under USER-DECISION-005A; do not start Step `12` | +| 2026-08-28 | STEP11-EXECUTION-003 global balance `1e-8` no-push dispatch package | `in-progress` | Coordinator prepared bounded Step `11` only package for `implementation-agent` via Harness. Runner/Executor owns branch, pending selection, retry, timestamps, commits, advancement and top-level phase status; Implementation Agent owns only Step `11` RED -> observed failure -> minimal GREEN -> VERIFY. Package requires `NSNR-REF-022` old-gate RED plus test-first `NSNR-REF-024..025`, no `fesa.env`/product config, reference immutability, no push and no Step `12` auto-advance. | `needs-implementation` | Root/Executor may launch Step `11` only under USER-DECISION-005A; await owner return and stop before Step `12` | +| 2026-08-28 | STEP11-EXECUTION-003 runtime/environment return and Coordinator audit | `needs-rework` | Step `11` only wrapper attempt 1 timed out and attempt 2 selected user-local WindowsApps `pwsh.exe`, producing `CreateProcessAsUserW failed: 5 (Access denied)` on every exec. Stop-hook CTest evidence nevertheless passed all `302/302`, including the Step `11` global balance/reference tests; Step `11` remains pending because the agent did not update status/summary and Executor did not commit. Root stopped retry 3 and cleaned PIDs `4240`/`12000`/`16924`. | `needs-correction` | Dispatch bounded report-only `correction-agent` for launch PATH filter diagnosis; no Step `11` rerun or Step `12` before correction return | +| 2026-08-28 | REWORK-009 user-local WindowsApps `pwsh.exe` launch filter return and Coordinator audit | `passed` | Correction Agent returned `corrected-for-implementation-rerun`, blockers none, `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator/root verified Section 14: all PATH entries matching `\\WindowsApps(?:\\|$)` filtered, `pwsh` unresolved, system Windows PowerShell selected, exact `FESA_CODEX_SHELL_SMOKE_OK`, recovered RED->GREEN, focused passes, Stop `302/302`, no forbidden edits/execution/commit/push/reference mutation. | `needs-implementation` | Issue one bounded Step `11` only no-push rerun package using corrected launch PATH filter | +| 2026-08-28 | STEP11-EXECUTION-004 all-WindowsApps-filter Step 11 rerun package | `in-progress` | Coordinator prepared bounded `implementation-agent`/Harness package: run only Step `11`, preserve fixed `<=1e-8` force/moment gates and all Stage 4/5/6 contracts, use Codex CLI `0.150.1` with `CODEX_HOME`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and child PATH filtered by `\\WindowsApps(?:\\|$)`. | `needs-implementation` | Root/Executor may launch Step `11` only; hard-stop before Step `12`; no push, `danger-full-access`, reference mutation/solver or manual hooks | -- current_dispatch: `stage-6-step1-no-push-harness-rerun` +- current_dispatch: `STEP11-EXECUTION-004-all-windowsapps-filter-step11-only-rerun-root-executor-required` - current_workflow_state: `needs-implementation` -- next_gate_requires_user_approval: `false` for Step 1 no-push Harness rerun; `true` before any `danger-full-access`, Visual Studio fallback, reference solver, push, or manual Step 2 advancement +- next_gate_requires_user_approval: `false` only for the delegated threshold-only Stage 4 -> Stage 5 -> Stage 6 planning/materialization -> Step `11` path; `true` for any change beyond fixed `<=1e-8` global force/moment balance gates, `fesa.env`/runtime config, formula/source identity/zero-scale/NSNR-069/HDF5/reference/TOLERANCE change, Step `12`, Physics or Release. ## 5. Risk, Blocker, and User-Decision Register @@ -200,12 +252,42 @@ | REWORK-001 | report-contract | Stage 4 returned evidence had a cross-report contradiction on stress CSV and `RM3` comparison disposition. Corrected reports now consistently treat stress CSVs as optional read-only inspection/order evidence only and exclude `RM3` from comparison. | `numerical-review-agent` | closed | | REWORK-002 | io-contract | Stage 5 `io.md` bounded correction completed: public CLI `--output` substring rejection, Newton iteration log schema, exact `VARIABLE=PRESELECT` ignored-with-warning handling, repository-wide non-Newton log lifecycle, DECISION-028/029/030 path/log lifecycle and collision semantics are now recorded in `io.md`. | `io-definition-agent` | closed | | REWORK-003 | harness | Stage 6 attempt 1 timeout/no-retry defect is repaired in Harness infrastructure: timeouts now return structured exit `124` through `MAX_RETRIES`, and implementation-agent profile settings are passed to Codex. Same normalized failure attempt count remains 1; attempt 2 is authorized and same-class recurrence stops automatic rework. | `implementation-agent` via Harness Executor | closed | -| BLOCKER-002 | harness-runtime | Nested Codex Windows shell tool execution hung inside Implementation/Correction Codex sessions. It is mitigated for the authorized rerun by Codex CLI `0.149.1`, aligned `CODEX_HOME`, filtered WindowsApps PATH entries, smoke success with exact `CODEX_SHELL_SMOKE_OK` output, and REWORK-004 runner retention of `--disable unified_exec`. Reopen only if the same hang recurs under the exact approved envelope. | external Codex runtime / user-root decision | mitigated | +| BLOCKER-002 | harness-runtime | Closed for USER-DECISION-005A route: nested Codex Windows shell tool execution hung under the approved Codex CLI `0.149.1` envelope in DECISION-042, but Codex CLI `0.150.1` same-envelope smoke passed and the Step `11` Harness rerun reached deterministic CTest/reference-gate failures instead of a shell hang. Recurrence of nested command `in_progress` timeout reopens this blocker. | external Codex runtime / user-root decision | closed-smoke-passed-step11-executed | | BLOCKER-003 | dispatch-runtime | This Coordinator runtime exposed no callable `spawn_agent` tool, but root successfully performed the required Correction Agent profile dispatch. | coordinator/root tooling | closed | | REWORK-004 | harness | Corrected: `scripts/execute.py` now passes adjacent `--disable`, `unified_exec` immediately after `codex exec`; `tests/test_execute.py` asserts this while preserving terra/xhigh routing; `corrections.md` records RED/GREEN/VERIFY and no Harness phase/source C++/CMake/reference edits. | `correction-agent` | closed | | REWORK-005 | harness | FileTracker Correction returned `blocked`: VS18/MSBuild `FileTracker` `E_ACCESSDENIED` is classified as environment-owned sandbox/MSBuild interaction; no safe Visual Studio `workspace-write` workaround was proven. User resolved the route by approving option A Ninja/MSVC validation. | `correction-agent` | closed-by-USER-DECISION-002A | | REWORK-006 | harness | Corrected: approved option A is expressed through tracked `CMakePresets.json`, ignored `.harness/config.json`, preset-based implementation-plan/step verification commands, RED-first contract test, workspace-write Ninja/MSVC blocker-clear evidence, and blocked-to-pending phase reset only after pass. | `correction-agent` | closed | +| REWORK-007 | upstream-contract | Step 11 reference comparison is blocked because the approved residual-moment convergence denominator makes no-applied-moment shellNL structurally nonconvergent for any nonzero rotational residual. Correction changed only `corrections.md` and returned `needs-upstream-decision`. | `correction-agent` | closed-upstream-contract | +| REWORK-008 | upstream-contract | Correction returned `needs-upstream-decision`, classification `reference-blocking-model-adequacy-conflict`: local nodal RF/RM blocking assumes unsupported Abaqus S4 versus FESA MITC4 distribution adequacy, while reaction pipeline/global equilibrium evidence is sound. Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`. | `correction-agent` | closed-upstream-contract | +| USER-DECISION-004 | user decision | User explicitly approved option 1 on `2026-08-26`: local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` rows are review-only/nonblocking with deterministic source-key/schema/finite/inventory/error reporting; `RM3` remains excluded; blocking reaction/equilibrium evidence is factor-one global resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence. No tolerance/comparator/reference relaxation is authorized. | user via Coordinator | closed | +| REAPPROVAL-006 | upstream-reapproval | USER-DECISION-004 option 1 Stage 1 propagation completed: requirements owner/Coordinator audit passed for `requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`, and the user explicitly re-approved that hash on `2026-08-27`. Stage 3 formulation has no immediate dispatch because §11.4/§13.4 already define residual/reaction/global-resultant semantics. | `requirement-agent` / Coordinator / user | closed | +| REAPPROVAL-007 | upstream-reapproval | USER-DECISION-004 option 1 Stage 4 propagation completed: `numerical-review.md` SHA-256 `0A7224003CFF706E9B4D9F55BA2624805299FAC8F42ECD2BC37E429B26DF0091`, `reference-model.md` SHA-256 `81A82D3B367FF501F3C355F81D4E5DD4677BE58E4182E4EB8EEDBB2462FEA2CE`, owner status `pass-for-io-definition`, Coordinator audit passed, blockers none, and the user explicitly approved both hashes on `2026-08-27`. | `numerical-review-agent` / Coordinator / user | closed | +| REAPPROVAL-008 | upstream-reapproval | USER-DECISION-004 option 1 Stage 5 propagation completed: `io.md` raw SHA-256 `C7400C2B1454BE7287EE22D18BB28DA7AFB27FE6F8287783BB83769A4AB8D83C`, LF-normalized SHA-256 `BF775990D83D95B470F814BE57C9676305119D97E48225E231D4926E7809029F`; owner/Coordinator audit passed and the user explicitly approved the raw hash on `2026-08-27`. | `io-definition-agent` / Coordinator / user | closed | +| REAPPROVAL-009 | planning-reapproval | Stage 6 implementation planning re-entry draft returned `draft-ready-for-user-review`; Coordinator audit passed; user explicitly approved the draft on `2026-08-27`. Draft proposes only Step `11`/`12` replanning for USER-DECISION-004 option 1 and AUDIT-001 while preserving Steps `0..10`, current uncommitted Step 11 work, approved contracts, no-new-dataset semantics and no execution. | `implementation-planning-agent` / Coordinator / user | closed | +| MATERIALIZATION-003 | planning-materialization | Passed: Planning Agent materialized exactly `implementation-plan.md` SHA-256 `758F8F5BB224E88864338C48221D53D4BD2F8633E04C9F2136FFF9E2D1BADFB8`, `phases/index.json` SHA-256 `536D4BF9427792ECCCE4C9A2980210E050035D0202DB8A700BDD671E0DB218C7`, `phases/nonlinear-static-newton-raphson/index.json` SHA-256 `D808D5C0F389B444A529FC81A48B5726E4CF282CA51B62F3AECAC4D89EA6A5BF`, `step11.md` SHA-256 `D324F7E1495A25B3B8CEA7A2A6C68D559F8336C3A527A164ECD2D0A82C20A526`, and `step12.md` SHA-256 `F2831F7E802A40631C91E638C9079508EF1A97CFE46FACC51DCBB4EC55337452`. Coordinator audit found JSON parse clean, no placeholders, scoped `git diff --check` pass, changed planning outputs within allowlist, Step `11`/top phase pending, Steps `0..10` preserved, Step `12` pending, reference diff clean and no Harness/build/solver execution. | `implementation-planning-agent` / Coordinator | passed | +| DECISION-042 | user approval | User explicitly approved `Harness/Implementation 시작` for no-push Step `11` execution only. The verified command is `python scripts/execute.py nonlinear-static-newton-raphson`; Step `12` is not authorized and must not start before Coordinator audit. | user via Coordinator | closed | +| USER-DECISION-005 | user decision | User approved option A on `2026-08-28`: use official current Codex CLI `0.150.1` to repair/validate the runtime route, run a bounded same-envelope nested shell smoke, and only if it passes rerun Step `11` no-push. Smoke passed with app SHA-256 `CBD657DDFE151D1A6EBAD660BEFFDBD3265DC5AFF4B3A6095124D3E2F0156F2F`, doctor `20 ok/0 fail`, duration `93.621s`, nested exit `0`, command_execution completed and output `CODEX_SHELL_SMOKE_OK`. This does not authorize `danger-full-access`, reference solver/artifact changes, push, Step `12`, manual hooks or runner/source/test/phase edits outside the Step `11` contract. | user via Coordinator | closed-option-A-smoke-passed | +| USER-DECISION-006 | user decision | Closed/delegated superseding decision on `2026-08-28`: withdraw the entire `fesa.env`/runtime-config discussion; do not add `fesa.env`, config parsing, runtime API or product behavior. Current authoritative contract fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8`, preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Coordinator is delegated to run Stage 4/5/6 reapproval and Step `11` no-push completion without intermediate approval waits, but must stop on any change beyond this fixed threshold. | user via Coordinator | closed-delegated | +| REAPPROVAL-010 | upstream-reapproval | Passed under delegated USER-DECISION-006 authority: Stage 4 owner returned `pass-for-io-definition`, blockers none, `numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; Coordinator audit passed against the threshold-only package. | `numerical-review-agent` / Coordinator | passed | +| REAPPROVAL-011 | upstream-reapproval | Passed under delegated USER-DECISION-006 authority: Stage 5 owner returned `ready-for-coordinator-review`, blockers none, `io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; Coordinator audit passed against the threshold-only package with schema/projection/reference/TOLERANCE boundaries preserved. | `io-definition-agent` / Coordinator | passed | +| REAPPROVAL-012 | planning-materialization | Passed under delegated USER-DECISION-006 authority: Planning owner returned `ready-for-implementation`, blockers none; `implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8`, `step12.md` `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`; Coordinator audit passed. | `implementation-planning-agent` / Coordinator | passed | +| STEP11-EXECUTION-003 | implementation-dispatch | Needs rework: Step `11` only no-push wrapper attempt 1 timed out and attempt 2 hit inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe` with `CreateProcessAsUserW failed: 5`; Stop-hook CTest evidence passed `302/302`, but Step `11` status/summary/commit are absent. | `implementation-agent` / Harness Executor / Coordinator | needs-rework | +| REWORK-009 | harness-environment | Passed: Correction Agent diagnosed the user-local WindowsApps `pwsh.exe` launch filter miss and proved an all-`WindowsApps` PATH-filter same-envelope shell smoke. Output `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`; changed `corrections.md` only; no runner/source/test/CMake/phase/upstream/reference/tolerance edits. | `correction-agent` / Coordinator | passed | +| STEP11-EXECUTION-004 | implementation-dispatch | In progress/dispatch-ready: one bounded Step `11` only no-push Harness rerun is authorized under corrected all-WindowsApps child PATH filter. Step `12` is not authorized; same WindowsApps `pwsh.exe` access-denied recurrence must stop without automatic retry. | `implementation-agent` / Harness Executor / Coordinator | in-progress | +| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed Stage 4, Stage 5, Stage 6 planning and REWORK-009 profile dispatches; the current Step `11` rerun package is ready, but root/Executor launch is still required before owner evidence can be produced. | coordinator/root tooling | open-root-executor-required | +| AUDIT-001 | projection-implementation | Stage 5 `io.md` now separates global applied+reaction balance error, constrained reaction resultant and accepted free residual as distinct deterministic HDF5 projections. Stage 6 planning/implementation must still update tests/implementation so `/global/equilibrium` uses current nodal positions and spatial physical nodal moments about global origin instead of raw full residual, initial coordinates or raw rotational residual shortcuts for general supported nonzero prescribed displacement/rotation cases. | `implementation-planning-agent` / `implementation-agent` | open | +| MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | +| TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | | USER-DECISION-002 | user decision | User explicitly chose option A: approve Ninja/MSVC evidence contract for Stage 6 continuation. Option B `danger-full-access` and option C external sandbox wait are not selected. | user via Coordinator | closed | +| USER-DECISION-003 | user decision | User approved option 1: if the matching external residual-channel scale is exact zero, use the existing typed absolute residual gate; keep current relative denominator when the external scale is nonzero. This starts required upstream re-approval in order: requirements NSNR-069, formulation §14.1, numerical-review, I/O, then implementation-plan/phase steps before implementation rerun. | user via Coordinator | closed | +| REAPPROVAL-001 | upstream-reapproval | USER-DECISION-003 option 1 Stage 1 propagation completed: requirements owner return and Coordinator audit passed for `requirements.md` SHA-256 `89B6AEC25BD6AF5B79D328EEF63359A82DDB9402AE9482E3082A70C474A7B8B8`, and the user explicitly re-approved that hash. | `requirement-agent` / user via Coordinator | closed | +| REAPPROVAL-002 | upstream-reapproval | USER-DECISION-003 option 1 Stage 3 propagation completed: formulation owner return and Coordinator audit passed for `formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, and the user explicitly re-approved that hash. | `formulation-agent` / user via Coordinator | closed | +| REAPPROVAL-003 | upstream-reapproval | USER-DECISION-003 option 1 Stage 4 propagation completed: Numerical Review owner return and Coordinator audit passed for `numerical-review.md` SHA-256 `E93E0DEF1FD5ECDF956D50C6F8B8F1C073E21650E14EDC97A683DCA4688FE153`, `reference-model.md` remained byte-identical at SHA-256 `44B619BE2494007D8F2F51F34B9D974F934C26818F5AB8AF2DAA288ABF78D2FC`, and the user explicitly re-approved both hashes. | `numerical-review-agent` / user via Coordinator | closed | +| REAPPROVAL-004 | upstream-reapproval | USER-DECISION-003 option 1 Stage 5 propagation completed: I/O owner return and Coordinator audit passed for `io.md` raw SHA-256 `DB0BD8339172FD05712D2B7469966DEB0A6A82CB5A0052817F4725319E741334`, LF-normalized SHA-256 `E0C42775FF5C3963A37DF70B00044DDA244A463A6DD222975C2903A1BFA205AF`, and the user explicitly re-approved both hashes. | `io-definition-agent` / user via Coordinator | closed | +| REAPPROVAL-005 | planning-reapproval | USER-DECISION-003 option 1 Stage 6 planning propagation draft passed Coordinator audit and the user explicitly approved materialization on `2026-08-25`. | `implementation-planning-agent` / user via Coordinator | closed | +| MATERIALIZATION-002 | planning-materialization | User-approved Stage 6 planning revision materialized only in `implementation-plan.md`, `step5.md`, `step7.md`, `step10.md`, `step11.md`, `step12.md`, feature index and top index; Steps 0..10 history/commits and partial Step 11 comparator files are preserved, Step 11/top status reset to `pending`, and Step 12 remains `pending`. | `implementation-planning-agent` | closed | +| DECISION-040 | user approval | User explicitly approved the audited Implementation Planning revision draft and requested materialization. This approval does not authorize Harness, CTest, code/test/CMake/source edits, reference artifact changes, commit, or push. | user via Coordinator | closed | +| DECISION-041 | user approval | User explicitly requested no-push Harness/Implementation rerun from Step 11 under DECISION-038/039: Codex CLI `0.149.1`, aligned `CODEX_HOME`, launch-env WindowsApps PATH filtering, `workspace-write`, hooks retained, `--disable unified_exec`, VsDevCmd x64, dependency env vars, approved Ninja/MSVC Debug preset, no `danger-full-access`, no push, no reference solver and no reference artifact mutation. | user via Coordinator | closed | | RISK-001 | architecture | 기존 `LinearStaticAnalysis` private lifecycle은 단일 factorization/substitution과 final frame만 소유하므로 nonlinear increment/iteration/state commit을 삽입하면 ADR 경계를 위반한다. | `coordinator-agent` routing | open | | RISK-002 | scope | `Newton–Raphson`은 solution algorithm이고 geometric/material/contact nonlinearity 범위를 단독으로 결정하지 않는다. | `requirement-agent` | mitigated by DECISION-001 | | RISK-003 | contract | 현재 `Element`는 displacement-dependent residual/consistent tangent/trial state 계약이 없고 `AnalysisState`는 nonlinear history를 소유하지 않는다. | downstream formulation/architecture gates | open | @@ -254,11 +336,12 @@ ## 6. Rework-Loop Control and Stop Condition -- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 2; `harness-msbuild-filetracker-eaccessdenied-workspace-write`: 2 +- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 3; `harness-console-cp949-retry-glyph-unicodeencodeerror`: 1; `harness-msbuild-filetracker-eaccessdenied-workspace-write`: 2; `implementation-shellnl-nonlinear-nonconvergence-no-hdf5`: 1; `reference-blocking-model-adequacy-conflict`: 1; `upstream-global-moment-balance-gate-threshold-conflict`: 1; `harness-launch-path-filter-missed-user-windowsapps-pwsh-access-denied`: 2 - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. -- correction_cycle_authorization: REWORK-006 is closed and no correction dispatch is active. Step 1 no-push Harness rerun is authorized under the approved Ninja/MSVC workspace-write envelope; no Step 2 advancement, push, `danger-full-access`, Visual Studio fallback, or reference solver/artifact action is authorized outside Executor-owned progression. +- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, and REWORK-009 is now passed. STEP11-EXECUTION-004 is the only active implementation dispatch; same WindowsApps `pwsh.exe` access-denied recurrence after the corrected filter stops without another automatic retry. +- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, and REWORK-009 environment correction is passed. Current delegated order is Step `11` no-push Harness/Implementation rerun with corrected all-WindowsApps filter. No intermediate user approval wait is required within the fixed `<=1e-8` global force/moment threshold scope, but runner/test/source/phase/upstream/reference/tolerance edits require separate approval. ## 7. Final Workflow Closure @@ -268,11 +351,12 @@ ## 8. No-Change Assertion -- source_code: Step 1 Implementation Agent left uncommitted production changes in `include/fesa/model/domain.h`, `include/fesa/model/model_types.h`, `src/fesa/io/abaqus/domain_mapping_context.cpp`, and `src/fesa/model/domain.cpp`; Coordinator did not edit source code. -- tests: Step 1 Implementation Agent left uncommitted C++ test changes in `tests/unit/io/abaqus/domain_mapper_test.cpp`, `tests/unit/io/abaqus/domain_mapping_components_test.cpp`, `tests/unit/model/domain_test.cpp`, and `tests/unit/model/model_types_test.cpp`; Coordinator did not edit tests. -- CMake: `CMakeLists.txt` 변경 없음; REWORK-006 Correction added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation; Coordinator did not edit CMake configuration. -- reference_artifacts: 생성·수정·rename 없음 +- source_code: Steps 0..10 implementation source changes are committed through Harness; current Step 11 uncommitted implementation edits are preserved, including USER-DECISION-005A current-arm/spatial projection and USER-DECISION-006 fixed `<=1e-8` global balance work. Coordinator did not edit source code. +- tests: Current Step 11 uncommitted comparator/test edits are preserved. Recovered rollout evidence shows old-gate RED failure, minimal GREEN for `<=1e-8`, focused procedure/writer/log/reference tests passing, and latest Stop-hook CTest evidence `302/302` passed. Coordinator did not edit tests. +- CMake: Step 11 owner modified `tests/CMakeLists.txt`; REWORK-006 added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation. Coordinator did not edit CMake configuration. +- reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 -- phase_files: Executor/Correction updated `phases/index.json` and `phases/nonlinear-static-newton-raphson/index.json`; Step 0 is completed and committed, Step 1 is reset to `pending` after REWORK-006 blocker-clear evidence, and Steps 2..12 are pending. Coordinator did not edit phase files. -- Harness: REWORK-006 Correction updated `.gitignore`, `.harness/config.example.json`, and created ignored `.harness/config.json` for Ninja/MSVC preset selection; no Harness Python production change was required. Coordinator did not run Harness/phase/build/test, advance Step 2, use `danger-full-access`, clean build outputs, commit or push. -- feature_documents: REWORK-006 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` SHA-256 `7FA66A14E694D0451B4422BB5A233E117F2100231A9644771EFD428AF7AD6B81` and `implementation-plan.md`; this coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, `reference-comparison.md` are still absent. +- phase_files: REAPPROVAL-012 Planning owner updated `phases/index.json` and `phases/nonlinear-static-newton-raphson/index.json`; top phase is now `pending`, Steps 0..10 remain completed with existing metadata, Step 11 is `pending` as `equilibrium-projection-and-reference-gate` with historical `started_at=2026-08-24T15:49:08+09:00` retained, and Step 12 is pending. Coordinator did not edit phase files. +- Harness: Historical Step `11` executions include DECISION-042 timeout, USER-DECISION-005A `1e-10` global-moment blocker, then REAPPROVAL-012 reset for fixed `<=1e-8`. STEP11-EXECUTION-003 did not complete Harness metadata because nested Codex selected inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe`; REWORK-009 is now passed and STEP11-EXECUTION-004 is the active Step `11` rerun package with all-WindowsApps child PATH filtering. Step `11` and top phase remain `pending`; Step `12` remains pending and outside the active dispatch. Coordinator did not run Harness/phase/build/test command, advance Step 12, use `danger-full-access`, clean build outputs, commit or push. +- feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` SHA-256 `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index SHA-256 `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. Implementation Agent created only `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`. This coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, and canonical `reference-comparison.md` are still absent. +- correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. diff --git a/docs/nonlinear-static-newton-raphson/corrections.md b/docs/nonlinear-static-newton-raphson/corrections.md index 58d6ddb..98a7e94 100644 --- a/docs/nonlinear-static-newton-raphson/corrections.md +++ b/docs/nonlinear-static-newton-raphson/corrections.md @@ -13,7 +13,7 @@ `implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 생성되지 않았으므로 현재 Coordinator failure evidence와 Executor의 `step0-output.json` 및 `step1-output.json`을 source failure report로 사용했다. -Sections 2-6의 Codex `0.147.0` 내용은 initial correction history이고 Sections 7-9는 REWORK-004 history다. Section 10은 FileTracker diagnosis history이며 USER-DECISION-002 option A 이후 current correction과 status는 Section 11이 supersede한다. +Sections 2-6의 Codex `0.147.0` 내용은 initial correction history이고 Sections 7-9는 REWORK-004 history다. Section 10은 FileTracker diagnosis history이고 Sections 11-13은 이전 correction history다. Current correction과 status는 Section 14가 supersede한다. ## 2. Failure Triage @@ -318,3 +318,327 @@ Reference artifact no-change evidence: `git diff --name-only -- reference`는 em - status: `corrected-for-implementation-rerun`. - blockers: 이 correction 범위에는 없음. Existing Python `xhigh`/`extra high` mismatch는 명시된 out-of-scope pre-existing failure다. - prohibited actions not performed: Harness phase rerun, Step 2, `danger-full-access`, push, commit, reference solver/artifact mutation, build cleanup/deletion. + +## 12. REWORK-007 Step 11 Nonlinear Nonconvergence Contract Triage + +### 12.1 Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `phases/nonlinear-static-newton-raphson/step11-output.json`; `docs/nonlinear-static-newton-raphson/coordination.md` REWORK-007 | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `phases/nonlinear-static-newton-raphson/step11.md` | +| status | `needs-upstream-decision` | +| owner_agent | `correction-agent` | +| date | `2026-08-24` | + +### 12.2 Failure Triage + +- classification: `upstream-contract` +- normalized classification: `implementation-shellnl-nonlinear-nonconvergence-no-hdf5` +- attempt: `1` +- first failed command: + + ```powershell + ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure + ``` + +- failed target or test: `NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory` (CTest test 288) +- evidence tail: copied build-local `shellNL.inp` reaches `severity=error`, `code=nonlinear-nonconvergence` after iteration 100. `generated.HasValue()` is false because no authoritative copied-sibling `shellNL_results.h5` is committed. +- correction-agent reproduction: the exact focused test alone failed deterministically in 103.84 seconds with the same diagnostic. The original reference input was not passed to FESA. + +### 12.3 Root Cause Summary + +This is not an implementation defect in the observed convergence calculation. The implementation in `src/fesa/analysis/nonlinear_static_procedure.cpp` supplies same-trial free rotational residual, internal moment and external moment to `EvaluateNewtonConvergence`. `src/fesa/analysis/nonlinear_static_control.cpp` then implements the approved `NSNR-069` and formulation Section 14.1 literally: + +\[ +D_M=\max(\|f_{int,f}^{\phi}\|_\infty, + \|f_{ext,f}^{\phi}\|_\infty),\qquad +\eta_M=\frac{\|r_f^{\phi}\|_\infty}{D_M} +\] + +for every nonzero \(D_M\), with the typed absolute `1e-3 force-length` branch available only when \(D_M=0\) exactly. + +The approved `reference/shellNL/shellNL.inp` contains only `Set-1, 3, -100000.` under `*CLOAD`; it applies no rotational moment component. Therefore the free rotational external vector is exactly zero and + +\[ +r_f^{\phi}=f_{int,f}^{\phi}-0=f_{int,f}^{\phi}, +\qquad +D_M=\|f_{int,f}^{\phi}\|_\infty=\|r_f^{\phi}\|_\infty. +\] + +For every nonzero rotational residual, \(\eta_M=1>10^{-2}\). The channel can pass only if floating-point assembly produces the exact zero vector, at which point and only then the exact-zero branch is selected. Thus the current approved denominator structurally prevents practical convergence for a no-applied-moment shell case even when its residual is well below the approved typed absolute threshold. + +The reproduced log contains 100/100 parsed iteration records with exact printed equality between `residual_moment_numerator_norm` and `residual_moment_denominator_scale`; all 100 use `branch=relative` and `pass=0`. Representative values are: + +| iteration | numerator | denominator | branch | pass | +| ---: | ---: | ---: | --- | ---: | +| 1 | `2.363968570753043e-09` | `2.363968570753043e-09` | `relative` | 0 | +| 2 | `1.4372536725204554e-06` | `1.4372536725204554e-06` | `relative` | 0 | +| 3 | `3.138301877925187e-06` | `3.138301877925187e-06` | `relative` | 0 | +| 99 | `3.8876064110127118e-06` | `3.8876064110127118e-06` | `relative` | 0 | +| 100 | `4.6441010823627948e-06` | `4.6441010823627948e-06` | `relative` | 0 | + +Every listed numerator is below `1e-3 force-length`, but the approved exact-zero-denominator predicate forbids use of that absolute branch. Changing the implementation alone would contradict the approved requirement and formulation. + +### 12.4 Correction Scope + +- changed report file: `docs/nonlinear-static-newton-raphson/corrections.md` +- changed production source/header/test/CMake files: none +- preserved dirty Step 11 files: `tests/CMakeLists.txt`, `tests/reference/nonlinear_static_reference_cases_test.cpp`, `tests/reference/nonlinear_static_reference_comparison.cpp`, `tests/reference/nonlinear_static_reference_comparison.h` +- excluded upstream files: `requirements.md`, `formulation.md`, `numerical-review.md`, `reference-model.md`, `io.md`, `docs/TOLERANCE.md` +- excluded workflow/final reports: phase indexes/status, `implementation-report.md`, `build-test.md`, `reference-comparison.md` +- prohibited actions not performed: production/test/CMake change, threshold or denominator relaxation, Step 11 completion, Step 12 advancement, Abaqus/Nastran/reference solver, reference artifact generation/modification, `danger-full-access`, commit, push + +No RED test was added because no implementation correction is authorized: a test requiring this case to pass would encode a new convergence contract before user/upstream approval. The existing focused reference test already provides the failing integration evidence. + +### 12.5 Verification Evidence + +| purpose | exact command/evidence | result | +| --- | --- | --- | +| focused reproduction | `ctest --preset windows-msvc-ninja-debug -R '^NonlinearStaticReference\.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory$' --output-on-failure` | exit `1`; 0/1 passed; test 288 failed in 103.84 s with 100-iteration `nonlinear-nonconvergence` | +| iteration-log audit | parse latest copied-run `shellNL_log.txt` fields for every iteration | 100 records; numerator equals denominator in 100/100; `relative` in 100/100; `residual_moment_pass=0` in 100/100 | +| implementation trace | `nonlinear_static_procedure.cpp` residual/internal/external channel construction plus `nonlinear_static_control.cpp` denominator evaluation | matches `NSNR-069` and formulation Section 14.1 exactly | +| input trace | `reference/shellNL/shellNL.inp` lines 149-151 | one translational direction-3 force; no applied rotational moment | +| reference preservation | pre/post SHA-256 plus `git diff -- reference` | all eight declared hashes unchanged; reference diff empty | +| full Ninja/MSVC build/CTest | not run | intentionally stopped at decisive `upstream-contract`; no implementation correction exists to verify | +| Stop | not applicable | Correction was not a Harness Step and made no production/test/CMake change | +| Harness Python pytest | not applicable | no Harness/Hook/agent-config behavior changed | + +### 12.6 Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-069` | Step 5 `load-boundary-path-and-convergence-gates`; REWORK-007 | `CORR-NSNR-CONTRACT-001` log audit | focused test 288 | report only | no-applied-moment free rotational residual must have a reachable approved convergence decision; not met by current contract | +| `FESA-REQ-NSNR-034` | Step 11 `reference-comparison-gate` | `NSNR-REF-002`, `NSNR-REF-004` via test 288 | focused test 288 | report only | copied shellNL run produces authoritative HDF5 before comparison; blocked by NSNR-069 contract | + +### 12.7 Handoff Recommendation + +- recommendation: return `upstream-contract` / `needs-user-decision` to Coordinator Agent. Do not request an Implementation Agent rerun yet. +- narrowest contract alternative: when the matching external residual-channel scale is exactly zero, select the existing typed absolute gate (`||r_f^phi||inf <= 1e-3 force-length`) even if the internal residual is nonzero; retain the current relative denominator when matching external scale is nonzero. +- broader contract alternative: make residual convergence pass when either its typed absolute gate or its current relative gate passes. This is simpler and symmetric across force/moment channels but changes acceptance for all load-scale regimes. +- scale-based contract alternative: define an explicit nonzero model force-length reference scale for moment residual normalization, including its deterministic characteristic-length source. This is more general but expands the numerical contract and needs formulation/numerical review. +- non-solution: changing the reference deck to add an applied moment would not correct the same structural failure for supported no-moment load cases and would also violate immutable reference ownership in this correction. + +Any selected alternative requires the owning upstream documents and tests to be revised and approved before production code changes. Correction Agent does not choose among them. + +### 12.8 Stop Condition + +- upstream ambiguity: the exact approved `max(internal, external)` denominator and exact-zero branch are the demonstrated cause. +- implementation stop: any code-only pass would relax/reinterpret `NSNR-069` and formulation Section 14.1. +- reference artifact gap: none; all declared reference artifacts exist and remain unchanged. +- repeated failure: normalized classification attempt `1`; no automatic second implementation correction is safe before an upstream decision. +- final stop: status `needs-upstream-decision`; Step 11 remains blocked and Step 12 remains pending. + +## 13. REWORK-008 Nonlinear Reaction Reference Mismatch Triage + +### 13.1 Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `phases/nonlinear-static-newton-raphson/step11-output.json`; `docs/nonlinear-static-newton-raphson/coordination.md` dispatch `REWORK-008-nonlinear-reaction-reference-mismatch` | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `phases/nonlinear-static-newton-raphson/step11.md` | +| status | `needs-upstream-decision` | +| owner_agent | `correction-agent` | +| date | `2026-08-25` | + +`implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 존재하지 않는다. 따라서 immutable `step11-output.json` SHA-256 `0F3B876AF84398EB1D2C90335998115797054B012899DE27E4070A6F533EEF91`, Coordinator dispatch, current implementation/CTest와 read-only result/reference audit를 source evidence로 사용했다. + +### 13.2 Failure Triage + +- initial failure classification: `reference-comparison` +- final classification: `upstream-contract` +- normalized classification: `reference-blocking-model-adequacy-conflict` +- attempt: `1` for `REWORK-008`; 이전 `REWORK-007`은 별도 nonlinear convergence classification이다. +- first failed command in Step 11: + + ```powershell + cmake --build --preset windows-msvc-ninja-debug; ctest --preset windows-msvc-ninja-debug -R '^NonlinearStaticReference\.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory$' --output-on-failure + ``` + +- correction-agent reproduction: + + ```powershell + ctest --preset windows-msvc-ninja-debug -R '^NonlinearStaticReference\.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory$' --output-on-failure + ``` + +- failed target or test: `NonlinearStaticReference.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory` (fresh CTest test 293) +- evidence tail: exit `8`, 0/1 passed, 16.88 s. Row identity/schema/nonfinite prechecks passed before the common tolerance gate reported exactly three failed blocking families: in-plane RF RMS `0.11437709952897851`, transverse RF RMS `0.048448360241294064`, physical spatial RM RMS `0.02746412616679237`, each above `0.01`. + +### 13.3 Root Cause Summary + +Observed reaction computation/storage/mapping path에는 implementation defect evidence가 없다. + +1. `nonlinear_static_procedure.cpp`는 같은 accepted state에서 `residual = internal.force - external.generalized_external_force`를 만들고 `trial.reaction = trial.residual`로 저장한다. `nonlinear_analysis_state.cpp`는 모든 DOF에서 이 두 identity를 검증한다. +2. `nonlinear_hdf5_results_writer.cpp`는 translation reaction을 그대로 쓰고 rotational reaction만 승인식 `J_l(phi)^(-T)`로 physical spatial moment에 변환한다. 24 constrained nodes에서 `phi=0`이므로 이 변환은 identity다. Full-precision HDF5 audit에서 constrained translation과 generalized residual의 차이, constrained moment 변환 차이, constrained `phi`가 모두 exact `0`이었다. +3. Comparator는 `/model/nodal_constraint_mask`와 `(case, state, instance, node label, component)` exact key를 사용한다. 이번 실행이 schema/missing/extra/duplicate/nonfinite failure가 아니라 family tolerance report까지 도달했으므로 storage와 row mapping precheck도 통과했다. +4. Dominant RF3/RM1/RM2 mismatch는 nonlinear 전용 경로에서 생기지 않는다. FESA nonlinear-linear 최대 차이는 RF3 `2.9441580409184098e-06`, RM1 `1.3046948879491538e-05`, RM2 `1.2039316061418504e-05`이고, Abaqus nonlinear-linear 차이는 각각 `0`, `5.0022208599999994e-12`, `1.1141310098e-11`이다. 그럼에도 FESA linear와 Abaqus linear 사이에는 nonlinear과 동일한 local RF3/RM mismatch가 이미 존재한다. 예를 들어 node 31 RF3는 FESA `1059.5675655371299`, reference `339.61334199999999`; node 22 RM1은 FESA `-1564.1175318019484`, reference `-515.62542699999995`다. +5. 전체 constrained reaction 합은 FESA nonlinear `[7.9591888635377472e-12, 7.2906680692597092e-12, 100000.00000082512]`, Abaqus nonlinear `[4.5008441418303846e-13, -1.7997131562808022e-12, 99999.999592799955]`로 global balance와 sign이 일치한다. Stored `/global/equilibrium`도 `[-5.2007287365540833e-12, 2.1302730413008675e-11, 99999.999999999985, 1.5669833723712425e-11, 6.4043503405991029e-12, -3.0183203934097235e-11]`다. +6. RF1/RF2는 nonlinear에서 새로 생기는 weak geometric membrane reaction이지만 FESA extrema `±1.3774894254907935`와 Abaqus extrema `±1.9166318200000001`의 차이는 storage/mapping 오류가 아니다. Linear Abaqus reaction은 거의 zero이고, independent FESA MITC4와 Abaqus S4가 서로 다른 local nodal support-force redistribution을 만들 수 있다는 approved formulation/model limitation 안에 있다. + +따라서 demonstrated cause는 nonlinear reaction implementation이 아니라 reference blocking quantity의 model-adequacy 전제다. Approved `reference-model.md`는 linear reaction CSV를 review-only로 두면서, 같은 local RF3/RM distribution을 nonlinear에서 blocking으로 승격한다. Project contract는 FESA MITC4의 integration/stabilization/internal behavior가 Abaqus S4와 동등하다고 주장하지 않는다. Global equilibrium은 맞지만 formulation-sensitive local nodal reaction 분포가 1% RMS를 만족해야 한다는 분석적 또는 독립 benchmark 근거는 없다. 이를 code-only로 Abaqus 값에 맞추는 것은 formulation/model adequacy 또는 reference acceptance contract 변경이며 Correction Agent 범위를 벗어난다. + +### 13.4 Correction Scope + +- changed report file in this rework: `docs/nonlinear-static-newton-raphson/corrections.md` +- changed production source/header/test/CMake files in this rework: none +- preserved pre-existing dirty Step 11 files, including selector/control/log tests, comparator/reference tests, plan/phase/coordination and upstream approval edits +- excluded upstream contract files: `requirements.md`, `formulation.md`, `numerical-review.md`, `reference-model.md`, `io.md`, `docs/TOLERANCE.md` +- excluded immutable/reference files: `reference/**`, stored Abaqus CSV, HDF5 schema and tolerance policy +- prohibited actions not performed: new RED test without an implementation defect, production/comparator/test/CMake change, tolerance weakening, reference artifact generation/modification, Abaqus/Nastran/reference solver, Harness phase execution, Step 12/Physics/Release advancement, `danger-full-access`, commit, push + +No focused RED test was added because the dataflow audit disproved a bounded nonlinear computation/storage/mapping defect. The existing focused integration test is already RED for an upstream blocking/model-adequacy assumption; encoding a replacement expected result before upstream approval would itself change that contract. + +### 13.5 Verification Evidence + +Visual Studio environment는 `VsDevCmd.bat -arch=x64 -host_arch=x64`로 설정했고, `.harness/config.json`/preset가 요구한 `FESA_GTEST_SOURCE_DIR=C:/git/googletest`, `MKL_DIR=C:/Program Files (x86)/Intel/oneAPI/mkl/2026.1/lib/cmake/mkl`, `TBB_DIR=C:/Program Files (x86)/Intel/oneAPI/tbb/2023.1/lib/cmake/tbb`, `HDF5_DIR=C:/Program Files/HDF_Group/HDF5/2.1.1/cmake`를 사용했다. + +| purpose | exact command/evidence | exit/result | +| --- | --- | --- | +| focused reproduction | `ctest --preset windows-msvc-ninja-debug -R '^NonlinearStaticReference\.CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory$' --output-on-failure` | exit `8`; 0/1 passed; only three reaction-family RMS gates failed | +| reaction dataflow audit | `nonlinear_static_procedure.cpp` residual/reaction assignment, `nonlinear_analysis_state.cpp` identities, `nonlinear_hdf5_results_writer.cpp` physical-moment projection and comparator exact-key prechecks; build-local datasets dumped with `$hdf5Bin='C:\Program Files\HDF_Group\HDF5\2.1.1\bin'; $env:PATH="$hdf5Bin;$env:PATH"; & "$hdf5Bin\h5dump.exe" -m %.17g -d ` | exit `0`; constrained pipeline differences and constrained rotation were exact zero | +| nonlinear/linear audit | join build-local FESA HDF5 and immutable CSV rows by exact `(instance, node label, component)` in read-only PowerShell | exit `0`; dominant mismatch is already present in both solvers' linear results and survives nonlinear unchanged | +| targeted nonlinear output | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-441332835013800-0/shellNL_results.h5` | SHA-256 `A82349F1AABDC2B042A7DBF643D0D917B04245B64E5D73F9507B83A2D67FDE91` | +| targeted linear output | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-441349319977100-1/shell_results.h5` | SHA-256 `167248AB523484FB6F515AE6A309C7380B4A1226B74BE03B207F4532C3064B66` | +| configure | `cmake --preset windows-msvc-ninja-debug` | exit `0`; 0.342 s; configure/generate complete | +| build | `cmake --build --preset windows-msvc-ninja-debug` | exit `0`; 0.116 s; `ninja: no work to do.` | +| CTest discovery | `ctest --preset windows-msvc-ninja-debug --show-only=json-v1` | exit `0`; 294 tests discovered | +| full MSVC CTest | `ctest --preset windows-msvc-ninja-debug --output-on-failure` | exit `8`; 293/294 passed; only test 293 failed with the same three RMS values; test 294 comparator invalid-HDF5/warning checks passed | +| source failure hash | `Get-FileHash phases/nonlinear-static-newton-raphson/step11-output.json -Algorithm SHA256` | exit `0`; `0F3B876AF84398EB1D2C90335998115797054B012899DE27E4070A6F533EEF91` | +| reference preservation | `git diff -- reference` | exit `0`; empty diff | +| repository identity | `git rev-parse HEAD` | exit `0`; `65b56b1755e4537b48b44476375b6235da732648` | +| Stop | not applicable | Correction Agent session은 Harness Step이 아니며 production/test/CMake를 변경하지 않았다. Full preset build/CTest를 직접 실행했다. | +| Harness Python pytest | not applicable | Harness Python, Hook, agent config behavior를 변경하지 않았다. | + +### 13.6 Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-019` | Step 10 reaction/HDF5 path; REWORK-008 | `CORR-NSNR-REACTION-PIPELINE-001` read-only audit | focused test 293 | report only | accepted full residual, constrained reaction and HDF5 physical moment mapping are identical at constrained zero-rotation DOFs; met | +| `FESA-REQ-NSNR-034` | Step 11 `reference-comparison-gate`; REWORK-008 | `NSNR-REF-015`, `NSNR-REF-017` via test 293 | focused test 293 and full CTest | report only | exact keys/prechecks pass, but three local reaction families exceed blocking RMS `0.01`; not met because approved reference quantity assumes unsupported local S4/MITC4 distribution agreement | +| `FESA-REQ-NSNR-034` | Step 11 model-adequacy audit | `CORR-NSNR-LINEAR-CROSSCHECK-001` | read-only HDF5/CSV audit | report only | distinguish nonlinear reaction implementation error from pre-existing formulation-sensitive local redistribution; implementation-error hypothesis rejected | + +### 13.7 Handoff Recommendation + +- recommendation: return `upstream-contract` / `needs-user-decision` to Coordinator Agent. Do not request an Implementation Agent rerun and do not advance Step 12 until an upstream alternative is explicitly selected and approved. +- recommended narrow alternative: align nonlinear local nodal RF/RM disposition with the approved linear reference contract—keep local rows as read-only model-adequacy/physics-review evidence, while blocking reaction evidence is global force/moment equilibrium plus free-residual checks. Blocking displacement comparison remains unchanged. +- local-to-global alternative: retain reaction as a blocking external quantity only after projecting it to formulation-independent global resultant force/moment families; keep exact local nodal rows as warning/characterization evidence. +- local-blocking alternative: if exact local RF/RM rows must remain blocking, Numerical Review/Reference Model owners must supply an analytical or independent formulation-appropriate benchmark, or explicitly approve Abaqus S4 local nodal reaction distribution as an FESA MITC4 model-adequacy target after a mesh/formulation study. Implementation must not calibrate reactions to Abaqus without that decision. +- excluded alternative: tolerance relaxation, row averaging/collapse, comparator weakening or reference artifact rewriting is not acceptable. + +Each viable alternative changes blocking quantity/model-adequacy ownership in `requirements.md`, `numerical-review.md`, `reference-model.md`, `io.md` and the implementation/reference plan. Correction Agent does not select or edit those contracts. + +### 13.8 Stop Condition + +- upstream ambiguity: current contracts simultaneously disclaim Abaqus S4 internal equivalence, make linear local reaction review-only, and require the same formulation-sensitive local distribution as nonlinear blocking evidence. +- implementation stop: no nonlinear reaction computation, storage or exact-key mapping defect was reproduced; a code-only pass would alter formulation/reference meaning. +- reference artifact gap: none; required artifacts exist, remained read-only and have empty reference diff. +- environment blocker: none; configure/build/discovery completed and full CTest reproduced only the intended reference failure. +- repeated failure: `REWORK-008` classification attempt `1`; no automatic implementation correction is safe before the upstream decision. +- final stop: status `needs-upstream-decision`; Step 11 remains blocked, Step 12 remains pending, and Physics/Release remain ineligible. + +## 14. REWORK-009 User-local WindowsApps PowerShell Launch Correction + +### 14.1 Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source failure report | `phases/nonlinear-static-newton-raphson/step11-output.json`; `docs/nonlinear-static-newton-raphson/coordination.md` dispatch `REWORK-009-user-windowsapps-pwsh-launch-filter-root-dispatch-required` | +| source implementation plan | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `phases/nonlinear-static-newton-raphson/step11.md` | +| status | `corrected-for-implementation-rerun` | +| owner_agent | `correction-agent` | +| date | `2026-08-28` | + +`implementation-report.md`, `build-test.md`, `reference-comparison.md`는 아직 존재하지 않는다. 따라서 current `step11-output.json` SHA-256 `BF3A1CA6DD35EA8414710018D7F1644A1D2C6C2BCF87C11F74DA2A01BBEAB3AD`, Coordinator dispatch, preserved attempt-1 TDD evidence와 attempt-2 Stop evidence를 source evidence로 사용했다. + +### 14.2 Failure Triage + +- classification: `harness` +- normalized classification: `harness-launch-path-filter-missed-user-windowsapps-pwsh-access-denied` +- attempt: `2` under `STEP11-EXECUTION-003`; attempt 1은 1,800초 timeout이고 attempt 2는 아래 shell launch failure다. +- first failed command boundary: + + ```powershell + codex exec --json --model gpt-5.6-terra --config 'model_reasoning_effort="xhigh"' --sandbox workspace-write --dangerously-bypass-hook-trust --cd C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson --disable unified_exec - + ``` + +- failed target: attempt-2 nested Codex의 첫 PowerShell tool launch. +- evidence tail: nested Codex `0.150.1`이 `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe`를 선택했다. `workspace-write` runner가 `CreateProcessAsUserW failed: 5 (Access denied)`로 이를 거부해 소스 확인, RED/VERIFY 명령과 Step status update가 실행되지 않았다. Codex process 자체는 `exitCode=0`이지만 blocker agent message만 반환했으므로 Step 성공 evidence가 아니다. +- state evidence: `HEAD=65b56b1755e4537b48b44476375b6235da732648`; Step 11 `pending`; Step 12 `pending`. + +### 14.3 Root Cause Summary + +이번 실패는 solver, comparator 또는 `1e-8` gate defect가 아니라 Harness child launch environment defect다. + +1. 이전 launcher filter는 `C:\Program Files\WindowsApps\Microsoft.PowerShell_*` entry만 제거했다. +2. 따라서 `C:\Users\baram\AppData\Local\Microsoft\WindowsApps` entry와 그 아래 `pwsh.exe` execution alias가 PATH에 남았다. +3. Nested Codex shell resolver는 남은 user-local alias를 선택했고, Windows native `workspace-write` sandbox는 그 alias의 child process 생성을 Windows error 5로 거부했다. +4. PATH에서 `\\WindowsApps(?:\\|$)`에 일치하는 모든 entry를 제거하면 현재 환경의 Program Files entry 세 개와 user-local entry 한 개가 함께 제거된다. 이때 `pwsh`는 resolve되지 않고 `powershell`은 `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`로 resolve된다. +5. Root가 같은 Codex CLI `0.150.1`, `gpt-5.6-terra`, `xhigh`, `--disable unified_exec`, `workspace-write`, `CODEX_HOME=C:\Users\baram\.codex` envelope에서 이 filter를 적용한 nested smoke는 위 Windows PowerShell을 선택해 exact `FESA_CODEX_SHELL_SMOKE_OK`를 출력하고 exit `0`으로 끝났다. Correction audit의 독립 direct smoke도 같은 executable, exact output과 exit `0`을 확인했다. + +따라서 repository runner나 Step 11 implementation을 고칠 필요가 없다. Rerun launch에서 PATH predicate만 전체 WindowsApps entry를 제거하도록 바로잡으면 된다. + +### 14.4 Correction Scope + +- changed report file: `docs/nonlinear-static-newton-raphson/corrections.md` +- changed source/header/test/CMake/runner/phase files: none +- excluded upstream contracts: `requirements.md`, `formulation.md`, `numerical-review.md`, `reference-model.md`, `io.md`, `implementation-plan.md`, `docs/TOLERANCE.md` +- excluded immutable evidence: `reference/**`, stored CSVs and reference inputs +- preserved dirty implementation: all existing Step 11 source, test, comparator, CMake and phase changes +- prohibited actions not performed: Harness phase execution, Step 11 implementation, Step 12, full build/CTest rerun, manual Hook execution, commit, push, `danger-full-access`, reference solver or artifact mutation + +Correction은 repository code 변경이 아니라 corrected child-launch envelope와 재실행 경계를 확정한다. Production C++ 변경이 없으므로 새 RED test는 필요하지 않다. + +### 14.5 Verification Evidence + +| purpose | exact command/evidence | exit/result | +| --- | --- | --- | +| failure artifact audit | `Get-FileHash phases/nonlinear-static-newton-raphson/step11-output.json -Algorithm SHA256`; JSON `exitCode`, `stderr`, blocker message 검사 | exit `0`; SHA-256 `BF3A1CA6DD35EA8414710018D7F1644A1D2C6C2BCF87C11F74DA2A01BBEAB3AD`; nested process path와 `CreateProcessAsUserW failed: 5` 확인 | +| filter audit | `($env:PATH -split ';') \| Where-Object { $_ -notmatch '\\WindowsApps(?:\\|$)' }`를 child-only PATH로 적용한 뒤 `Get-Command codex,pwsh,powershell` 확인 | four WindowsApps entries removed; Codex `codex-cli 0.150.1`; `pwsh=`; `powershell=C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe` | +| independent direct smoke | filtered PATH에서 `powershell.exe -NoProfile -Command '[Console]::WriteLine($PSHOME); [Console]::WriteLine("FESA_CODEX_SHELL_SMOKE_OK")'` | exit `0`; `$PSHOME=C:\Windows\System32\WindowsPowerShell\v1.0`; exact `FESA_CODEX_SHELL_SMOKE_OK` | +| same-envelope nested Codex smoke | Coordinator/root evidence: Codex `0.150.1`, Terra/xhigh, `--disable unified_exec`, `workspace-write`, aligned `CODEX_HOME`, all-WindowsApps filter | exit `0`; selected system Windows PowerShell and printed exact `FESA_CODEX_SHELL_SMOKE_OK` | +| recovered attempt-1 RED | `ctest --preset windows-msvc-ninja-debug -R 'GlobalForceAndMoment' --output-on-failure` before comparator GREEN | exit `8`; preserved old `<=1e-10` rejected both `5e-9` and exact `1e-8` in `NSNR-REF-024` | +| recovered attempt-1 GREEN | same focused GlobalForceAndMoment CTest after comparator-only shared gate became `1e-8` | exit `0`; 2/2 passed, including inclusive boundary and exact-zero-scale tests | +| focused implementation evidence | attempt-1 focused procedure, HDF5 and global-balance runs; attempt-2 `LastTest.log` named-test audit | `NSNR-PROC-019`, `NSNR-HDF5-014`, `NSNR-REF-022`, `NSNR-REF-024`, `NSNR-REF-025` all present as passed | +| attempt-2 Stop full CTest | `.harness/build-ninja-msvc-debug/Testing/Temporary/LastTest.log`, SHA-256 `41CA3D4E410F7BFD55E50FC7D40A79D00D26116945C468E74F0E38720E676447` | 302 `Testing` rows, 0 failure markers, final `302/302`; root/Coordinator records full `302/302` pass | +| new full build/CTest | not run | existing evidence was sufficient and dispatch prohibited unnecessary Harness/build/CTest rerun | +| Stop | not applicable | Correction Agent session은 Harness Step이 아니며 code/test/CMake를 변경하지 않았다. | +| Harness Python pytest | not applicable | runner, Hook 또는 agent config를 변경하지 않았다. | + +Attempt-1 RED/GREEN은 recovered immutable execution evidence이며 이 correction에서 재현하거나 새로 주장한 RED가 아니다. Current code를 old threshold로 되돌리지 않았고 reference artifact도 실행·수정하지 않았다. + +### 14.6 Traceability + +| requirement id | task id | test id | failing command | corrected file | acceptance criterion | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-019` | Step 11 `equilibrium-projection-and-reference-gate`; REWORK-009 | `NSNR-PROC-019`, `NSNR-HDF5-014`, `NSNR-REF-022`, `NSNR-REF-024..025` | nested `codex exec` first shell launch | `corrections.md` report-only launch correction | Step 11 agent can read/run the preserved current-arm, spatial-moment and distinct global force/moment evidence under `workspace-write` | +| `FESA-REQ-NSNR-034` | Step 11 reference gate; REWORK-009 | `NSNR-REF-020..025` | nested `codex exec` first shell launch | `corrections.md` report-only launch correction | implementation-owned reference checks can complete without changing disposition, reference artifacts or tolerance | +| Harness Step execution contract | `STEP11-EXECUTION-003`; `REWORK-009` | `CORR-HARNESS-SHELL-002` | user-local WindowsApps `pwsh.exe` launch | `corrections.md` | all PATH entries matching `\\WindowsApps(?:\\|$)` are absent; system Windows PowerShell launches and exact smoke exits `0` | + +### 14.7 Handoff Recommendation + +- recommendation: return `corrected-for-implementation-rerun` to Coordinator Agent and request one bounded Implementation Agent rerun of Step 11 only. +- exact launch correction: reuse the approved `STEP11-EXECUTION-003` Step11-only wrapper and change only the launch PATH filter to the following predicate after VsDevCmd x64/dependency environment setup and before `codex exec`: + + ```powershell + $step11PathEntries = $env:PATH -split ';' | Where-Object { + $_ -and $_ -notmatch '\\WindowsApps(?:\\|$)' + } + $env:PATH = $step11PathEntries -join ';' + $env:CODEX_HOME = 'C:\Users\baram\.codex' + $env:FESA_HARNESS_CODEX_SANDBOX = 'workspace-write' + ``` + +- preserve exact runtime: Codex CLI `0.150.1`; implementation-agent `gpt-5.6-terra`/`xhigh`; `--disable unified_exec`; project PreToolUse/Stop hooks; VsDevCmd x64; approved `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, `HDF5_DIR`. +- preflight must resolve `powershell` to `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`, leave `pwsh` unresolved, and print exact `FESA_CODEX_SHELL_SMOKE_OK` with exit `0`. +- run only Executor-selected Step 11, no `--push`; hard-stop before Step 12. Do not use `danger-full-access`, run a reference solver, mutate reference artifacts or alter runner/source/test/CMake/phase/upstream/tolerance files as part of this launch correction. + +### 14.8 Stop Condition + +- repeated failure: normalized classification count is already `2`; if the corrected all-WindowsApps filter still produces the same `CreateProcessAsUserW` failure, do not start another automatic retry. Return `needs-environment-fix` to Coordinator with the new output artifact. +- environment blocker: cleared for one bounded Step 11 rerun by the same-envelope smoke; no repository-local code fix is required. +- upstream ambiguity: none introduced by this correction; fixed `1e-8` force/moment gate and all approved contracts remain unchanged. +- reference artifact gap: none examined or changed in this correction. +- final stop: status `corrected-for-implementation-rerun`; Step 11 and Step 12 remain `pending` until Executor/Implementation owner action. diff --git a/docs/nonlinear-static-newton-raphson/formulation.md b/docs/nonlinear-static-newton-raphson/formulation.md index 93be89a..16f9d5c 100644 --- a/docs/nonlinear-static-newton-raphson/formulation.md +++ b/docs/nonlinear-static-newton-raphson/formulation.md @@ -1599,7 +1599,15 @@ on any increment/recovery/output failure: ### 14.1 Four convergence channels Let free translation and rotation-coordinate subvectors carry superscripts \(u\) -and \(\phi\). Residual channels use +and \(\phi\). Define the matching external residual-channel scales + +\[ +S_{ext}^u=\|\mathbf f_{ext,f}^u\|_\infty, +\qquad +S_{ext}^\phi=\|\mathbf f_{ext,f}^\phi\|_\infty. +\] + +When the matching external scale is nonzero, residual channels retain \[ \eta_R^u= @@ -1615,10 +1623,31 @@ and \(\phi\). Residual channels use \|\mathbf f_{ext,f}^\phi\|_\infty)} \] -when the matching denominator is nonzero. They pass iff -\(\eta_R^u\le10^{-2}\) and \(\eta_R^\phi\le10^{-2}\). -An exact-zero denominator instead passes iff the numerator is at most -\(10^{-3}\) model-consistent force or \(10^{-3}\) model-consistent force-length. +for \(S_{ext}^u>0\) and for \(S_{ext}^\phi>0\), respectively. Each nonzero-external-scale +channel passes iff its ratio is \(\le10^{-2}\). An exact-zero matching external +scale instead selects the existing typed absolute residual gate: + +\[ +\boxed{ +S_{ext}^u=0 +\ \Longrightarrow +\|\mathbf r_f^u\|_\infty\le10^{-3} +\quad\text{model-consistent force},} +\] + +\[ +\boxed{ +S_{ext}^\phi=0 +\ \Longrightarrow +\|\mathbf r_f^\phi\|_\infty\le10^{-3} +\quad\text{model-consistent force-length}.} +\] + +The exact-zero branch selector is the matching external scale itself, not +\(\max(\|\mathbf f_{int,f}\|_\infty, +\|\mathbf f_{ext,f}\|_\infty)\). Therefore a nonzero internal residual does not +select the relative branch when its matching external scale is exactly zero. When +the external scale is nonzero, only the retained relative gate applies. Let diff --git a/docs/nonlinear-static-newton-raphson/implementation-plan.md b/docs/nonlinear-static-newton-raphson/implementation-plan.md index 5463299..4847fd3 100644 --- a/docs/nonlinear-static-newton-raphson/implementation-plan.md +++ b/docs/nonlinear-static-newton-raphson/implementation-plan.md @@ -2,9 +2,9 @@ > For Harness workers: this plan is an approved Stage 6 planning artifact. It authorizes planning files only. It does not authorize `scripts/execute.py`, C++ implementation, build, CTest, reference solver execution, or evidence-document creation. -**Goal:** `nonlinear-static-newton-raphson` 기능을 C++17/MSVC/CMake/CTest TDD 순서로 구현하고, 승인된 nonlinear MITC4 Newton-Raphson 절차, HDF5 schema v1, log lifecycle, shellNL/shell reference comparison을 검증한다. +**Goal:** `nonlinear-static-newton-raphson` 기능을 C++17/MSVC/CMake/CTest TDD 순서로 완결하고, current-position/spatial-moment global equilibrium, accepted free residual, fine-primary/coarse-companion reference gate와 HDF5 schema v1을 검증한다. -**Architecture:** App layer가 argv 검증, lexical output path derivation, move-only `OutputWriteLease`, log open/close와 final HDF5 writer 호출 순서를 소유한다. 입력 parse/map은 정확히 한 번 수행하고, `StepDefinition::ProcedureKind()`로 linear와 nonlinear procedure executor를 분리한다. `LinearStaticAnalysis`의 기존 private lifecycle에는 nonlinear 조건문을 넣지 않고, 기존 linear numerical/HDF5 의미는 repository-wide output name/log lifecycle 변경만 제외하고 보존한다. +**Architecture:** App layer가 argv 검증, lexical output path derivation, move-only `OutputWriteLease`, log open/close와 final HDF5 writer 호출 순서를 소유한다. 입력 parse/map은 정확히 한 번 수행하고, `StepDefinition::ProcedureKind()`로 linear와 nonlinear procedure executor를 분리한다. Nonlinear accepted state는 current arm과 spatial physical moment로 applied-plus-reaction balance error를 만들고 기존 `/global/equilibrium`에 저장하며, comparator는 existing schema-v1 nodal datasets에서 constrained reaction resultant와 accepted free residual을 별도로 재구성한다. `LinearStaticAnalysis`의 기존 private lifecycle에는 nonlinear 조건문을 넣지 않는다. **Tech Stack:** C++17, MSVC on Windows, CMake, CTest, GoogleTest, Intel oneAPI MKL/TBB, HDF5, Abaqus `.inp` approved subset, Python 3 Harness scripts. @@ -15,10 +15,10 @@ | key | value | | --- | --- | | feature_id | `nonlinear-static-newton-raphson` | -| status | `approved-planning-files-materialized` | +| status | `ready-for-implementation` | | owner_agent | `implementation-planning-agent` | -| date | `2026-08-24` | -| approval | User approved the final 13-Step draft on `2026-08-24`; Coordinator recorded `DECISION-036`. | +| date | `2026-08-28` | +| approval | User approved the original 13-Step draft on `2026-08-24`, USER-DECISION-003 revision, and delegated the Coordinator-audited REAPPROVAL-012 Stage 6 reapproval/materialization with both normalized factor-one global force and moment balance gates fixed at `<=1e-8` on `2026-08-28`. | | source_requirement | `docs/nonlinear-static-newton-raphson/requirements.md` | | source_research | `docs/nonlinear-static-newton-raphson/research.md` | | source_formulation | `docs/nonlinear-static-newton-raphson/formulation.md` | @@ -30,21 +30,52 @@ | document | SHA-256 | | --- | --- | -| `requirements.md` | `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` | -| `research.md` | `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` | -| `formulation.md` | `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` | -| `numerical-review.md` | `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01` | -| `reference-model.md` | `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3` | -| `io.md` | `DBB959A68F17D67CA2B42569610B9C1B595A8BFB5502BC194B7E62B656031B28` | +| `requirements.md` | `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` | +| `research.md` raw | `4F63D23E03D1A68E5F8563B678FDD6F761F9558165778EF0433133EFAD303570` | +| `formulation.md` | `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9` | +| `numerical-review.md` | `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` | +| `reference-model.md` | `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA` | +| `io.md` raw | `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9` | +| `io.md` LF-normalized | `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB` | ## Readiness Check -- Upstream document status: Stage 1 requirements approved, Stage 2 research passed, Stage 3 formulation ready for numerical review and approved downstream, Stage 4 numerical/reference review passed for I/O definition, Stage 5 I/O definition approved. +- Upstream document status: Stage 1 requirements, Stage 4 numerical/reference review and Stage 5 I/O definition are complete; REAPPROVAL-012 fixes both factor-one normalized global force and moment balance gates at `<=1e-8`. Stage 3 formulation §§11.4/13.4 already supplies the accepted residual/reaction/global-resultant meaning. - Missing decisions: none. -- Missing required comparison files: none for declared blocking/reference families. +- Missing required comparison files: none. Fine primary, coarse companion and linear-control exact inputs/CSVs are present; stress files are optional inventory only. - Planning can proceed: yes. +- REWORK-008의 local reaction blocking conflict는 USER-DECISION-004 option 1로 해소되었다. Local nodal RF/RM은 review-only이고 factor-one global force/moment balance와 accepted free residual이 blocking이다. `AUDIT-001` current-arm/spatial-moment implementation seam은 Step 11에서 RED-first로 닫는다. +- Step 11에는 보존해야 할 uncommitted `NSNR-CTRL-018..021`, `NSNR-LOG-012`, `NSNR-PROC-019`, + `NSNR-HDF5-014`, `NSNR-REF-001..023`, residual-selector GREEN과 comparator/CMake 작업이 있다. + 새 계획은 이를 reset/replay하지 않는다. +- `implementation-report.md`, `build-test.md`, canonical `reference-comparison.md`는 아직 없고 Step 12가 actual evidence에서만 생성한다. - `CMakePresets.json` tracks the approved `windows-msvc-ninja-debug` contract. The ignored `.harness/config.json` selects the matching configure/build/test presets and `.harness/build-ninja-msvc-debug` binary directory. +## Implementation Scope + +Included behavior: + +- Existing schema-v1 `/global/equilibrium [6]`에 global origin `[0,0,0]`, accepted current + position `X+u`, independently spatial-converted applied/reaction moments를 사용하는 + applied-plus-reaction balance error를 기록한다. +- Existing schema-v1 nodal datasets와 exact constraint mask에서 accepted free residual, + constrained reaction resultant와 global balance error를 서로 다른 evidence로 재구성한다. +- Fine nonlinear primary, coarse nonlinear companion와 linear control을 exact read-only artifact로 + 비교한다. U는 blocking, UR은 warning-only, local RF/RM은 review-only, RM3/stress는 excluded다. +- Internal global force/moment는 dimension-separated normalized `1e-8`, accepted free residual은 + NSNR-069으로 blocking 검증하고 external families만 `docs/TOLERANCE.md`를 사용한다. + +Excluded behavior and non-goals: + +- New HDF5 dataset/schema version, public header/API, tolerance, reference artifact 또는 solver scope + 추가가 아니다. +- `fesa.env`, runtime configuration, CLI option 또는 product solver acceptance behavior를 추가하지 + 않는다. `1e-8`은 comparator-owned internal verification gate의 fixed value다. +- Local nodal reaction을 global sum으로 대체하거나 Abaqus S4와 FESA MITC4 내부 정식화 + 동등성을 주장하지 않는다. +- Steps 0–10 구현/history replay, selector RED 재현, Abaqus/reference solver 실행, Physics/Release + 판정은 포함하지 않는다. + ## Global Constraints - Use `RED -> observed failure -> minimal GREEN -> focused VERIFY -> full CTest` in every implementation Step. @@ -54,8 +85,12 @@ - Do not create `implementation-report.md`, `build-test.md`, or `reference-comparison.md` before Step 12 produces actual command evidence. - Do not run Harness from this planning approval. `scripts/execute.py` requires a separate explicit request. - Implementation and Harness execution remain unauthorized by this materialized plan until the user separately requests Executor execution. -- Preserve source label/instance identity, deterministic row order, deterministic diagnostics, finite checks, and docs/TOLERANCE.md exactly. -- Preserve `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. For shellNL, preserve constrained `RF1/RF2`, `RF3`, physical spatial `RM1/RM2` blocking, and exclude `RM3` plus stress from numeric comparison. +- Preserve source label/instance identity, deterministic row order, deterministic diagnostics, finite checks, and `docs/TOLERANCE.md` exactly. +- Residual force/moment channel은 finite-first 검사 뒤 matching external scale 자체로 분기한다. Exact zero이면 denominator output exact `0`과 typed absolute `1.0e-3`; nonzero이면 retained `max(internal,external)` denominator와 dimensionless relative `1.0e-2`만 사용한다. Tolerance band, zero clamp, `max(1,...)`, absolute/relative OR는 금지한다. +- Correction gates, four-channel logical AND, Full Newton, fixed load-factor stepping, maximum 100 iterations와 `nsnr-log-v1` 39-field label/order/TAB schema는 변경하지 않는다. +- Preserve `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. Fine/coarse constrained `RF1/RF2`, `RF3`, physical spatial `RM1/RM2` remain review-only with complete deterministic precheck/error reporting; exclude `RM3` and stress from numeric comparison. +- Preserve schema version 1 and all existing HDF5 paths/shapes/components. Do not add a summary dataset or public header. +- Keep internal global balance/free-residual gates separate from external `docs/TOLERANCE.md`; do not add a floor, `max(1,S)`, zero clamp, averaging or collapse. - Launch every Harness process from VsDevCmd with `-arch=x64 -host_arch=x64` and inherit `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR`. The tracked preset selects Ninja and MSVC Debug without hard-coding machine-local dependency paths. ## Repository Seam Map @@ -68,11 +103,12 @@ | Domain | `StaticStepDefinition` in `include/fesa/model/model_types.h`; `StepDefinition` in `include/fesa/model/domain.h`. | Store procedure identity, `NLGEOM`, raw four `*STATIC` values and provenance. Do not store derived factor sequence or PRESELECT state. | | Parser mapping | `src/fesa/io/abaqus/domain_mapping_context.cpp`, `step_definition_mapper.cpp`. | Accept nonlinear static subset, warning no-op PRESELECT, reject unsupported procedure fail-closed. | | MITC4 | `include/fesa/elements/mitc4_shell.h`, `src/fesa/elements/mitc4_shell.cpp` are linear small-rotation. | Add separate nonlinear MITC4 files with `Create(...)` from four nodes, four initial frames, `ShellSection`, and `LinearElasticMaterial`; element kernels compute internal residual/tangent/recovery only. | -| Loads/control | Current loads are assembled for linear static RHS. | Step 5 owns global-once fixed CLOAD external vector `f_ext` and exact external load tangent `K_ext`, including projected moment `J_l`/map-Hessian terms, with no incident-element multiplication. Step 5 also owns exact convergence constants: relative `1.0e-2`, zero-scale `1.0e-3` with channel-specific units. Step 10 forms `r = f_int - f_ext` and `K_T = K_int - K_ext`. | +| Loads/control | Preserved partial Step 11 work already changes residual selection to matching external scale exact-zero/nonzero and adds `NSNR-CTRL-018..021`/`NSNR-LOG-012`. | Preserve without replay/redesign; run focused regression before the new equilibrium/reference gate. | +| Equilibrium projection | `src/fesa/analysis/nonlinear_static_procedure.cpp` currently sums raw full residual with initial Domain coordinates and raw rotational covectors. | Apply the constraint mask before rotational conversion; use accepted `X+u`; convert applied and constrained-reaction rotational covectors independently with `InverseTransposeLeftJacobianSO3(phi)`; store applied-plus-reaction balance only. | | Source identity | `SourceEntityId { instance_name, source_label, source_label_text }` and `EntityIndex` exist in `include/fesa/core/source_identity.h`; nodes are stored in stable Domain order. | Step 8 baseline uses both `EntityIndex` and full `SourceEntityId`, requires one node baseline per Domain node in stable internal order, rejects label-only or mismatched identities, and preserves identity into HDF5/reference mapping. | | Solver | `MklPardisoSolver` uses SPD `mtype=2` and upper-triangle copy. | Preserve unchanged; add `TangentSolver` and MKL unsymmetric full CSR `mtype=11`. | -| Results writer | `ResultsWriter` is the backend-neutral linear writer; `Hdf5ResultsWriter` writes schema-v0 single-frame linear output. | Add `NonlinearResultsWriter` backend-neutral boundary and `NonlinearHdf5ResultsWriter` schema-v1 implementation with delayed finalization after log close. | -| Tests | `fesa_unit_tests`, `fesa_integration_tests`, `fesa_reference_tests` use executable-wide labels. | Add focused test sources and use `ctest -R` regex; do not globally relabel existing tests as nonlinear. | +| Results writer | `NonlinearHdf5ResultsWriter` already writes schema-v1 `/global/equilibrium`, but its location attribute is `global-origin`. | Preserve dataset path/shape/components and change exact location identity to `global-balance-error`; no new dataset or public writer boundary. | +| Tests | Existing integration/HDF5 tests and partial nonlinear comparator are registered in existing executables. | Add RED to existing sources; preserve the current CMake registration and use focused `ctest -R` regex without a new target or global relabel. | ## Work Breakdown @@ -89,7 +125,7 @@ | 8 | `nonlinear-state-commit-rollback` | 3-7 | Factor-zero baseline construction with `EntityIndex` plus `SourceEntityId`, trial/committed nonlinear state, accepted frames, rollback/preservation. | | 9 | `nonlinear-hdf5-schema-v1-writer` | 8 | Nonlinear HDF5 schema v1 writer using `std::vector`. | | 10 | `prepared-analysis-flow-and-full-procedure` | 0-9 | Single parse/map prepared analysis flow, separate linear/nonlinear executors, delayed writer finalization. | -| 11 | `reference-comparison-gate` | 0-10 | shellNL nonlinear and shell linear real-input reference comparison. | +| 11 | `equilibrium-projection-and-reference-gate` | 0-10 | Preserve partial selector/comparator work; add new current-arm/spatial-moment, HDF5 location, fine/coarse disposition/internal-gate RED tests; make minimal procedure/writer/comparator GREEN; run focused/full verification. | | 12 | `execution-closure-and-evidence-docs` | 0-11 | Fresh MSVC evidence, deterministic repeat/reference audit, actual-output evidence docs. | ## TDD Test Plan @@ -101,20 +137,21 @@ | `NSNR-ROT-*` | finite rotation invariants, `J_l`, branch margin, director update. | 2 | | `NSNR-ELEM-KIN-*` | nonlinear MITC4 creation inputs, TL shell kinematics, fixed-size four-GP recovery rows, degeneracy fail-closed, linear limit. | 3 | | `NSNR-ELEM-TAN-*` | same-trial internal residual/tangent, directional derivative, objectivity, symmetry only for internal/no-external cases. | 4 | -| `NSNR-CTRL-*` | load factor path, absolute boundary path, global-once fixed loads and load tangent, moment admissibility, typed four convergence gates with `relative`/`zero-scale` branches and non-injectable exact thresholds/units. | 5 | +| `NSNR-CTRL-*` | Existing coverage plus preserved partial `NSNR-CTRL-018..021`: matching-external exact-zero absolute boundaries, retained nonzero relative boundaries, nonfinite-first/no-clamp selection, unchanged correction gates/four-channel AND. Do not replay/fabricate selector RED. | 5,11 | | `NSNR-SOLVER-*` | nonsymmetric tangent solve, 0x0, nonfinite/failure translation, SPD solver unchanged. | 6 | -| `NSNR-LOG-*` | serializer-owned 39-field UTF-8/LF/TAB Newton log from explicit stage/failure/channel records and fail-closed write/flush/close. | 7 | +| `NSNR-LOG-*` | Existing serializer coverage plus preserved partial `NSNR-LOG-012`: evaluator-produced zero/nonzero-external decisions retain exact denominator, branch, threshold, unit and 39 fields. | 7,11 | | `NSNR-STATE-*` | factor-zero baseline creation with stable node order and full source identity, trial/committed separation, accepted frame order, full schema-v1 state inventory, finite atomic commit, rollback. | 8 | -| `NSNR-HDF5-*` | `NonlinearResultsWriter` boundary, schema v1 metadata/model/frame datasets, factor-zero metadata, atomic finalization. | 9 | -| `NSNR-PROC-*` | full procedure orchestration, single parse/map, log close before HDF5, deterministic repeat. | 10 | -| `NSNR-REF-*` | original artifact snapshot, temp input copy run, HDF5-to-original-CSV identity mapping, tolerance, classification, report data. | 11 | -| `NSNR-EVID-*` | fresh evidence docs and diff/hash/warning audits from actual command outputs. | 12 | +| `NSNR-HDF5-*` | Existing schema-v1 coverage plus `NSNR-HDF5-014` exact `/global/equilibrium` `location=global-balance-error`; path/shape/components/version unchanged. | 9,11 | +| `NSNR-PROC-*` | Existing procedure coverage plus collision-resolved `NSNR-PROC-019` exact test `NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance`. Approved draft label `NSNR-PROC-011` is not reused because completed Step 10 already owns it. | 10,11 | +| `NSNR-REF-*` | Preserve `NSNR-REF-001..023`, including the current-case old-gate RED in `022`; add `024` inclusive `1e-8` force/moment boundary plus approved between-threshold regression and `025` exact-zero-scale force/moment regression before changing the comparator gate. | 11 | +| `NSNR-EVID-*` | `001..007` freshness, disposition, fine/internal inventory, AUDIT-001, command/provenance and actual-output report checks. | 12 | ## CMake And CTest Plan - Add C++ sources to `src/fesa/CMakeLists.txt` under existing `fesa_solver`. - Add unit tests to `fesa_unit_tests`, integration tests to `fesa_integration_tests`, reference tests to `fesa_reference_tests`. - Preserve current executable-wide labels. Use focused regex such as `ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure`. +- Step 11 adds no target or `add_test`: procedure/HDF5 tests use existing executables and current partial `tests/CMakeLists.txt` comparator registration is preserved without unrelated edits. - If scoped per-test labels are introduced, the Step that introduces the mechanism must test it and avoid changing labels for unrelated discovered tests. - Configure/build/test commands: @@ -125,6 +162,17 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` +## Candidate Files and Ownership + +Candidate paths guide the Implementation Agent and do not finalize a new public API. + +| Step | candidate files | responsibility boundary | +| --- | --- | --- | +| 11 RED | `tests/integration/analysis/nonlinear_static_procedure_test.cpp`; `tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp`; existing partial `tests/reference/nonlinear_static_reference_{comparison.h,comparison.cpp,cases_test.cpp}` | New behavior must fail before production edits; comparator extensions remain test-private. | +| 11 GREEN | `src/fesa/analysis/nonlinear_static_procedure.cpp`; `src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp` | Current-arm/spatial-moment balance and exact dataset location only; no public header/state/schema expansion. | +| 11 preserve | `src/fesa/analysis/nonlinear_static_control.cpp`; `tests/unit/analysis/nonlinear_static_control_test.cpp`; `tests/unit/analysis/newton_iteration_log_test.cpp`; `tests/CMakeLists.txt` | Preserve uncommitted selector/tests/registration and verify them; do not reset, recreate or redesign. | +| 12 evidence | `docs/PRD.md`; `docs/ARCHITECTURE.md`; `docs/ADR.md`; feature `implementation-report.md`, `build-test.md`, `reference-comparison.md` | Directly superseded global statements and actual evidence only; no C++/test/CMake ownership. | + ## Data Flow Contract 1. CLI receives `fesa.exe `. @@ -132,40 +180,55 @@ ctest --preset windows-msvc-ninja-debug --output-on-failure 3. App derives `_results.h5` and `_log.txt` beside the lexically normalized user-addressed `.inp`. 4. App acquires move-only `OutputWriteLease` and retains it until all log and HDF5 work ends. 5. App opens/truncates the log, then `PrepareAnalysisInput(input_path)` parses/maps once into `Domain`. -6. Procedure executor receives injected `ParallelFor` plus `LinearSolver` or `TangentSolver` and computes a fully validated linear or nonlinear state without opening HDF5. Nonlinear assembly forms `r = f_int - f_ext` and `K_T = K_int - K_ext` from Step 4 internal quantities and Step 5 global-once external quantities. Nonlinear state construction preserves each node's stable `EntityIndex` and full `SourceEntityId`; source label alone is never a row identity. +6. Procedure executor receives injected `ParallelFor` plus `LinearSolver` or `TangentSolver` and computes a fully validated state without opening HDF5. Nonlinear assembly forms `r=f_int-f_ext` and `K_T=K_int-K_ext`, preserves the existing convergence decisions, then computes accepted global balance in stable node order. For each node it sets `x=X+u`, masks constrained residual components before converting reaction rotation, converts applied and reaction rotational covectors independently with `InverseTransposeLeftJacobianSO3(phi)`, and accumulates `applied+reaction` force and `x cross force + spatial moment` about `[0,0,0]`. 7. App closes the log successfully before invoking injected `ResultsWriter` or `NonlinearResultsWriter`. -8. HDF5 is the authoritative solver output. CSV views are comparison/debug artifacts only. +8. HDF5 is authoritative. Existing schema-v1 `/global/equilibrium [6]` stores only the applied-plus-reaction balance error with `location=global-balance-error`; existing nodal datasets/mask reconstruct accepted free residual and constrained reaction resultant without new datasets. +9. Comparator copies exact inputs to unique build-local directories, runs only the copies, and executes `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. CSV views are comparison/debug artifacts only. ## Reference Inventory | path | role | rows | SHA-256 | | --- | --- | ---: | --- | +| `reference/shellNL-meshfine/shellNL-meshfine.inp` | primary nonlinear input | input | `40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220` | +| `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | required blocking/warning CSV | 729 | `740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F` | +| `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | required review-only CSV | 729 | `AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363` | +| `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | optional inventory artifact | 5,408 | `6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782` | | `reference/shellNL/shellNL.inp` | nonlinear input | input | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | -| `reference/shellNL/shellNL displacements.csv` | required displacement CSV | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | -| `reference/shellNL/shellNL reactions.csv` | required reaction CSV | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | -| `reference/shellNL/shellNL stresses.csv` | nonblocking inventory artifact | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| `reference/shellNL/shellNL displacements.csv` | required blocking/warning CSV | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| `reference/shellNL/shellNL reactions.csv` | required review-only CSV | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| `reference/shellNL/shellNL stresses.csv` | optional inventory artifact | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | | `reference/shell/shell.inp` | linear input | input | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | | `reference/shell/shell displacements.csv` | required displacement CSV | 49 | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | | `reference/shell/shell reactions.csv` | nonblocking inventory artifact | 49 | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | | `reference/shell/shell stresses.csv` | nonblocking inventory artifact | 288 | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | -Blocking and warning families: +External comparison families: | family | components | rows | disposition | | --- | --- | ---: | --- | | `linear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | blocking | | `linear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | warning-only | -| `nonlinear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | blocking | -| `nonlinear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | warning-only | -| `nonlinear.reaction_inplane_force` | `RF1,RF2`, constrained nodes | 48 | blocking | -| `nonlinear.reaction_transverse_force` | `RF3`, constrained nodes | 24 | blocking | -| `nonlinear.reaction_physical_moment` | `RM1,RM2`, constrained nodes | 48 | blocking | +| `coarse.translation` | `U1,U2,U3`, nodes `1..49` | 147 | blocking | +| `coarse.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | warning-only | +| `coarse.local_reaction_inplane_force` | `RF1,RF2`, 24 constrained nodes | 48 | review-only | +| `coarse.local_reaction_transverse_force` | `RF3`, 24 constrained nodes | 24 | review-only | +| `coarse.local_reaction_physical_moment` | `RM1,RM2`, 24 constrained nodes | 48 | review-only | +| `fine.translation` | `U1,U2,U3`, nodes `1..729` | 2,187 | blocking | +| `fine.rotation` | `UR1,UR2,UR3`, nodes `1..729` | 2,187 | warning-only | +| `fine.local_reaction_inplane_force` | `RF1,RF2`, 104 constrained nodes | 208 | review-only | +| `fine.local_reaction_transverse_force` | `RF3`, 104 constrained nodes | 104 | review-only | +| `fine.local_reaction_physical_moment` | `RM1,RM2`, 104 constrained nodes | 208 | review-only | -Constrained node labels for shellNL reactions: `1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33`. +Internal blocking families for each fine/coarse accepted factor-one state are free force residual, +free moment residual, global force balance and global moment balance. Global force/moment use separate +normalized `<=1e-8` gates; free residual uses NSNR-069. Constrained reaction resultant force `[3]` +and moment `[3]` is a distinct review-only summary. -Exact shellNL `Frame`: `Increment 10: Step Time = 1.000`. +Constrained labels: coarse `1,3..9,14..17,22..33`; fine `1,3..9,34..57,82..153`. -Step 11 must not run original reference input paths directly. It snapshots exact original artifact inventory, copies input bytes unchanged into a unique build-local temp case directory, runs `FesaApplication` on the copied `.inp`, consumes copied-sibling `_results.h5` and `_log.txt`, compares generated HDF5 to original read-only CSVs, and then verifies original reference directory inventory, bytes, timestamps, and hashes are unchanged. HDF5 source path identity matches the copied user-addressed input; source content identity matches the approved input hash. +Exact fine and coarse nonlinear `Frame`: `Increment 10: Step Time = 1.000`. + +Step 11 must not run original reference input paths directly. It snapshots each exact original artifact inventory, copies input bytes unchanged into a unique build-local case directory, runs `FesaApplication` on the copy, consumes copied-sibling `_results.h5` and `_log.txt`, compares generated HDF5 to original read-only CSVs, and verifies original inventory, bytes, timestamps and hashes are unchanged. HDF5 path identity matches the copied input and source content identity matches the approved input hash. ## Acceptance Traceability Matrix @@ -176,10 +239,10 @@ Step 11 must not run original reference input paths directly. It snapshots exact | `FESA-REQ-NSNR-041` | 1,3,10 | `NSNR-IO-*`, `NSNR-ELEM-KIN-*`, `NSNR-PROC-*` | | `FESA-REQ-NSNR-074` | 2,8,10 | `NSNR-ROT-*`, `NSNR-STATE-*`, `NSNR-PROC-*` | | `FESA-REQ-NSNR-006` | 4,6,10 | `NSNR-ELEM-TAN-*`, `NSNR-SOLVER-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-007` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-069` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-070` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-008` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-007` | 5,10,11 | `NSNR-CTRL-021`, `NSNR-PROC-*`, `NSNR-REF-019` | +| `FESA-REQ-NSNR-069` | 5,10,11 | `NSNR-CTRL-018..020`, `NSNR-LOG-012`, `NSNR-REF-019` | +| `FESA-REQ-NSNR-070` | 5,10,11 | `NSNR-CTRL-021`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-008` | 5,10,11 | `NSNR-CTRL-020`, `NSNR-PROC-*`, `NSNR-REF-019` | | `FESA-REQ-NSNR-014` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | | `FESA-REQ-NSNR-046` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | | `FESA-REQ-NSNR-048` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | @@ -187,14 +250,14 @@ Step 11 must not run original reference input paths directly. It snapshots exact | `FESA-REQ-NSNR-063` | 5,10 | `NSNR-CTRL-*`, `NSNR-PROC-*` | | `FESA-REQ-NSNR-016` | 1,5 | `NSNR-IO-*`, `NSNR-CTRL-*` | | `FESA-REQ-NSNR-011` | 8,9,10 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-019` | 4,8,10 | `NSNR-ELEM-TAN-*`, `NSNR-STATE-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-019` | 4,8,10,11 | `NSNR-ELEM-TAN-*`, `NSNR-STATE-*`, `NSNR-PROC-019`, `NSNR-HDF5-014`, `NSNR-REF-022`, `NSNR-REF-024..025` | | `FESA-REQ-NSNR-020` | 1 | `NSNR-IO-*` | -| `FESA-REQ-NSNR-021` | 8,9,10 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*` | -| `FESA-REQ-NSNR-024` | 7,10 | `NSNR-LOG-*`, `NSNR-PROC-*` | +| `FESA-REQ-NSNR-021` | 8,9,10,11 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*`, `NSNR-HDF5-014` | +| `FESA-REQ-NSNR-024` | 7,10,11 | `NSNR-LOG-012`, `NSNR-PROC-*`, `NSNR-REF-019` | | `FESA-REQ-NSNR-083` | 0,10,12 | `NSNR-CLI-*`, `NSNR-PROC-*`, `NSNR-EVID-*` | -| `FESA-REQ-NSNR-026` | 8,10,11,12 | `NSNR-STATE-*`, `NSNR-PROC-*`, `NSNR-REF-*`, `NSNR-EVID-*` | -| `FESA-REQ-NSNR-030` | 2,3,4,5,6,7,8,9,10,11 | `NSNR-ROT-*`, `NSNR-ELEM-*`, `NSNR-CTRL-*`, `NSNR-SOLVER-*`, `NSNR-LOG-*`, `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*`, `NSNR-REF-*` | -| `FESA-REQ-NSNR-034` | 11 | `NSNR-REF-*` | +| `FESA-REQ-NSNR-026` | 8,10,11,12 | `NSNR-STATE-*`, `NSNR-PROC-*`, `NSNR-REF-020..023`, `NSNR-EVID-*` | +| `FESA-REQ-NSNR-030` | 2,3,4,5,6,7,8,9,10,11 | `NSNR-ROT-*`, `NSNR-ELEM-*`, `NSNR-CTRL-*`, `NSNR-SOLVER-*`, `NSNR-LOG-*`, `NSNR-STATE-*`, `NSNR-HDF5-014`, `NSNR-PROC-019`, `NSNR-REF-022`, `NSNR-REF-024..025` | +| `FESA-REQ-NSNR-034` | 11,12 | `NSNR-REF-020..023`, `NSNR-EVID-003..007` | ## Numerical Review Coverage @@ -208,7 +271,9 @@ Step 11 must not run original reference input paths directly. It snapshots exact | patch/sign recovery | 3,4 | | load/boundary path and `rho_M` | 5,10 | | Newton factor/iteration lifecycle | 5,7,10 | -| four convergence gates | 5,7,10 | +| four convergence gates | 5,7,10,11; preserved partial selector/control/log work is regression-verified in Step 11 | +| global balance/current-arm/spatial moment | 11 | +| review-only local reaction and fine/coarse reference | 11,12 | | commit/rollback/determinism | 8,10,11,12 | ## Validation Commands @@ -226,21 +291,51 @@ ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Focused CTest commands are written explicitly in each `stepN.md`. +Step 11 focused commands additionally include: + +```powershell +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearConvergence|NewtonIterationLog)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure +``` Harness Python validation is not in scope unless a Step changes Harness Python behavior, hook behavior, or agent configuration. ## Risks And Downstream Handoff -- Main implementation risk: current `LinearStaticAnalysis` owns parse/map and HDF5 write internally. Step 10 must refactor through prepared analysis flow so log close precedes HDF5 finalization for both linear and nonlinear runs. -- Main numerical risk: nonlinear MITC4 tangent and finite rotation derivatives must pass internal derivative/objectivity tests before reference comparison can be meaningful. -- Main backend risk: nonlinear tangent can be nonsymmetric. Preserve SPD `MklPardisoSolver` unchanged and add separate `TangentSolver`. -- Handoff to Implementation Agent through Coordinator: execute Steps 0..12 in order, one current Step at a time, with RED observed failure evidence before GREEN implementation, then focused/full CTest. Final reference gate is Step 11; evidence-document closure is Step 12. +- Current numerical risk: nonzero prescribed motion exposes the existing raw-residual/initial-arm + shortcut. The minimal fix must preserve same-state, stable-order and mask-before-spatial-conversion + semantics; passing zero-prescribed shellNL cases alone is insufficient evidence. +- Current reference risk: fine/coarse U and internal balance/free-residual are blocking, but local RF/RM + may still show large review-only errors. Do not convert those findings into omitted rows, relaxed + tolerance or a blocking gate. +- Current worktree risk: Step 11 contains partial selector/comparator/CMake edits. Preserve and continue + those files; do not delete, reset, replay selector RED or replace the comparator design wholesale. +- Handoff to Implementation Agent through Coordinator: after a separate explicit Harness request, + resume only Executor-selected Step 11. Preserve existing `NSNR-PROC-019`, `NSNR-HDF5-014` and + `NSNR-REF-020..023`; first re-observe the current-case old-gate RED, then add `NSNR-REF-024..025` + before changing the comparator-only shared force/moment gate to `1e-8`. Verify preserved + selector/log tests, then run focused/full preset validation. + Step 12 remains actual-evidence closure. + +## Harness Step Draft + +| Step | name | one-module scope | prerequisites | stop condition | +| ---: | --- | --- | --- | --- | +| 11 | `equilibrium-projection-and-reference-gate` | Nonlinear accepted equilibrium projection, exact HDF5 location and test-private reference gate | Steps 0–10 completed; approved upstream hashes; partial Step 11 work preserved; VsDevCmd/preset dependency environment | Stop on unexpected RED, public API/schema/tolerance/reference change, reference mutation, or any focused/full failure. | +| 12 | `execution-closure-and-evidence-docs` | Fresh evidence reports plus directly superseded PRD/ARCH/ADR statements | Step 11 completed with actual command/reference evidence | Stop if Step 11 is incomplete, evidence is stale/untraceable, a code/test/CMake change is needed, or any final command fails. | + +Both Step files contain exact commands, file ownership, RED/GREEN/VERIFY order and prohibitions. +Materialization does not select or execute either Step. ## Open Issues -None. +None blocking planning. Revised upstream contracts and exact required artifacts are complete; actual +RED/GREEN/build/reference outcomes remain Step 11/12 evidence and are not pre-claimed. ## Plan Approval Boundary -The user-approved plan and pending phase files do not authorize Harness execution. `scripts/execute.py nonlinear-static-newton-raphson` requires a separate explicit user request. +The Coordinator-audited REAPPROVAL-012 revision authorizes this planning/phase materialization and +blocked-to-pending recovery. It does not itself execute Harness; Executor invocation remains under +the Coordinator's separately audited execution authority. diff --git a/docs/nonlinear-static-newton-raphson/io.md b/docs/nonlinear-static-newton-raphson/io.md index 08070f9..bb6930c 100644 --- a/docs/nonlinear-static-newton-raphson/io.md +++ b/docs/nonlinear-static-newton-raphson/io.md @@ -4,20 +4,22 @@ - feature_id: `nonlinear-static-newton-raphson` - source_requirement: `docs/nonlinear-static-newton-raphson/requirements.md` -- source_requirement_sha256: `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` +- source_requirement_sha256: `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` - source_research: `docs/nonlinear-static-newton-raphson/research.md` -- source_research_sha256: `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` +- source_research_sha256: `4F63D23E03D1A68E5F8563B678FDD6F761F9558165778EF0433133EFAD303570` - source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` -- source_formulation_sha256: `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` +- source_formulation_sha256: `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9` - source_numerical_review: `docs/nonlinear-static-newton-raphson/numerical-review.md` -- source_numerical_review_sha256: `9517E11804C45A6F3822D18821D52EA493AE20353C8FFAD61E960F4315977D01` +- source_numerical_review_sha256: `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` - source_reference_model: `docs/nonlinear-static-newton-raphson/reference-model.md` -- source_reference_model_sha256: `52D10B1D0C0500B295C5E48BCB3618B309D9696371B8070D4E3DCEE8D3D74CD3` +- source_reference_model_sha256: `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA` +- decision_source: `USER-DECISION-004 option 1` +- balance_gate_decision: user-approved factor-one global force/moment normalized gate `<=1e-8` - repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, `docs/TOLERANCE.md` - status: `ready-for-coordinator-review` - owner_agent: `io-definition-agent` -- date: `2026-08-23` +- date: `2026-08-28` - authoritative_output: input sibling `_results.h5` - diagnostic_log: input sibling `_log.txt` - hdf5_schema_version: `1` @@ -386,15 +388,15 @@ failure도 entered iteration이 없으면 iteration record가 없는 log file만 | 7 | `failing_stage` | `none` for completed gate records, otherwise failing stage enum | | 8 | `residual_force_channel` | literal `residual_force` or `not-evaluated(reason)` | | 9 | `residual_force_numerator_norm` | `||r_f^u||_inf` or `not-evaluated(reason)` | -| 10 | `residual_force_denominator_scale` | `max(||f_int,f^u||_inf,||f_ext,f^u||_inf)` or `not-evaluated(reason)` | -| 11 | `residual_force_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 10 | `residual_force_denominator_scale` | matching `||f_ext,f^u||_inf`가 exact zero이면 exact `0`; nonzero이면 `max(||f_int,f^u||_inf,||f_ext,f^u||_inf)`; 또는 `not-evaluated(reason)` | +| 11 | `residual_force_branch` | matching external scale이 nonzero이면 `relative`, exact zero이면 `zero-scale`, 또는 `not-evaluated(reason)` | | 12 | `residual_force_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | | 13 | `residual_force_threshold_unit` | `1`, `force`, or `not-evaluated(reason)` | | 14 | `residual_force_pass` | `0`, `1`, or `not-evaluated(reason)` | | 15 | `residual_moment_channel` | literal `residual_moment` or `not-evaluated(reason)` | | 16 | `residual_moment_numerator_norm` | `||r_f^phi||_inf` or `not-evaluated(reason)` | -| 17 | `residual_moment_denominator_scale` | `max(||f_int,f^phi||_inf,||f_ext,f^phi||_inf)` or `not-evaluated(reason)` | -| 18 | `residual_moment_branch` | `relative`, `zero-scale`, or `not-evaluated(reason)` | +| 17 | `residual_moment_denominator_scale` | matching `||f_ext,f^phi||_inf`가 exact zero이면 exact `0`; nonzero이면 `max(||f_int,f^phi||_inf,||f_ext,f^phi||_inf)`; 또는 `not-evaluated(reason)` | +| 18 | `residual_moment_branch` | matching external scale이 nonzero이면 `relative`, exact zero이면 `zero-scale`, 또는 `not-evaluated(reason)` | | 19 | `residual_moment_threshold` | `1e-2` for `relative`, `1e-3` for `zero-scale`, or `not-evaluated(reason)` | | 20 | `residual_moment_threshold_unit` | `1`, `force*length`, or `not-evaluated(reason)` | | 21 | `residual_moment_pass` | `0`, `1`, or `not-evaluated(reason)` | @@ -417,13 +419,29 @@ failure도 entered iteration이 없으면 iteration record가 없는 log file만 | 38 | `outcome` | `accepted`, `continue`, `nonconverged`, or `failed` | | 39 | `diagnostic_code` | `none` or approved diagnostic code | -Completed gate record는 `failing_stage=none`이고 네 channel의 identity, numerator/norm, -denominator/scale, branch, typed threshold, pass를 모두 finite 또는 enum value로 노출한다. -Denominator가 exact zero이면 branch는 `zero-scale`이고 typed threshold는 residual force -`1e-3 force`, residual moment `1e-3 force*length`, correction translation `1e-3 length`, -correction rotation `1e-3 dimensionless`다. Denominator가 nonzero이면 branch는 `relative`이고 -threshold는 dimensionless `1e-2`다. Empty free channel은 numerator와 denominator가 exact zero인 -`zero-scale` branch로 평가한다. +`nsnr-log-v1`의 39개 field label, order와 TAB-separated `label=value` serialization은 +변경하지 않는다. Completed gate record는 `failing_stage=none`이고 네 channel의 identity, +numerator/norm, denominator/scale, branch, typed threshold, pass를 모두 finite 또는 enum +value로 노출한다. + +Residual channel은 required residual/internal/external vector와 그 infinity norm을 모두 finite로 +확인한 뒤 matching external scale `S_ext^u=||f_ext,f^u||_inf` 또는 +`S_ext^phi=||f_ext,f^phi||_inf` 자체로 branch를 선택한다. Matching external scale이 exact +zero이면 `residual_*_denominator_scale=0`, `residual_*_branch=zero-scale`로 직렬화하고 numerator에 +typed absolute `1e-3 force` 또는 `1e-3 force*length`를 inclusive `<=`로 직접 적용한다. +이 exact `0`은 matching external selector를 직렬화하며 divisor 또는 internal-inclusive max가 +아니다. Selector predicate는 `S_ext==0`이고 tolerance band, zero clamp, `max(1,...)`를 쓰지 않는다. +Internal scale 또는 residual numerator가 nonzero여도 이 branch를 `relative`로 바꾸지 않는다. +Matching external scale이 nonzero이면 `residual_*_denominator_scale`은 retained +`max(||f_int,f||_inf,||f_ext,f||_inf)`이고 `residual_*_branch=relative`이며, numerator/denominator +ratio에 dimensionless `1e-2`를 inclusive `<=`로 적용한다. 이 branch에 typed absolute gate를 +OR로 추가하지 않는다. + +Correction channel은 기존 계약 그대로 current-trial incremental-solution denominator가 exact +zero이면 `zero-scale`과 typed `1e-3 length` 또는 `1e-3 dimensionless`를, nonzero이면 +`relative`와 dimensionless `1e-2`를 사용한다. Empty free channel은 exact-zero numerator/scale의 +typed `zero-scale` branch로 평가한다. 네 channel의 pass는 `combined_pass`에서 logical AND로만 +결합한다. Early failure record는 entered iteration 하나에 대응한다. 이미 계산된 earlier fields는 실제 finite value를 기록하고, 실패 stage 뒤의 모든 later field는 `not-evaluated(reason)`을 기록한다. @@ -523,19 +541,43 @@ row는 정확히 하나다. Factor zero는 이 dataset에 row를 갖지 않고 ` | generalized internal force | `/steps/Step-1/frames//nodal/generalized_internal_force` | `[node_count,6]` float64 | node row; `[FI1,FI2,FI3,MI_PHI1,MI_PHI2,MI_PHI3]` | `[force x3,force*length x3]`; work-conjugate to `[u,phi]`; nodal | | generalized external force | `/steps/Step-1/frames//nodal/generalized_external_force` | `[node_count,6]` float64 | node row; `[FE1,FE2,FE3,ME_PHI1,ME_PHI2,ME_PHI3]` | `[force x3,force*length x3]`; work-conjugate to `[u,phi]`; approved physical moment projection 후 fixed-global dead loads; nodal | | generalized residual | `/steps/Step-1/frames//nodal/generalized_residual` | `[node_count,6]` float64 | node row; `[RU1,RU2,RU3,RPHI1,RPHI2,RPHI3]` | `[force x3,force*length x3]`; nonlinear solution coordinate의 full assembled `f_int-f_ext`; nodal | -| reaction / physical residual projection | `/steps/Step-1/frames//nodal/reaction` | `[node_count,6]` float64 | node row; `[RF1,RF2,RF3,RM1,RM2,RM3]` | `[force x3,force*length x3]`; global; constrained entry는 physical reaction, free entry는 same-state equilibrium evidence; rotational columns는 `J_l(phi)^(-T)` spatial moment conversion | +| reaction / spatial full-residual projection | `/steps/Step-1/frames//nodal/reaction` | `[node_count,6]` float64 | node row; `[RF1,RF2,RF3,RM1,RM2,RM3]` | `[force x3,force*length x3]`; global; translation은 full generalized residual과 같고 rotation은 `J_l(phi)^(-T)` spatial moment conversion. Constrained reaction은 mask를 generalized residual에 먼저 적용한 뒤 변환하며 accepted free residual의 authority는 이 dataset이 아니라 `nodal/generalized_residual`이다. | | shell local frame | `/steps/Step-1/frames//element/shell/local_frame` | `[element_count,4,3,3]` float64 | element row, midsurface location row `GP1..GP4`, axis row `[E1,E2,E3]`, global component column `[X,Y,Z]` | dimensionless; physical recovery용 fixed-initial shell local frame; rotating Abaqus output frame이 아님 | | generalized strain | `/steps/Step-1/frames//element/shell/generalized_strain` | `[element_count,4,8]` float64 | element row, `GP1..GP4`; `[E11,E22,G12,K11,K22,K12,G13,G23]` | `[1,1,1,1/length,1/length,1/length,1,1]`; fixed-reference shell local; midsurface | | section resultant | `/steps/Step-1/frames//element/shell/section_resultant` | `[element_count,4,8]` float64 | element row, `GP1..GP4`; `[N11,N22,N12,M11,M22,M12,Q13,Q23]` | `[force/length x3,force x3,force/length x2]`; fixed-reference shell local; midsurface | | in-plane stress | `/steps/Step-1/frames//element/shell/stress` | `[element_count,4,3,3]` float64 | element row, `GP1..GP4`, section position `[BOTTOM,MIDDLE,TOP]`, component `[S11,S22,S12]` | `force/length^2`; fixed-reference shell local; direct bottom/middle/top evaluation | | physical strain energy | `/steps/Step-1/frames//global/energy` | `[1]` float64 | `[PHYSICAL_STRAIN_ENERGY]` | `force*length`; deterministic element reduction; numerical drilling stabilization 제외 | -| global equilibrium | `/steps/Step-1/frames//global/equilibrium` | `[6]` float64 | `[FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3]` | `[force x3,force*length x3]`; global Cartesian; moment about global origin `[0,0,0]`, current force arms와 spatial physical nodal moments 사용 | +| global applied-plus-reaction balance error | `/steps/Step-1/frames//global/equilibrium` | `[6]` float64 | `[FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3]` | `[force x3,force*length x3]`; global Cartesian; formulation §13.4의 applied-plus-constrained-reaction balance error; moment about global origin `[0,0,0]`, current force arms와 spatial physical nodal moments 사용; `location=global-balance-error` | Trial Newton state, iteration history, line search, cutback attempt, damping, automatic stabilization, numerical drilling stress, drilling energy ratio, `S33`, `S13`, `S23`, nodal stress extrapolation, element-corner stress, averaged stress, Abaqus integration-point number에 대한 HDF5 dataset은 만들지 않는다. +#### 7.5.1 Equilibrium Projection and Schema Compatibility + +Schema version `1`과 기존 `/global/equilibrium` path/shape는 유지한다. 기존 계약이 이미 +global origin `[0,0,0]`, current force arm과 spatial physical nodal moment를 지정했으므로 이 +dataset의 authoritative meaning은 처음부터 formulation §13.4의 **global +applied-plus-reaction balance error**다. Raw full-residual sum, initial-coordinate arm 또는 raw +rotation-coordinate covector를 이 path에 쓰는 것은 schema-compatible implementation이 아니다. +이 의미 명확화는 path, shape 또는 component를 바꾸지 않으므로 schema version을 올리지 않는다. + +같은 accepted frame의 세 equilibrium quantity는 다음처럼 서로 다른 HDF5 projection으로 +재구성된다. 별도 중복 summary dataset은 만들지 않는다. + +| logical quantity | authoritative HDF5 projection | coordinates / units | disposition | +| --- | --- | --- | --- | +| accepted free residual | `/model/nodal_constraint_mask==0`인 component를 `/nodal/generalized_residual`에서 선택한다. NSNR-069 scale은 같은 free component의 `/nodal/generalized_internal_force`와 `/nodal/generalized_external_force`에서 계산한다. | translation channel은 global force, rotation-coordinate channel은 generalized force-length | `blocking-internal` | +| constrained reaction resultant | `/model/nodal_constraint_mask`를 `/nodal/generalized_residual`에 먼저 적용해 constrained generalized reaction을 만들고, rotation block만 accepted `phi`의 `J_l(phi)^(-T)`로 spatial moment로 변환한다. Current position은 `/model/nodes.coordinates + /nodal/displacement[UX,UY,UZ]`다. Stable node order로 `sum(F_react)`와 `sum(x cross F_react + M_react)`를 계산한다. | global force `[3]`, global spatial force-length moment `[3]` about `[0,0,0]` | `review-only-summary` | +| applied-plus-reaction balance error | required dataset `/global/equilibrium`; applied contribution은 accepted `/nodal/generalized_external_force`의 translation block과 `J_l(phi)^(-T)`로 변환한 rotational block, reaction contribution은 바로 위 constrained projection을 사용한다. Stable node order로 formulation §13.4의 합을 계산한다. | global force `[3]`, global spatial force-length moment `[3]` about `[0,0,0]` | `blocking-internal` | + +Componentwise constraint selection은 spatial moment 변환보다 먼저 수행한다. 따라서 partial +rotational constraint나 nonzero prescribed rotation에서도 constrained reaction resultant에 free +generalized residual이 섞이지 않는다. Local `/nodal/reaction` display나 full residual sum을 위 세 +quantity 중 다른 하나의 substitute로 사용하지 않는다. Nonzero prescribed translation에서는 +initial position이 아니라 accepted current position을 force arm으로 사용한다. + ### 7.6 Diagnostics Dataset `/diagnostics`는 mandatory이며 row가 0개일 수 있다. @@ -568,9 +610,13 @@ CSV는 FESA output이 아니다. HDF5에서 추출한 deterministic CSV view는 | case id | role | exact path | comparison disposition | | --- | --- | --- | --- | -| `shellnl-s4-final` | nonlinear input | `reference/shellNL/shellNL.inp` | required source input | -| `shellnl-s4-final` | displacement CSV | `reference/shellNL/shellNL displacements.csv` | required comparison | -| `shellnl-s4-final` | reaction CSV | `reference/shellNL/shellNL reactions.csv` | constrained nodes/components only required comparison | +| `shellnl-meshfine-s4-final` | primary nonlinear input | `reference/shellNL-meshfine/shellNL-meshfine.inp` | required source input | +| `shellnl-meshfine-s4-final` | displacement CSV | `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | required blocking/warning comparison | +| `shellnl-meshfine-s4-final` | reaction CSV | `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | constrained nodes/components only required review | +| `shellnl-meshfine-s4-final` | stress CSV | `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | optional read-only inspection/order evidence only | +| `shellnl-s4-final` | companion nonlinear input | `reference/shellNL/shellNL.inp` | required source input | +| `shellnl-s4-final` | displacement CSV | `reference/shellNL/shellNL displacements.csv` | required blocking/warning comparison | +| `shellnl-s4-final` | reaction CSV | `reference/shellNL/shellNL reactions.csv` | constrained nodes/components only required review | | `shellnl-s4-final` | stress CSV | `reference/shellNL/shellNL stresses.csv` | optional read-only inspection/order evidence only | | `shell-s4-linear-limit` | linear control input | `reference/shell/shell.inp` | existing linear MITC4 contract의 required regression input | | `shell-s4-linear-limit` | displacement CSV | `reference/shell/shell displacements.csv` | required regression comparison | @@ -578,21 +624,22 @@ CSV는 FESA output이 아니다. HDF5에서 추출한 deterministic CSV view는 | `shell-s4-linear-limit` | stress CSV | `reference/shell/shell stresses.csv` | optional read-only inspection/order evidence only | Reference artifact file은 workflow에서 rename, rewrite, normalize, zero-clamp, repair, -regenerate하지 않는다. +regenerate하지 않는다. Fine과 coarse nonlinear case는 각각 자기 input/CSV에 독립적으로 +비교하며 cross-mesh row mapping이나 interpolation을 만들지 않는다. ### 8.2 Accepted-State and Frame Mapping -- `shellnl-s4-final`은 accepted factor-one HDF5 frame만 비교한다. 해당 frame은 - `/steps/Step-1/accepted_frames`에서 `is_factor_one=1`이고 `load_factor=1.0`인 unique row다. - 그 `frame_index`가 `/steps/Step-1/frames/`를 선택한다. -- Required `shellNL` CSV row는 exact `Frame` value - `Increment 10: Step Time = 1.000`만 가져야 하며, 이는 accepted factor-one state로 - 논리 매핑한다. Required row에 다른 `Frame` 값이 있으면 schema mismatch다. +- `shellnl-meshfine-s4-final`과 `shellnl-s4-final`은 각각 accepted factor-one HDF5 frame만 + 비교한다. 해당 frame은 `/steps/Step-1/accepted_frames`에서 `is_factor_one=1`이고 + `load_factor=1.0`인 unique row다. 그 `frame_index`가 + `/steps/Step-1/frames/`를 선택한다. +- 두 nonlinear case의 required CSV row는 exact `Frame` value + `Increment 10: Step Time = 1.000`만 가져야 하며, 이는 각 case의 accepted + factor-one state로 논리 매핑한다. Required row에 다른 `Frame` 값이 있으면 schema mismatch다. - `shell-s4-linear-limit` CSV에는 `Frame` column이 없으며 `docs/linear-static-mitc4-shell/io.md`의 existing linear MITC4 final frame `/steps/Step-1/frames/0`에 매핑한다. -- Trial Newton state, iteration log line, optional stress inventory row는 reference row가 - 아니다. +- Trial Newton state, iteration log line, optional stress inventory row는 reference row가 아니다. ### 8.3 Nodal Displacement Projection @@ -602,93 +649,141 @@ Required logical key는 다음과 같다. (case_id, accepted_state, canonical_instance_name, source_node_label, component) ``` -두 case 모두 instance `PART-1-1`에서 node label `1..49`가 정확히 한 번씩 필요하다. -Instance matching은 case-insensitive로 수행하되 report에는 raw spelling을 보존한다. +Instance `PART-1-1`에서 linear/coarse case는 node label `1..49`, fine case는 `1..729`를 +각각 정확히 한 번 요구한다. Instance matching은 case-insensitive로 수행하되 report에는 raw +spelling을 보존한다. Row order는 identity가 아니다. | CSV column | comparison component | nonlinear HDF5 source | linear regression HDF5 source | | --- | --- | --- | --- | -| `U-U1` | `U1` | `nodal/displacement` column `UX` | `nodal/displacement` column `UX` | -| `U-U2` | `U2` | `nodal/displacement` column `UY` | `nodal/displacement` column `UY` | -| `U-U3` | `U3` | `nodal/displacement` column `UZ` | `nodal/displacement` column `UZ` | -| `UR-UR1` | `UR1` | `nodal/displacement` column `URX` | `nodal/displacement` column `URX` | -| `UR-UR2` | `UR2` | `nodal/displacement` column `URY` | `nodal/displacement` column `URY` | -| `UR-UR3` | `UR3` | `nodal/displacement` column `URZ` | `nodal/displacement` column `URZ` | +| `U-U1` | `U1` | factor-one `nodal/displacement` column `UX` | final `nodal/displacement` column `UX` | +| `U-U2` | `U2` | factor-one `nodal/displacement` column `UY` | final `nodal/displacement` column `UY` | +| `U-U3` | `U3` | factor-one `nodal/displacement` column `UZ` | final `nodal/displacement` column `UZ` | +| `UR-UR1` | `UR1` | factor-one `nodal/displacement` column `URX` | final `nodal/displacement` column `URX` | +| `UR-UR2` | `UR2` | factor-one `nodal/displacement` column `URY` | final `nodal/displacement` column `URY` | +| `UR-UR3` | `UR3` | factor-one `nodal/displacement` column `URZ` | final `nodal/displacement` column `URZ` | -`U1/U2/U3`는 blocking이다. `UR1/UR2/UR3`는 두 case 모두 warning-only다. UR warning +`U1/U2/U3`는 blocking이다. `UR1/UR2/UR3`는 모든 case에서 warning-only다. UR warning exceedance는 blocking verdict를 바꾸지 않는다. -### 8.4 Nonlinear Constrained Reaction Projection +### 8.4 Nonlinear Local Reaction Review Projection -Reaction comparison은 `shellnl-s4-final`에만 적용하며 input boundary mask의 constrained node -중 아래 24개 node에만 적용한다. +Reaction review row는 input boundary mask로 선택한다. -```text -1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33 -``` +- coarse `shellnl-s4-final`: `1,3..9,14..17,22..33` — 24 nodes; +- fine `shellnl-meshfine-s4-final`: `1,3..9,34..57,82..153` — 104 nodes. -승인 input에서 이 24개 node는 여섯 global DOF가 모두 constrained다. Comparator는 required -HDF5 reaction row eligibility를 CSV zero value가 아니라 `/model/nodal_constraint_mask`와 -source node identity에서 도출한다. +승인 input에서 위 node들은 여섯 global DOF가 모두 constrained다. Comparator는 row +eligibility를 CSV zero value나 row position이 아니라 `/model/nodal_constraint_mask`와 source +node identity에서 도출한다. Translation reaction은 factor-one +`nodal/generalized_residual`의 constrained `RU1..RU3`이고, rotational reaction은 constrained +`RPHI1..RPHI3`를 먼저 선택한 뒤 accepted `phi`의 `J_l(phi)^(-T)`로 변환한 spatial physical +moment다. Stored all-six-constrained rows에서는 factor-one `/nodal/reaction`의 대응 column과 +동일해야 한다. -| CSV columns | logical family | HDF5 source | disposition | +| CSV columns | coarse family | fine family | disposition | | --- | --- | --- | --- | -| `RF-RF1`, `RF-RF2` | `nonlinear.reaction_inplane_force` | factor-one `/nodal/reaction` columns `RF1,RF2` | blocking | -| `RF-RF3` | `nonlinear.reaction_transverse_force` | factor-one `/nodal/reaction` column `RF3` | blocking | -| `RM-RM1`, `RM-RM2` | `nonlinear.reaction_physical_moment` | factor-one `/nodal/reaction` columns `RM1,RM2`; `J_l(phi)^(-T)` 변환 뒤 spatial physical moment | blocking | -| `RM-RM3` | excluded | comparison projection 없음 | blocking 및 warning-only family에서 제외 | +| `RF-RF1`, `RF-RF2` | `coarse.local_reaction_inplane_force` | `fine.local_reaction_inplane_force` | `review-only` | +| `RF-RF3` | `coarse.local_reaction_transverse_force` | `fine.local_reaction_transverse_force` | `review-only` | +| `RM-RM1`, `RM-RM2` | `coarse.local_reaction_physical_moment` | `fine.local_reaction_physical_moment` | `review-only` | +| `RM-RM3` | comparison projection 없음 | comparison projection 없음 | `excluded` | -Raw generalized rotation-coordinate residual column은 Abaqus `RM` CSV column과 직접 비교하지 -않는다. +Raw generalized rotation-coordinate residual은 Abaqus `RM` CSV column과 직접 비교하지 않는다. +Review-only family도 source key, schema, inventory, finite value와 모든 row/common-policy error를 +보고한다. 그 precheck 또는 numerical finding은 blocking verdict를 바꾸지 않는다. -### 8.5 Comparison Families +### 8.5 Internal Factor-One Equilibrium Projection + +Internal equilibrium은 Abaqus CSV comparison이 아니다. Fine primary와 coarse companion의 +각 accepted factor-one HDF5 frame에서 Section 7.5.1의 projection을 사용한다. + +| family id | exact HDF5 rows/components | gate | +| --- | --- | --- | +| `coarse.accepted_free_force_residual` | 75 free `RU1/RU2/RU3` rows와 같은 rows의 internal/external force | NSNR-069 force channel | +| `coarse.accepted_free_moment_residual` | 75 free `RPHI1/RPHI2/RPHI3` rows와 같은 rows의 internal/external generalized moment | NSNR-069 moment channel | +| `coarse.global_force_balance` | factor-one `/global/equilibrium` `FORCE_1..3` | normalized `<=1e-8` | +| `coarse.global_moment_balance` | factor-one `/global/equilibrium` `MOMENT_1..3` | normalized `<=1e-8` | +| `fine.accepted_free_force_residual` | 1,875 free `RU1/RU2/RU3` rows와 같은 rows의 internal/external force | NSNR-069 force channel | +| `fine.accepted_free_moment_residual` | 1,875 free `RPHI1/RPHI2/RPHI3` rows와 같은 rows의 internal/external generalized moment | NSNR-069 moment channel | +| `fine.global_force_balance` | factor-one `/global/equilibrium` `FORCE_1..3` | normalized `<=1e-8` | +| `fine.global_moment_balance` | factor-one `/global/equilibrium` `MOMENT_1..3` | normalized `<=1e-8` | + +Global balance의 force scale은 applied/reaction nodal force contribution의 2-norm 합 중 큰 +값, moment scale은 current-arm force moment와 spatial physical nodal moment contribution의 +2-norm 합 중 큰 값이다. Force와 moment를 분리해 `norm(balance_error)/scale<=1e-8`을 +적용한다. Scale이 exact zero이면 balance error도 exact zero일 때만 pass한다. Absolute floor, +`max(1,S)` 또는 zero clamp는 없다. Accepted free residual은 NSNR-069의 external-channel exact-zero/ +nonzero branch를 그대로 재현한다. 이 internal gate에는 `docs/TOLERANCE.md`, Abaqus value 또는 +local reaction error를 적용하지 않는다. + +Constrained reaction resultant force `[3]`와 moment `[3]`는 Section 7.5.1의 distinct +`review-only-summary`로 함께 계산·보고한다. `/global/equilibrium`, constrained reaction +resultant와 accepted free residual 중 어느 하나를 다른 quantity의 대체 dataset으로 쓰지 않는다. + +### 8.6 External Comparison Families External tolerance source는 정확히 `docs/TOLERANCE.md`다. 별도 absolute floor, `max(1,S)` -clamp, row averaging, source-order matching, component calibration, zero clamp는 허용하지 +clamp, row averaging, source-order matching, component calibration 또는 zero clamp는 허용하지 않는다. | family id | case | components | required row count | units / coordinates | disposition | | --- | --- | --- | ---: | --- | --- | | `linear.translation` | `shell-s4-linear-limit` | `U1,U2,U3` on nodes `1..49` | 147 | length / global | blocking regression | | `linear.rotation` | `shell-s4-linear-limit` | `UR1,UR2,UR3` on nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | -| `nonlinear.translation` | `shellnl-s4-final` | `U1,U2,U3` on nodes `1..49` | 147 | length / global | blocking | -| `nonlinear.rotation` | `shellnl-s4-final` | `UR1,UR2,UR3` on nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | -| `nonlinear.reaction_inplane_force` | `shellnl-s4-final` | `RF1,RF2` on constrained nodes | 48 | force / fixed-initial global plane | blocking | -| `nonlinear.reaction_transverse_force` | `shellnl-s4-final` | `RF3` on constrained nodes | 24 | force / fixed-initial global transverse | blocking | -| `nonlinear.reaction_physical_moment` | `shellnl-s4-final` | `RM1,RM2` on constrained nodes | 48 | force*length / global spatial | blocking | +| `coarse.translation` | `shellnl-s4-final` | `U1,U2,U3` on nodes `1..49` | 147 | length / global | blocking | +| `coarse.rotation` | `shellnl-s4-final` | `UR1,UR2,UR3` on nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | +| `coarse.local_reaction_inplane_force` | `shellnl-s4-final` | `RF1,RF2` on constrained nodes | 48 | force / global shell plane | review-only | +| `coarse.local_reaction_transverse_force` | `shellnl-s4-final` | `RF3` on constrained nodes | 24 | force / global transverse | review-only | +| `coarse.local_reaction_physical_moment` | `shellnl-s4-final` | `RM1,RM2` on constrained nodes | 48 | force*length / global spatial | review-only | +| `fine.translation` | `shellnl-meshfine-s4-final` | `U1,U2,U3` on nodes `1..729` | 2,187 | length / global | blocking | +| `fine.rotation` | `shellnl-meshfine-s4-final` | `UR1,UR2,UR3` on nodes `1..729` | 2,187 | dimensionless / fixed-initial global | warning-only | +| `fine.local_reaction_inplane_force` | `shellnl-meshfine-s4-final` | `RF1,RF2` on constrained nodes | 208 | force / global shell plane | review-only | +| `fine.local_reaction_transverse_force` | `shellnl-meshfine-s4-final` | `RF3` on constrained nodes | 104 | force / global transverse | review-only | +| `fine.local_reaction_physical_moment` | `shellnl-meshfine-s4-final` | `RM1,RM2` on constrained nodes | 208 | force*length / global spatial | review-only | -Reference-model read-only scale audit value는 다음과 같다. +Reference-model read-only scale audit value는 다음과 같다. 이 값은 calibration 상수가 아니다. | family id | `S=max(abs(reference))` | `0.01*S` | | --- | ---: | ---: | | `linear.translation` | `2.37408203e-5` | `2.37408203e-7` | | `linear.rotation` | `7.60725743e-6` | `7.60725743e-8` | -| `nonlinear.translation` | `2.37408203e-5` | `2.37408203e-7` | -| `nonlinear.rotation` | `7.60725743e-6` | `7.60725743e-8` | -| `nonlinear.reaction_inplane_force` | `1.91663182` | `1.91663182e-2` | -| `nonlinear.reaction_transverse_force` | `1.17769805e4` | `1.17769805e2` | -| `nonlinear.reaction_physical_moment` | `1.95418418e4` | `1.95418418e2` | +| `coarse.translation` | `2.37408203e-5` | `2.37408203e-7` | +| `coarse.rotation` | `7.60725743e-6` | `7.60725743e-8` | +| `coarse.local_reaction_inplane_force` | `1.91663182` | `1.91663182e-2` | +| `coarse.local_reaction_transverse_force` | `1.17769805e4` | `1.17769805e2` | +| `coarse.local_reaction_physical_moment` | `1.95418418e4` | `1.95418418e2` | +| `fine.translation` | `2.57957054e-5` | `2.57957054e-7` | +| `fine.rotation` | `6.58704994e-6` | `6.58704994e-8` | +| `fine.local_reaction_inplane_force` | `5.38827419e-1` | `5.38827419e-3` | +| `fine.local_reaction_transverse_force` | `2.78506128e3` | `2.78506128e1` | +| `fine.local_reaction_physical_moment` | `4.71557520e3` | `4.71557520e1` | -### 8.6 Row Prechecks +### 8.7 Row Prechecks -아래 조건 중 하나라도 거짓이면 comparator는 tolerance 계산 전에 실패한다. +Tolerance 또는 internal metric 전에 다음을 검사한다. -1. Exact declared input path와 required CSV path가 존재하고 readable이다. +1. 각 case의 exact declared input과 해당 disposition에 필요한 CSV가 존재하고 readable이다. 2. Reference CSV header는 surrounding whitespace trim 뒤 필요한 column을 가진다. -3. `shellnl-s4-final` required row는 exact approved `Frame` value만 포함한다. +3. 두 nonlinear case required row는 exact approved `Frame` value만 포함한다. 4. HDF5 metadata, model rows, accepted-frame table, factor-one frame, required result dataset이 - 문서화된 shape, component name, finite value를 가진다. -5. Wide CSV row는 이 문서의 component mapping으로 component row로 expand한다. -6. Required source wide key와 expanded component key는 unique하다. Duplicate reference 또는 - HDF5 key는 실패다. -7. 각 declared family에서 FESA와 reference projected key set은 정확히 같아야 한다. Missing row와 - extra row는 모두 실패다. -8. 모든 required numeric value는 finite다. Nonfinite HDF5 또는 CSV value는 tolerance 전 실패다. -9. `shellNL` reaction row는 constrained mask와 exact 24-node list에서 선택한다. Free-node CSV - row는 inventory only이며 zero reaction target으로 해석하지 않는다. -10. Required row를 omit, synthesize, average, substitute identity로 sort, normalize, zero-clamp, - repair하지 않는다. + 문서화된 shape, component name, attributes와 finite value를 가진다. +5. Wide CSV row는 이 문서의 component mapping으로 component row로 deterministically expand한다. +6. Source wide key와 expanded component key는 unique하다. Duplicate reference 또는 HDF5 key는 + affected family를 tolerance 전에 fail한다. +7. Input node inventory와 source constraint mask로 expected key set을 만든다. CSV zero value나 row + position으로 reaction identity를 추론하지 않는다. +8. 각 declared external family에서 FESA와 reference projected key set은 exact equal해야 한다. + Missing row와 extra row를 모두 fail한다. +9. Required HDF5/CSV value, derived scale, norm과 metric은 모두 finite여야 한다. +10. Internal free residual은 exact free mask와 force/moment channel을 보존한다. Global balance는 모든 + applied source와 constrained reaction을 stable source order로 정확히 한 번 사용한다. +11. Local review row를 global resultant로 collapse하거나 대체하지 않는다. Review-only precheck/error는 + deterministic review failure로 기록하지만 blocking verdict를 변경하지 않는다. +12. Warning-only precheck/tolerance failure는 deterministic warning을 만들고 blocking verdict를 + 변경하지 않는다. Blocking precheck failure만 전체 external comparison을 fail한다. +13. Row omission/synthesis, averaging, source-order matching, clamp, normalization 또는 artifact repair를 + 허용하지 않는다. -### 8.7 Stress CSV Disposition +### 8.8 Stress CSV Disposition Optional stress CSV identity는 다음과 같다. @@ -697,13 +792,16 @@ Optional stress CSV identity는 다음과 같다. element_corner_node_label, section_surface, component) ``` -현재 stress CSV는 element-corner node row와 `SPOS/SNEG` section surface에서 `S-S11`, -`S-S22`, `S-S33`, `S-S12`를 포함하며, 저장된 ascending element-label block `1..36` 순서를 -갖는다. FESA HDF5는 `GP1..GP4`와 `BOTTOM/MIDDLE/TOP`에서 direct `[S11,S22,S12]`만 emit한다. +Stored stress CSV는 element-corner node row와 `SPOS/SNEG` section surface에서 `S-S11`, +`S-S22`, `S-S33`, `S-S12`를 포함한다. `reference/shell/shell stresses.csv`는 사용자가 +변경한 ascending element-label block `1..36` 순서를 갖지만 row order는 identity가 아니다. +Fine stress CSV의 element `1`, `SNEG`, `Node Label=ss` 한 행은 optional excluded artifact +finding으로만 기록한다. Artifact를 수정하지 않는다. -따라서 두 case의 stress CSV는 optional read-only inspection 및 order evidence only다. HDF5 -comparison projection, `S33` synthesis, nodal extrapolation, corner averaging, Gauss-to-corner -matching, element-label-order identity는 없다. +FESA HDF5는 `GP1..GP4`와 `BOTTOM/MIDDLE/TOP`에서 direct `[S11,S22,S12]`만 emit한다. +따라서 모든 stored stress CSV는 optional read-only inspection/order evidence only다. HDF5 +numerical-comparison projection, `S33` synthesis, nodal extrapolation, corner averaging, +Gauss-to-corner matching 또는 element-label-order matching은 없다. ## 9. Validation Rules @@ -723,13 +821,14 @@ matching, element-label-order identity는 없다. | aggregate moment | exact-zero case 또는 preprocessing 및 모든 entered trial에서 `rho_M<=1e-12` | model/solver, exit `4` 또는 `5` | | nonlinear static data | 네 positive finite values, endpoint `1.0`, fixed increment sequence with final exact factor one | input, exit `3` | | Newton iteration | iteration identity `1..100`; iteration `100` acceptance 가능; iteration `101` 없음; line search/cutback/retry/fallback 없음 | solver, exit `5` | -| convergence channels | residual force, residual moment, correction translation, correction rotation이 모두 inclusive `<=` rule 또는 typed zero-scale threshold 통과 | solver, exit `5` | +| convergence channels | finite-first 평가 뒤 residual force/moment는 matching external scale exact-zero이면 typed absolute `1e-3`, nonzero이면 retained `max(internal,external)` relative `1e-2`; correction translation/rotation은 기존 denominator branch; 네 channel 모두 inclusive `<=`이고 logical AND | solver, exit `5` | | nonfinite data | required residual, tangent, correction, state, load, recovery, output value가 acceptance 전 finite | solver/output, exit `5` 또는 `6` | | commit/rollback | complete converged candidate만 commit; failure는 prior committed state와 prior authoritative final HDF5 보존 | solver/output, exit `5` 또는 `6` | -| HDF5 schema | exact paths, shapes, attributes, schema version, row identities, finite values, accepted-frame table, diagnostics; final replace는 log close success 뒤에만 허용 | output, exit `6` | +| HDF5 schema | exact paths, shapes, attributes, schema version, row identities, finite values, accepted-frame table, diagnostics; `/global/equilibrium`은 applied-plus-reaction balance error이고 accepted free residual/constrained reaction resultant와 분리됨; final replace는 log close success 뒤에만 허용 | output, exit `6` | +| equilibrium projection | accepted free rows는 generalized residual과 exact free mask, constrained reaction은 mask-before-spatial-conversion, global balance는 applied plus constrained reaction/current arm/origin `[0,0,0]`; factor-one global force와 moment는 각각 dimension-separated normalized `<=1e-8`; 세 quantity가 같은 accepted state를 공유하되 서로 대체되지 않음 | solver/output/reference internal gate | | log | UTF-8 no BOM, LF, TAB-separated fixed `label=value` schema; entered Newton iteration마다 record 하나; no per-iteration stderr duplication; no-Newton procedure는 zero-byte empty log; open/write/flush/close fail-closed | output, exit `6` | -| reference rows | exact required artifacts, headers, row keys, component keys, finite values, factor-one frame mapping | reference precheck | -| tolerance | exact `docs/TOLERANCE.md` family-scale row/RMS policy; blocking/warning disposition 보존 | reference verification | +| reference rows | fine primary/coarse companion/linear-control exact artifacts, headers, row keys, component keys, finite values, factor-one frame mapping과 disposition별 precheck | reference precheck | +| tolerance | external family에만 exact `docs/TOLERANCE.md` row/RMS policy 적용; U blocking, UR warning-only, local RF/RM review-only 보존; internal global balance/free residual gate와 혼합 금지 | reference/internal verification | Downstream test가 다뤄야 하는 approved diagnostic code는 다음을 포함한다. @@ -785,21 +884,34 @@ Downstream handoff to Implementation Planning Agent through Coordinator: MITC4 contract의 regression으로 남는지 test한다. - HDF5 schema version `1`을 위 accepted-frame schema 그대로 구현한다. Factor-zero non-frame handling, unique factor-one frame selection, triad/director projection, no - compression/chunking, no trial-state HDF5 history를 포함한다. + compression/chunking, no trial-state HDF5 history를 포함한다. `/global/equilibrium` path/shape는 + 유지하되 authoritative meaning을 applied-plus-reaction balance error로 검증한다. +- `AUDIT-001`을 별도 test로 닫는다. Accepted free residual은 generalized residual/internal/external + force와 exact free mask, constrained reaction resultant는 mask-before-`J_l(phi)^(-T)`와 accepted + current arm, global balance는 applied plus constrained reaction을 사용한다. Nonzero prescribed + translation/rotation case에서도 initial arm, raw rotational covector 또는 raw full-residual sum을 + 세 quantity의 공통 substitute로 쓰지 않는다. - 비대칭 lifecycle을 보존한다. Log는 usage validation, lexical path derivation, single-writer lock 뒤 live current-run audit이고, log create/open/truncate는 Analysis 전 abort, write/flush는 즉시 abort, close failure는 HDF5 commit을 block한다. HDF5 final은 log close와 candidate self-check 성공 뒤에만 replace하며 failure는 prior valid final과 current log를 손상하지 않는다. - Newton log parser/schema test는 UTF-8 no BOM, LF, physical TAB-separated fixed - `label=value` field order, finite round-trip numerics, escaping, completed-gate four-channel - metrics, early-failure `not-evaluated(reason)`, no-Newton zero-byte log, zero per-iteration - stderr duplication, flush-before-next/return을 포함한다. -- Exact CSV paths, trimmed headers, exact `shellNL` `Frame` value, source node/component - identity, constrained reaction mask, missing/extra/duplicate rows, nonfinite values를 - tolerance 전에 precheck한다. -- Declared family에는 `docs/TOLERANCE.md`만 적용한다. `U`는 blocking, `UR`은 warning-only, - `RF1/RF2`, `RF3`, physical spatial `RM1/RM2`는 blocking으로 유지하고 `RM3`와 모든 stress - CSV value는 제외한다. + `label=value` 39-field order, finite round-trip numerics, escaping, completed-gate four-channel + metrics, residual matching-external-scale exact-zero/nonzero branch와 retained nonzero-scale + denominator, typed thresholds, four-channel AND, early-failure `not-evaluated(reason)`, no-Newton + zero-byte log, zero per-iteration stderr duplication, flush-before-next/return을 포함한다. +- Fine primary, coarse companion과 linear control의 exact CSV path, trimmed header, 두 nonlinear + case의 exact factor-one `Frame`, source node/component identity, constrained reaction mask, + missing/extra/duplicate row와 nonfinite value를 tolerance 전에 precheck한다. Row order를 identity로 + 쓰지 않는다. +- External declared family에는 `docs/TOLERANCE.md`만 적용한다. `U1/U2/U3`는 blocking, + `UR1/UR2/UR3`는 warning-only, local `RF1/RF2/RF3`와 spatial physical `RM1/RM2`는 + review-only다. Local `RM3`와 모든 stress CSV value는 제외한다. Review-only row의 + schema/inventory/error report를 생략하거나 blocking으로 되돌리지 않는다. +- Fine/coarse factor-one global force/moment balance는 dimension-separated normalized `<=1e-8`, + accepted free force/moment residual은 NSNR-069으로 blocking 검증한다. 이 internal gate에 + Abaqus CSV나 `docs/TOLERANCE.md` scale을 사용하지 않는다. Constrained reaction resultant는 + distinct review-only summary로 보고한다. - Optional stress CSV는 read-only inventory/order evidence only로 유지한다. Nodal stress extrapolation, corner averaging, `S33` synthesis, element-label-order matching을 추가하지 않는다. diff --git a/docs/nonlinear-static-newton-raphson/numerical-review.md b/docs/nonlinear-static-newton-raphson/numerical-review.md index 2477962..a28c7a8 100644 --- a/docs/nonlinear-static-newton-raphson/numerical-review.md +++ b/docs/nonlinear-static-newton-raphson/numerical-review.md @@ -1,188 +1,233 @@ # Nonlinear Static Newton-Raphson 수치 검토 -## 1. Metadata and source formulation +## 1. Metadata - feature_id: `nonlinear-static-newton-raphson` - source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` - source_formulation_status: `ready-for-numerical-review` -- source_formulation_sha256: `DFA629888041D5762FD0DF4271353464A692B325DC0C821A8D8689688C1EAFD0` +- source_formulation_sha256: `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9` - source_requirements: `docs/nonlinear-static-newton-raphson/requirements.md` -- source_requirements_sha256: `910E351F3F90FFA42F07D15206B55E62C05EAE821E250424430148337506EBF2` +- source_requirements_sha256: `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` - source_research: `docs/nonlinear-static-newton-raphson/research.md` -- source_research_sha256: `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` +- source_research_sha256: `4F63D23E03D1A68E5F8563B678FDD6F761F9558165778EF0433133EFAD303570` - repository_policy: `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/TOLERANCE.md` -- related_linear_contracts: `docs/linear-static-mitc4-shell/numerical-review.md`, - `docs/linear-static-mitc4-shell/reference-model.md` +- decision_source: `USER-DECISION-004 option 1` +- balance_gate_decision: user-approved factor-one global force/moment normalized gate `<=1e-8` +- diagnostic_evidence: `docs/nonlinear-static-newton-raphson/corrections.md` §13, + `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` - status: `pass-for-io-definition` - owner_agent: `numerical-review-agent` -- date: `2026-08-23` +- date: `2026-08-28` -이 검토는 정식화를 수학 및 수치 알고리즘 계약으로만 검토했다. C++ API, HDF5 schema, -implementation plan, reference solver 실행, reference artifact 생성/수정은 수행하지 않았다. +이 검토는 정식화를 수학·수치 알고리즘 계약으로 검토하고 기존 reference artifact를 +읽기 전용으로 조사했다. C++ API, 최종 HDF5 dataset path, implementation plan 또는 +reference artifact를 설계·실행·생성·수정하지 않았다. ## 2. Review Verdict - verdict: `pass-for-io-definition` -- reason: 승인 정식화는 fixed-initial-reference Total Lagrangian MITC4, finite rotation - state, nonlinear `24 -> 20` map, objective drilling, fixed-global load work, - same-trial residual/tangent, Full Newton convergence, recovery와 state commit/rollback - 의미를 구현 가능한 수치 계약으로 닫고 있다. 차원, 부호, DOF 순서, 적분, reaction - 의미 또는 reference identity와 충돌하는 blocking defect는 확인되지 않았다. -- reference readiness: `reference/shellNL` 및 `reference/shell`의 선언 파일과 CSV는 - 읽을 수 있고 row identity/precheck/tolerance 계약을 정의할 수 있다. -- boundary: 이 verdict는 I/O Definition 진입 허가이며 implementation, reference comparison - pass, physics evaluation 또는 release readiness 승인이 아니다. - -`reference/shellNL`은 `nlgeom=YES`와 factor-one final frame을 갖는 저장 reference로 사용할 수 -있지만, 주요 `U3`와 stress 값은 선형 `reference/shell`과 거의 같다. 관찰된 nonlinear 신호는 -주로 약한 in-plane coupling이다(`RF1/RF2` 최대 약 `1.9166`, `U1/U2` 최대 약 -`1.29e-11`). 따라서 이 CSV 세트만으로 finite-rotation objectivity, exact tangent, -rollback 또는 큰 변위 benchmark를 통과했다고 판단하지 않는다. 해당 항목은 아래의 -blocking internal tests로 분리한다. +- reason: 승인 정식화는 fixed-initial-reference Total Lagrangian MITC4, finite rotation, + nonlinear `24 -> 20` map, objective drilling, same-trial residual/tangent, reaction의 + spatial-moment 변환과 current-arm global balance를 구현 가능한 수치 계약으로 정의한다. + Revised requirements와 충돌하는 formulation defect는 없다. +- reaction disposition: local nodal `RF1/RF2/RF3`와 physical spatial `RM1/RM2`는 exact + source-key/schema/inventory/finite/error evidence를 유지하는 `review-only`다. 이 값은 + formulation-sensitive nodal redistribution이므로 blocking verdict를 결정하지 않는다. + Local `RM3`는 계속 제외한다. +- blocking equilibrium: 각 nonlinear case의 factor-one accepted state에서 `(a)` global + applied-plus-reaction force balance, `(b)` global applied-plus-reaction moment balance, + `(c)` accepted free-DOF force/moment residual evidence가 blocking이다. `(d)` constrained + reaction resultant는 별도 quantity로 보존하지만 balance error를 대신하지 않는다. +- reference readiness: `reference/shell`, `reference/shellNL`와 + `reference/shellNL-meshfine`의 선언 input 및 필요한 displacement/reaction CSV가 존재하고 + 읽을 수 있다. Fine case는 사용자가 요청한 mesh-refined nonlinear evidence이며 coarse + case와 서로의 reference에 독립적으로 비교한다. +- boundary: `pass-for-io-definition`은 I/O 계약을 다시 정의할 수 있다는 뜻이며 reference + comparison pass, implementation completion, physics 또는 release 승인이 아니다. ## 3. Critical Findings -### Confirmed defects +### 3.1 Confirmed defects -없음. Formulation Agent 또는 Research Agent로 즉시 되돌릴 confirmed numerical defect는 없다. +Formulation Agent 또는 Research Agent로 반환할 confirmed defect는 없다. Formulation +§11.4는 constrained generalized reaction과 spatial physical moment를 구분하고, §13.4는 +global origin `[0,0,0]`, current nodal position과 physical spatial moment를 사용하는 +applied-plus-reaction balance를 명시한다. -### Numerical risks requiring downstream evidence +### 3.2 Required downstream correction: `AUDIT-001` -- `shellNL`의 stored reference는 geometric nonlinearity가 켜진 최종 상태 비교에는 충분하지만 - response amplitude가 작아 finite-rotation/tangent/objectivity 검증을 대신하지 못한다. -- Abaqus stress CSV는 `(instance, element label, element-corner node label, - section point, component)` identity로 완전하지만 FESA의 approved Gauss-location direct - bottom/middle/top recovery와 location이 다르다. Current stored order는 element label - `1..36` ascending block이며 이를 바꾸지 않는다. Nodal extrapolation/averaging을 만들지 - 않고 stress CSV는 comparison family에서 제외한다. -- External `UR` comparison은 기존 MITC4 정책에 따라 `warning-only`다. Rotation/director - correctness는 `Q`, `d`, branch, objectivity invariant tests에서 blocking으로 확인해야 한다. +Stage 5/6은 같은 accepted state에서 다음 세 quantity를 서로 바꿔 쓰지 않아야 한다. -### Open questions +1. **Global applied-plus-reaction balance error**: applied와 constrained reaction을 더한 + force `[3]`와 moment `[3]`; blocking. +2. **Constrained reaction resultant**: constrained reaction만 합한 force `[3]`와 current-arm + moment `[3]`; distinct nonblocking reaction summary. +3. **Accepted free residual**: stable free-DOF source/component rows와 force/moment channel gate; + blocking. -현재 I/O Definition 진입을 막는 open question은 없다. Large-response public benchmark, -MMS, broader locking/distortion characterization은 유용하지만 승인된 Stage 4 pass 조건은 아니다. +현재 nonlinear implementation helper는 full residual을 합하고 initial Domain coordinates와 +raw rotational generalized residual을 사용한다. 현재 `shellNL`/`shellNL-meshfine` support는 +prescribed `u=phi=0`이므로 initial/current support arm과 generalized/spatial support moment가 +일치하고, 이 helper는 작은 free residual을 제외하면 constrained reaction resultant에 +가깝다. 그러나 applied load를 더한 balance error는 아니며 세 quantity 중 어느 것도 +일반적으로 대체하지 못한다. 지원 범위의 nonzero prescribed translation/rotation에서는 +반드시 current position과 `J_l(phi)^(-T)` spatial-moment conversion을 적용해야 한다. + +### 3.3 Numerical risks and nonblocking artifact issue + +- Fine stress CSV에는 element `1`, `SNEG`의 `Node Label=ss` 한 행이 있다. Stress는 승인된 + FESA Gauss direct recovery와 위치가 다르고 수치 comparison에서 제외되므로 이 optional + inspection artifact의 malformed identity는 I/O 진입 blocker가 아니다. Artifact를 repair, + normalize 또는 rewrite하지 않는다. +- Coarse/fine Abaqus `S4`와 FESA MITC4가 동일한 local support reaction distribution을 + 만들어야 한다는 formulation evidence는 없다. Global balance와 free residual로 blocking + physics를 검증하고 local rows는 오차를 숨기지 않은 채 review-only로 남긴다. +- Stored cases의 response는 weak geometric-nonlinear regime다. Reference displacement pass가 + tangent, objectivity, finite-rotation 또는 rollback 검증을 대신하지 않는다. + +### 3.4 Open questions + +I/O Definition 진입을 막는 open question은 없다. Public large-response benchmark, shell MMS와 +broader locking/distortion portfolio는 useful future evidence지만 이번 gate의 추가 조건이 아니다. ## 4. Numerical Risk Assessment | risk label | assessment | required control / downstream evidence | | --- | --- | --- | -| `rigid_body_modes` | 물리/internal/drill energy가 finite rigid motion에서 objective해야 하며 pure drill만 regularized 되어야 한다. | finite rigid translation/rotation superposition에서 strain, stress, physical energy, drill gamma, residual을 blocking invariant로 확인한다. | -| `patch_test` | Green-Lagrange direct strain과 MITC tied shear가 같은 trial geometry와 같은 first/second variation을 써야 한다. | membrane, bending, twist, transverse-shear patch를 linear limit와 finite valid trial perturbation에서 각각 확인한다. | -| `symmetry` | applied nodal moment가 없으면 physical/drill tangent는 exact arithmetic에서 symmetric이다. Fixed-spatial moment work tangent는 일반적으로 nonsymmetric이다. | no-moment case만 scaled symmetry check 대상으로 두고, moment case를 임의 symmetrization하지 않는다. | -| `positive_definiteness` | nonlinear tangent는 load state, compression, near-buckling에서 indefinite일 수 있다. Positive definiteness는 일반 gate가 아니다. | stress-free constrained linear limit의 nonsingular solve와 singular negative case를 분리하고, factorization failure를 숨기지 않는다. | -| `hourglass` | S4/S4R 모두 `2 x 2 x 2` full integration이므로 one-point reduced hourglass path는 승인 범위 밖이다. | source type으로 reduced/selective integration 또는 hourglass stabilization을 선택하지 않는 unit/integration test가 필요하다. | -| `shear_locking` | MITC shear tying은 transverse-shear locking을 완화하지만 모든 thin-shell mesh에서 locking-free를 보장하지 않는다. | patch/reference evidence를 blocking으로 두고 broader thin/thick convergence는 nonblocking characterization으로 둔다. | -| `volumetric_locking` | approved plane-stress shell, St. Venant-Kirchhoff-type material restriction에서는 `N/A`다. | 3-D incompressible material 또는 `nu >= 0.5` 의미로 확장하지 않는다. | -| `membrane_locking` | original-style MITC4는 curved/distorted nonlinear meshes에서 membrane locking 위험이 남는다. | known limitation으로 기록한다. MITC4+ 성능 또는 Abaqus S4/S4R internal equivalence를 주장하지 않는다. | -| `distortion` | positive Jacobian이라도 severe distortion/warpage는 conditioning과 stress accuracy를 악화할 수 있다. | 모든 Gauss/tying/center/recovery location의 finite, positive predicate를 fail-closed로 적용한다. 추가 quality cutoff는 요구하지 않는다. | -| `singular_jacobian` | `J0 <= 0`, `j <= 0`, invalid reciprocal basis, invalid polar stretch는 residual/tangent를 무효화한다. | failed location을 omit/average/clamp/repair하지 않고 model/trial failure로 처리한다. | -| `conditioning` | thin shells, small fixed drill scale, near-mechanism constraints는 Kff conditioning을 악화시킬 수 있다. | scaled matrix diagnostics만 사용하고 solver regularization/fallback으로 singularity를 숨기지 않는다. | -| `convergence` | Full Newton은 same-trial consistent tangent에 의존한다. No line search/cutback이므로 difficult step은 deterministic nonconvergence가 될 수 있다. | NSNR-069/070 four-channel gates, iteration `1..100`, nonfinite rejection, no hidden retry를 integration tests로 고정한다. | +| `rigid_body_modes` | Physical/internal/drill energy는 finite rigid motion에서 objective하고 pure drill만 regularized 되어야 한다. | finite rigid superposition에서 strain, stress, physical energy, drill gamma/energy와 residual covariance를 blocking invariant로 확인한다. | +| `patch_test` | Green-Lagrange direct strain과 MITC tied shear는 같은 trial 및 first/second variation을 써야 한다. | membrane, bending, twist, transverse-shear patch와 linear limit을 확인한다. | +| `symmetry` | Applied nodal moment가 없으면 physical/drill tangent는 exact arithmetic에서 symmetric이다. Fixed-spatial moment work tangent는 일반적으로 nonsymmetric다. | no-moment case만 scaled symmetry gate를 적용하고 moment case는 derivative consistency로 검증한다. | +| `positive_definiteness` | Nonlinear tangent는 compression/near-buckling에서 indefinite일 수 있다. | positive definiteness를 global gate로 만들지 않고 singular/malformed tangent와 물리적 indefiniteness를 구분한다. | +| `hourglass` | S4/S4R 모두 `2 x 2 x 2` full integration이며 reduced/hourglass path는 범위 밖이다. | source label로 integration 또는 stabilization을 바꾸지 않는 test가 필요하다. | +| `shear_locking` | MITC shear tying은 transverse-shear locking을 완화하지만 general locking-free를 보장하지 않는다. | patch/reference evidence를 blocking으로, broader thin/thick study를 characterization으로 둔다. | +| `volumetric_locking` | approved plane-stress shell과 `nu < 0.5` 범위에서는 `N/A`다. | 3-D incompressible behavior claim으로 확장하지 않는다. | +| `membrane_locking` | original-style MITC4는 curved/distorted nonlinear mesh에서 membrane locking 위험이 남는다. | known limitation으로 보존하고 MITC4+ 또는 Abaqus 내부 성능을 상속한다고 주장하지 않는다. | +| `distortion` | positive Jacobian만으로 accuracy는 보장되지 않지만 별도 calibrated quality cutoff는 승인되지 않았다. | 모든 Gauss/tying/center/recovery location을 fail-closed 검사한다. | +| `singular_jacobian` | `J0<=0`, `j<=0`, invalid reciprocal basis/polar stretch는 residual/tangent를 무효화한다. | failed point를 omit, average, clamp 또는 repair하지 않는다. | +| `conditioning` | thin geometry, small fixed drill scale와 near mechanism은 conditioning을 악화시킨다. | scale-aware diagnostics를 쓰고 hidden regularization/fallback을 금지한다. | +| `convergence` | Full Newton은 same-trial consistent tangent에 의존하고 line search/cutback이 없다. | NSNR-069/070, four-channel AND, iteration `1..100`, finite-first와 no retry를 고정한다. | +| `reaction_distribution` | local nodal support distribution은 element formulation/mesh/stabilization에 민감하다. | exact local error report는 유지하되 global balance/free residual만 blocking한다. | ## 5. Consistency Checks | check | result | evidence | | --- | --- | --- | -| units and dimensions | `pass` | Translation/force, rotation/moment, stress/resultant dimensions are separated. Convergence channels keep force, force-length, length and dimensionless rotation separate. | -| signs and residual convention | `pass` | Global residual is `f_int - f_ext`; constrained full residual is reaction and free residual is equilibrium evidence. Fixed-global dead force has no configuration derivative. | -| DOF ordering and free/constrained assumptions | `pass` | Per-node global order is `[UX, UY, UZ, URX, URY, URZ]`; Newton solve uses stable free coordinates with `Delta q_c = 0`. Valid `0 x 0` free system is trivial success. | -| coordinate transforms | `pass` | `Q=Exp(phi^)Q0`, left-spatial update, `J_l` variation, physical swing map and spatial reaction moment conversion are explicitly defined. | -| kinematic operator / B matrix | `pass` | Green-Lagrange strain, MITC shear projection and both first/second variations use the same trial identity. | -| constitutive contract | `pass` | Constant symmetric `C5` maps engineering Green-Lagrange strain to second Piola-Kirchhoff stress; no material history is introduced. | -| Jacobian rules | `pass` | Fixed reference `J0` is integration measure; current `j` and `det F_c` are validity checks. Failed locations are not skipped. | -| integration policy | `pass` | S4 and S4R share four midsurface Gauss points times two thickness points; reduced/selective integration is prohibited. | -| residual/tangent consistency | `pass` | Complete tangent includes material, geometric, map-Hessian, objective drill Hessian and fixed-spatial moment work derivative terms. | -| tangent symmetry expectation | `pass` | Symmetric only for conservative no-applied-moment case; generally nonsymmetric moment tangent must remain unsymmetrized. | -| output locations | `pass-with-handoff` | Nodal U/UR/RF/RM and shell stress/resultant logical quantities are defined; exact HDF5 projection remains I/O-owned. Current nodal SPOS/SNEG stress CSV는 Gauss direct recovery와 일대일 대응하지 않으므로 external numerical comparison은 N/A다. | +| units and dimensions | `pass` | Translation residual/reaction은 force, rotation residual/reaction moment는 force-length다. Force와 moment family 및 norm scale을 혼합하지 않는다. | +| signs | `pass` | `r=f_int-f_ext`; constrained entry는 reaction, free entry는 equilibrium evidence다. Balance는 `applied+reaction`이고 reaction resultant는 reaction만 합한다. | +| DOF ordering | `pass` | Global node order `[UX,UY,UZ,URX,URY,URZ]`; stable free/constrained partition과 `Delta q_c=0`을 보존한다. | +| coordinates and moment conversion | `pass-with-handoff` | Global origin `[0,0,0]`, current arm `X+u`, spatial moment `J_l(phi)^(-T) r_phi`가 승인 의미다. `AUDIT-001` 구현 projection audit가 남는다. | +| kinematic operator | `pass` | Green-Lagrange strain, MITC shear projection 및 first/second variation은 same-trial identity다. | +| constitutive contract | `pass` | Constant symmetric `C5`가 fixed-reference engineering strain을 second Piola-Kirchhoff stress로 매핑하며 material history가 없다. | +| Jacobian rules | `pass` | Fixed `J0`가 integration measure, current `j`와 `det(Fc)`가 validity predicate다. | +| integration | `pass` | S4/S4R 공통 four midsurface by two thickness points; reduced/selective integration은 금지한다. | +| residual/tangent | `pass` | Material/geometric/map-Hessian/drill/moment-work derivative가 complete same-trial tangent를 이룬다. | +| recovery locations | `pass-with-handoff` | Nodal U/UR/reaction 및 Gauss direct shell recovery logical meaning은 정의되었다. Final dataset projection은 I/O-owned다. | +| reference identity | `pass` | Case/state/instance/source label/component로 match하고 row order를 identity로 쓰지 않는다. | ## 6. Verification Readiness -### Blocking internal numerical tests +### 6.1 Blocking internal numerical tests -Implementation Planning shall carry these as feature-required tests before any reference-comparison success claim: +기존 승인 수치 portfolio를 유지한다. -Mixed translation/rotation 검사는 fixed-reference characteristic length -`L=max(||X_I-X_J||)`와 node block `Dq=diag(L I3,I3)`를 사용한다. Tangent test direction은 -`||p_hat||inf=1`, perturbation은 `q +/- h Dq p_hat`으로 두고 -`h={1e-3,3e-4,1e-4,3e-5,1e-5,3e-6,1e-6,3e-7}` 전부를 검사한다. Roundoff plateau 전 -최소 두 interval에서 centered-difference observed order `>=1.5`이고 한 interior point가 -scaled error `<=1e-6`여야 한다. Single-`h` 우연 통과는 허용하지 않는다. +1. Stress-free `q=0` linear MITC4 residual/tangent/recovery와 physical/drill split. +2. `||Q^TQ-I||_F<=1e-12`, `|det(Q)-1|<=1e-12`, `d=Qe3` 및 branch margin. +3. Mixed translation/rotation scaled tangent directional derivative schedule와 interior scaled + error `<=1e-6`; zero analytical direction `<=1e-10`. +4. No-applied-moment scaled tangent symmetry `<=1e-12`; applied moment는 derivative + consistency만 검사한다. +5. Finite rigid objectivity의 scaled physical strain/stress/energy/drill/residual `<=1e-10`. +6. Membrane/bending/twist/shear patch, component order와 bottom/top stress sign. +7. Fixed-global force/moment identity, `rho_M<=1e-12`, absolute prescribed path와 zero + constrained Newton correction. +8. Exact fixed-factor sequence, factor one, iterations `1..100`, pass at 100, no 101/cutback/retry. +9. NSNR-069/070의 finite-first exact-zero/nonzero branches, inclusive thresholds와 four-channel AND. +10. Trial/recovery/solve/output failure rollback과 deterministic assembly/frame/row/diagnostic order. -1. Linear limit: at stress-free `q=0`, nonlinear element residual/tangent/recovery reduce to approved linear MITC4 signs, `2 x 2 x 2` integration and physical/drill split. -2. Rotation state invariants: every committed/trial `Q` satisfies `||Q^T Q-I||_F <= 1e-12`, - `|det(Q)-1| <= 1e-12`, and `d=Q e3`. Global/swing/twist `pi` branch angular margin은 - `sqrt(epsilon_double)`, 약 `1.4901161193847656e-8` rad보다 커야 한다. -3. Tangent directional derivative: compare `Dq^T K_T Dq p_hat` with the central - residual derivative under the schedule above in separated force and moment channels. - Zero analytical directions require exact-zero construction and scaled absolute error - `<=1e-10`; nonfinite metric은 허용하지 않는다. -4. No-moment tangent symmetry: after work-conjugate congruence `Dq^T K_T Dq`, no-applied-moment - tangent scaled Frobenius symmetry error `<=1e-12`; applied fixed-spatial moment cases are checked for - exact derivative consistency, not symmetry. -5. Finite rigid objectivity: superposed finite rigid motion leaves physical strain/stress, - physical energy, drill gamma/energy and internal residual at scaled `<=1e-10` levels. -6. Patch/sign recovery: membrane, bending, twist and transverse shear patch states preserve - component order and bottom/top stress signs. - Analytical strain/resultant/stress error is relative `<=1e-9`. -7. Load and boundary path: fixed-global force/moment source identity, `rho_M <= 1e-12` - rejection/projection, absolute factor-one boundary path and zero constrained Newton - correction are tested independently. -8. Newton lifecycle: factor identities use ordinal `j*h` values strictly below one, - followed by one exact assigned `1.0`; cumulative `lambda += h`와 tolerance-based duplicate - endpoint는 금지한다. For `shellNL` the expected intended factors are `0.1, 0.2, ..., - 1.0`. Iterations are `1..100`, pass at `100` is allowed, iteration `101` is forbidden. -9. Convergence gates: NSNR-069/070 four-channel inclusive `<=` rules, typed zero-scale - `1e-3` thresholds and nonfinite rejection are tested without adding energy or line-search gates. -10. Commit/rollback and determinism: failed trial, recovery, solve or output does not mutate - the prior committed state or prior authoritative final result; row/diagnostic order is stable. +### 6.2 Factor-one blocking equilibrium contract -### Downstream reference comparisons +각 nonlinear case의 accepted factor-one state에 대해 -The required stored-reference cases and logical quantities are defined in -`docs/nonlinear-static-newton-raphson/reference-model.md`. +\[ +\mathbf a_{F,I}=\mathbf F_I^{appl},\qquad +\mathbf c_{F,I}=\mathbf F_I^{react}, +\] -- `shellnl-s4-final` is the primary nonlinear external reference at accepted factor one. -- `shell-s4-linear-limit` is the read-only linear-limit/reference-identity regression for the - same S4 mesh. Current stress element-label ordering is inventoried without becoming a - comparison quantity. +\[ +\mathbf a_{M,I}=(\mathbf x_I-\mathbf 0)\times\mathbf F_I^{appl} ++\mathbf M_I^{appl},\qquad +\mathbf c_{M,I}=(\mathbf x_I-\mathbf 0)\times\mathbf F_I^{react} ++\mathbf M_I^{react} +\] -External comparison uses only accepted-state quantities and `docs/TOLERANCE.md`. Missing, -extra, duplicate or nonfinite required rows fail before tolerance. The comparison result itself -is Implementation Agent ownership. +를 stable source-node order로 계산한다. `x=X+u`이고 applied physical moment는 formulation +§13.4의 effective physical-work moment다. Define + +\[ +\mathbf e_F=\sum_I(\mathbf a_{F,I}+\mathbf c_{F,I}),\quad +S_F=\max\left(\sum_I\|\mathbf a_{F,I}\|_2, + \sum_I\|\mathbf c_{F,I}\|_2\right), +\] + +\[ +\mathbf e_M=\sum_I(\mathbf a_{M,I}+\mathbf c_{M,I}),\quad +S_M=\max\left(\sum_I\|\mathbf a_{M,I}\|_2, + \sum_I\|\mathbf c_{M,I}\|_2\right). +\] + +Force와 moment는 각각 `rho_F=||e_F||2/S_F`, `rho_M=||e_M||2/S_M`로 검사하고 둘 다 +`<=1e-8`이어야 한다. 이 threshold는 승인된 nonlinear acceptance value이며, +unclamped sum-of-contribution scale과 dimension-separated form은 승인된 linear MITC4 +global-equilibrium convention을 유지한다. `S=0`이면 balance도 +exact zero일 때만 `0`, 아니면 fail하며 absolute floor, `max(1,S)` 또는 zero clamp를 두지 않는다. + +Accepted free residual은 cross-unit combined norm을 만들지 않는다. Factor-one accepted trial의 +free translation-force와 free rotation-moment rows가 각각 NSNR-069의 exact gate를 다시 +재현해야 한다: matching external scale이 nonzero이면 approved infinity-norm relative gate +`<=1e-2`, exact zero이면 typed absolute `<=1e-3` force 또는 force-length다. 두 channel 모두 +finite-first로 통과해야 한다. + +### 6.3 Downstream reference comparisons + +- `shellnl-meshfine-s4-final`: 사용자가 요청한 mesh-refined primary nonlinear case. +- `shellnl-s4-final`: coarse nonlinear companion regression. +- `shell-s4-linear-limit`: existing linear-limit/source-identity regression. + +각 case의 `U1/U2/U3`는 blocking이고 `UR1/UR2/UR3`는 warning-only다. Coarse/fine은 각자의 +input/CSV와 독립 family로 비교하며 cross-mesh interpolation, row collapse 또는 observed-order +claim을 만들지 않는다. Local RF/RM family는 common external tolerance로 오차를 전부 +기록하지만 review-only다. `RM3`와 stress는 수치 comparison에서 제외한다. ## 7. Required Revisions ### Formulation Agent -None before I/O Definition. The current formulation is numerically sufficient for the I/O -contract. Current source element/node SPOS/SNEG stress CSV에 맞추기 위한 extrapolation, -averaging 또는 새 recovery 의미는 추가하지 않는다. +없음. §11.4/§13.4의 reaction, spatial moment와 global balance 의미는 revised requirements를 +충족한다. ### Research Agent -None before I/O Definition. Public large-response benchmarks and shell MMS remain useful future -evidence, but the current Stage 4 gate does not require another research pass. +없음. Stored fine-mesh case와 internal invariant portfolio가 이번 I/O gate에 충분하다. ### I/O Definition Agent -Define parser/semantic/HDF5/log projection for the logical quantities and row identities in -`reference-model.md`. Preserve the split between blocking internal nonlinear tests and external -stored reference comparison; do not claim Abaqus internal equivalence. +`reference-model.md`의 logical quantities와 source identity를 최종 projection으로 연결한다. +`AUDIT-001`의 balance error, constrained reaction resultant, accepted free residual을 별도 +quantity로 유지한다. Current-arm/spatial-moment semantics와 factor-one identity를 보존하고 +local RF/RM review-only disposition을 blocking으로 되돌리지 않는다. ## 8. Downstream Handoff -For I/O Definition Agent through Coordinator: +Coordinator를 통해 I/O Definition Agent에 전달한다. -- Use accepted factor-one frames only for external reference comparison; trial Newton states are - not reference quantities. -- Preserve required source identity: case, accepted state, instance, node label and component. - Stress artifact의 element/node/section identity와 stored element-label order는 read-only - inventory로 보존하되 FESA comparison row로 합성하지 않는다. -- Keep `U1/U2/U3` blocking and `UR1/UR2/UR3` warning-only. For `shellNL`, compare - constrained `RF1/RF2`, `RF3`, and spatial physical `RM1/RM2` in the separate blocking - families from `reference-model.md`. `RM3`와 stress는 comparison에서 제외한다. -- Apply `docs/TOLERANCE.md` exactly; do not add an independent absolute floor, row averaging, - source-order matching, or calibration gate. -- Treat `shellNL` as weak but valid nonlinear final-state reference evidence; require the - blocking internal tests above for tangent/objectivity/rollback/finite-rotation correctness. +- `pass-for-io-definition`; blockers: 없음. +- External families는 `docs/TOLERANCE.md`를 그대로 사용한다. Independent absolute floor, + averaging, collapse, source-order matching, clamp 또는 calibration gate를 추가하지 않는다. +- Internal factor-one global force/moment balance는 Section 6.2의 dimension-separated normalized + `1e-8` gate, accepted free residual은 NSNR-069 force/moment gate를 사용한다. +- Fine primary와 coarse companion nonlinear cases 모두 U blocking/UR warning-only를 유지한다. +- Local RF1/RF2, RF3, spatial RM1/RM2는 separate review-only families이며 error/precheck를 + 생략하지 않는다. RM3/stress는 excluded다. +- Fine optional stress identity anomaly는 그대로 기록하고 artifact를 수정하지 않는다. +- Abaqus S4와 FESA MITC4의 formulation, integration, stabilization 또는 내부 알고리즘 + 동등성을 주장하지 않는다. diff --git a/docs/nonlinear-static-newton-raphson/reference-model.md b/docs/nonlinear-static-newton-raphson/reference-model.md index fb5416c..8f0783b 100644 --- a/docs/nonlinear-static-newton-raphson/reference-model.md +++ b/docs/nonlinear-static-newton-raphson/reference-model.md @@ -4,234 +4,294 @@ - feature_id: `nonlinear-static-newton-raphson` - source_requirements: `docs/nonlinear-static-newton-raphson/requirements.md` +- source_requirements_sha256: `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` - source_research: `docs/nonlinear-static-newton-raphson/research.md` - source_formulation: `docs/nonlinear-static-newton-raphson/formulation.md` - source_numerical_review: `docs/nonlinear-static-newton-raphson/numerical-review.md` +- decision_source: `USER-DECISION-004 option 1` +- balance_gate_decision: user-approved factor-one global force/moment normalized gate `<=1e-8` - status: `pass-for-io-definition` - owner_agent: `numerical-review-agent` -- date: `2026-08-23` +- date: `2026-08-28` - artifact_policy: `read-only-existing-files` -- tolerance_policy: `docs/TOLERANCE.md` +- external_tolerance_policy: `docs/TOLERANCE.md` -이 문서는 logical reference quantity, source identity, component matching, row precheck와 -blocking/warning 분류만 정의한다. 최종 HDF5 dataset projection은 I/O Definition Agent 소유다. +이 문서는 logical quantity, source identity, component matching, row precheck와 +blocking/warning-only/review-only 분류를 정의한다. 최종 HDF5 dataset projection은 I/O +Definition Agent 소유이며 이 문서에는 dataset path를 정의하지 않는다. ## 2. Reference Acceptance Scope -Required scope는 두 stored case다. +세 stored case를 사용한다. -- `shellnl-s4-final`: `nlgeom=YES` nonlinear static S4 final accepted state를 비교하는 - primary external reference case. -- `shell-s4-linear-limit`: 같은 S4 mesh의 `nlgeom=NO` read-only linear-limit/reference-identity - regression case. 이 case는 nonlinear response evidence가 아니며, 현재 stress CSV의 element-label - ordering을 row-order matching으로 사용하지 않는다. +- `shellnl-meshfine-s4-final`: 사용자가 추가하고 검증을 요청한 729-node/676-element + mesh-refined nonlinear primary case. External `U1/U2/U3`와 factor-one internal equilibrium은 + blocking이다. +- `shellnl-s4-final`: 49-node/36-element coarse nonlinear companion regression. Fine case와 + 별도 reference에 대해 external `U1/U2/U3`와 factor-one internal equilibrium을 blocking으로 + 검증한다. +- `shell-s4-linear-limit`: 같은 coarse topology의 `NLGEOM=NO` linear-limit/source-identity + regression. Nonlinear response evidence로 부르지 않는다. -`shellNL`은 final-state reference comparison에는 충분하지만 weak nonlinear response다. Dominant -`U3`/stress 값이 linear case와 거의 같으므로 finite-rotation objectivity, consistent tangent, -commit/rollback과 convergence lifecycle은 `numerical-review.md`의 blocking internal tests로 검증한다. +모든 selected case에서 displacement `U1/U2/U3`는 blocking, `UR1/UR2/UR3`는 +warning-only다. Coarse/fine local nodal `RF1/RF2/RF3`와 physical spatial `RM1/RM2`는 +common external policy로 exact error/precheck evidence를 만들되 review-only이고 전체 blocking +verdict를 바꾸지 않는다. Local `RM3`와 stress는 numerical comparison에서 제외한다. -## 3. Reference Case Inventory with exact input and required CSV paths +Coarse와 fine은 각자의 input/CSV에 독립적으로 비교한다. 두 mesh 사이 node interpolation, +row pairing, averaging, collapse, observed convergence order 또는 direct coarse/fine equality +gate를 만들지 않는다. Fine case 추가는 Abaqus S4와 FESA MITC4의 element formulation, +integration, stabilization 또는 internal behavior equivalence를 의미하지 않는다. -| case id | artifact role | required comparison artifact | exact path | observed status | +## 3. Reference Case Inventory + +### 3.1 Exact input and CSV paths + +| case id | purpose | exact path | required disposition | observed status | | --- | --- | --- | --- | --- | -| `shellnl-s4-final` | nonlinear input | yes | `reference/shellNL/shellNL.inp` | readable; S4, 49 nodes, 36 elements, `NLGEOM=YES` | -| `shellnl-s4-final` | displacement reference | yes | `reference/shellNL/shellNL displacements.csv` | 49 finite unique node rows; one factor-one Frame | -| `shellnl-s4-final` | reaction reference | yes | `reference/shellNL/shellNL reactions.csv` | 49 finite unique node rows; one factor-one Frame | -| `shellnl-s4-final` | stress review evidence | no | `reference/shellNL/shellNL stresses.csv` | 288 finite unique rows; element labels `1..36` in stored ascending blocks | -| `shell-s4-linear-limit` | linear control input | yes | `reference/shell/shell.inp` | readable; S4, 49 nodes, 36 elements, `NLGEOM=NO` | -| `shell-s4-linear-limit` | displacement reference | yes | `reference/shell/shell displacements.csv` | 49 finite unique node rows; no `Frame` column | -| `shell-s4-linear-limit` | reaction review evidence | no | `reference/shell/shell reactions.csv` | 49 finite unique node rows | -| `shell-s4-linear-limit` | stress review evidence | no | `reference/shell/shell stresses.csv` | 288 finite unique rows; element labels `1..36` in stored ascending blocks | +| `shell-s4-linear-limit` | linear input | `reference/shell/shell.inp` | required | readable; S4, 49 nodes, 36 elements, `NLGEOM=NO` | +| `shell-s4-linear-limit` | displacement reference | `reference/shell/shell displacements.csv` | required blocking/warning | 49 unique finite rows; single final static state | +| `shell-s4-linear-limit` | reaction inventory | `reference/shell/shell reactions.csv` | inspection-only | 49 unique finite rows | +| `shell-s4-linear-limit` | stress ordering inventory | `reference/shell/shell stresses.csv` | optional inspection | 288 rows; element labels `1..36` in contiguous ascending blocks | +| `shellnl-s4-final` | coarse nonlinear input | `reference/shellNL/shellNL.inp` | required | readable; S4, 49 nodes, 36 elements, `NLGEOM=YES` | +| `shellnl-s4-final` | displacement reference | `reference/shellNL/shellNL displacements.csv` | required blocking/warning | 49 unique finite rows; exact factor-one Frame | +| `shellnl-s4-final` | local reaction reference | `reference/shellNL/shellNL reactions.csv` | required review-only | 49 unique finite inventory rows; exact factor-one Frame | +| `shellnl-s4-final` | stress inventory | `reference/shellNL/shellNL stresses.csv` | optional inspection | 288 rows; element labels `1..36` in contiguous ascending blocks | +| `shellnl-meshfine-s4-final` | fine nonlinear input | `reference/shellNL-meshfine/shellNL-meshfine.inp` | required | readable; S4, 729 nodes, 676 elements, `NLGEOM=YES` | +| `shellnl-meshfine-s4-final` | displacement reference | `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | required blocking/warning | 729 unique finite rows; exact factor-one Frame | +| `shellnl-meshfine-s4-final` | local reaction reference | `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | required review-only | 729 unique finite inventory rows; exact factor-one Frame | +| `shellnl-meshfine-s4-final` | stress inventory | `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | optional inspection | 5,408 rows in ascending element blocks; one malformed optional node label `ss` | -`required comparison artifact=no`인 파일도 이번 review에서 읽기 가능성, row identity, -finite values와 current ordering을 확인했다. 그러나 해당 파일은 missing-required-artifact -판정이나 tolerance family를 만들지 않는다. +`reference/shell/shell stresses.csv`는 사용자 변경 후 element label `1..36` 순서로 저장되어 +있음을 확인했다. Row order는 matching identity가 아니며 deterministic inspection display에만 +사용한다. Fine stress의 `Element Label=1`, `SNEG`, `Node Label=ss` 한 행은 optional excluded +artifact issue다. 이 파일을 rename, repair, normalize 또는 rewrite하지 않는다. -두 `.inp`는 같은 node/element/connectivity, material/section, instance, boundary와 center-node -`CLOAD`를 사용한다. Text 차이는 heading identity, `NLGEOM=NO -> YES`, 그리고 `*STATIC` -data `1.,1.,1e-05,1. -> 0.1,1.,0.001,0.1`이다. 따라서 `shellNL`은 실제 nonlinear -selector와 승인된 fixed increment `0.1`을 갖지만, 두 deck 차이를 오직 `NLGEOM` 하나의 -isolated effect라고 표현하지 않는다. +Coarse와 fine nonlinear input은 homogeneous isotropic material `E=2.1e11`, `nu=0.3`, +shell thickness `0.5`, center node-set load `DOF 3 = -100000`, all-six-DOF perimeter support, +`*STATIC 0.1,1.,0.001,0.1`을 사용한다. Fine case는 같은 physical setup의 refined topology다. -Read-only SHA-256 observations: +### 3.2 Read-only artifact hashes -| path | SHA-256 | +| exact path | SHA-256 | | --- | --- | -| `reference/shellNL/shellNL.inp` | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | -| `reference/shellNL/shellNL displacements.csv` | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | -| `reference/shellNL/shellNL reactions.csv` | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | -| `reference/shellNL/shellNL stresses.csv` | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | | `reference/shell/shell.inp` | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | | `reference/shell/shell displacements.csv` | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | | `reference/shell/shell reactions.csv` | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | | `reference/shell/shell stresses.csv` | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | +| `reference/shellNL/shellNL.inp` | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| `reference/shellNL/shellNL displacements.csv` | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| `reference/shellNL/shellNL reactions.csv` | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| `reference/shellNL/shellNL stresses.csv` | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| `reference/shellNL-meshfine/shellNL-meshfine.inp` | `40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220` | +| `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | `740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F` | +| `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | `AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363` | +| `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | `6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782` | ## 4. Source Identity and Component Contract -### 4.1 Accepted-state identity +### 4.1 Case and accepted-state identity -- Abaqus identifiers are case-insensitive semantic identities. Input spelling - `Part-1-1` and CSV spelling `PART-1-1` match as one instance while original text is - retained in artifacts and reports; no file or row is rewritten. -- `shellnl-s4-final` rows require exact CSV `Frame` value - `Increment 10: Step Time = 1.000`, mapped logically to the accepted factor-one state. -- `shell-s4-linear-limit` rows have no `Frame` column and map to the single final static state. -- Row order is never a matching identity. It may only be used for deterministic reporting after - source keys are matched. +- Instance identity는 case-insensitive semantic match다. Artifact spelling `Part-1-1`과 + `PART-1-1`은 같은 instance이지만 file text를 rewrite하지 않는다. +- 두 nonlinear case required rows의 exact CSV Frame은 + `Increment 10: Step Time = 1.000`이며 accepted factor-one state에 대응한다. +- Linear case에는 `Frame` column이 없고 single final static state로 해석한다. +- Row order는 identity가 아니다. Stable key match 후 deterministic reporting order로만 정렬한다. -### 4.2 Nodal displacement contract +### 4.2 Nodal displacement and rotation -Required mapping is `U-U1/U-U2/U-U3 -> U1/U2/U3` and -`UR-UR1/UR-UR2/UR-UR3 -> UR1/UR2/UR3`. U is global length; UR is the -dimensionless fixed-initial global rotation-vector output. Logical key is +CSV `U-U1/U-U2/U-U3`는 logical `U1/U2/U3`, `UR-UR1/UR-UR2/UR-UR3`는 +logical `UR1/UR2/UR3`에 대응한다. Key는 ```text (case_id, accepted_state, canonical_instance_name, source_node_label, component) ``` -Both cases require source node labels `1..49` exactly once. U components form one -blocking translation family and UR components form one warning-only rotation family, -preserving the project MITC4 classification. +이다. Coarse/linear은 labels `1..49`, fine은 `1..729`를 각각 정확히 한 번 요구한다. +U는 global length/blocking, UR은 fixed-initial global rotation-vector/warning-only다. -### 4.3 Nonlinear reaction contract +### 4.3 Local reaction review contract -Reaction comparison applies only to `shellnl-s4-final` and only to the input boundary -`Set-2` nodes: +Reaction source rows는 input `Set-2` constraint mask로 선택한다. -```text -1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33 -``` +- coarse: `1, 3..9, 14..17, 22..33` — 24 nodes, all six DOFs constrained. +- fine: `1, 3..9, 34..57, 82..153` — 104 nodes, all six DOFs constrained. -All six global components are constrained at these 24 nodes. Other CSV node rows remain -part of file/schema/finite inventory but are not numerical reaction rows: FESA free entries -are equilibrium residual evidence, not Abaqus free-node zero reactions. +다른 CSV node rows는 file/schema/finite inventory지만 local reaction numerical rows가 아니다. +Free FESA entries는 reaction이 아니라 accepted free residual evidence다. -| CSV components | logical quantity | FESA meaning | disposition | +| CSV components | logical quantity | matching FESA meaning | disposition | | --- | --- | --- | --- | -| `RF-RF1`, `RF-RF2` | fixed-initial shell-plane reaction force | constrained translational full residual, global force | blocking family | -| `RF-RF3` | fixed-initial transverse reaction force | constrained translational full residual, global force | blocking family | -| `RM-RM1`, `RM-RM2` | tangent-plane spatial reaction moment | `J_l(phi)^(-T)` conversion of the constrained generalized reaction, global force-length | blocking family | -| `RM-RM3` | director/drilling-axis reaction review value | stabilization-dependent; no physical external equivalence target | excluded | +| `RF-RF1`, `RF-RF2` | in-plane local reaction force | constrained translational full residual, global force | `review-only` | +| `RF-RF3` | transverse local reaction force | constrained translational full residual, global force | `review-only` | +| `RM-RM1`, `RM-RM2` | tangent-plane physical reaction moment | constrained generalized residual converted by `J_l(phi)^(-T)`, global spatial force-length | `review-only` | +| `RM-RM3` | director/drilling-axis row | no approved physical external equivalence target | `excluded` | -In-plane and transverse force are distinct model-fixed logical projections and therefore -use distinct families. Raw generalized rotation-coordinate residual is not matched directly -to the CSV `RM` value. +Raw generalized rotational residual을 CSV RM에 직접 match하지 않는다. Review-only는 row omission을 +허용한다는 뜻이 아니다. Exact row precheck와 common-policy error/RMS를 모두 보고하되 그 결과가 +blocking verdict를 변경하지 않는다는 뜻이다. -### 4.4 Stress review identity and comparison exclusion +### 4.4 Distinct factor-one equilibrium quantities -Stress rows have read-only identity +각 nonlinear case에서 같은 accepted factor-one state를 사용한다. + +| logical quantity | source identity / projection | components | disposition | +| --- | --- | --- | --- | +| accepted free residual | input mask로 결정한 stable free `(instance,node,global DOF component)` rows; force와 moment channel 분리 | free `UX/UY/UZ`; free `URX/URY/URZ` generalized covectors | `blocking-internal` | +| constrained reaction resultant | constrained source rows만 current arm과 spatial physical moment로 합산 | force `[1,2,3]`; moment `[1,2,3]` | `review-only-summary` | +| applied-plus-reaction balance error | all resolved applied sources plus constrained reactions; global origin `[0,0,0]`; `x=X+u`; physical spatial nodal moments | force `[1,2,3]`; moment `[1,2,3]` | `blocking-internal` | + +Constrained reaction resultant force is `sum(F_react)`. Its moment is +`sum(x cross F_react + M_react)`. Balance error adds the corresponding applied force and +`x cross F_appl + M_appl`. Accepted free residual is neither sum. 세 quantity는 exact +source/state identity를 공유하지만 interchangeable하지 않다. + +현재 stored case의 constrained prescribed `u=phi=0` 때문에 support current arm과 initial arm, +generalized moment와 spatial moment가 수치적으로 일치한다. 이는 supported general nonzero +prescribed translation/rotation에서 initial arm/raw rotational residual을 재사용할 근거가 아니다. + +### 4.5 Stress inventory and exclusion + +Stress inspection key는 ```text (case_id, accepted_state, instance, element label, element-corner node label, SPOS/SNEG section surface, component) ``` -Every current element has its four connectivity nodes and one `SPOS` plus one `SNEG` -row per node. The files are ordered in contiguous ascending element-label blocks `1..36`; -this exact artifact order is retained and no node/surface secondary reorder is applied. +이다. Stored stress는 element-corner SPOS/SNEG rows이고 FESA 승인 recovery는 midsurface Gauss +locations의 direct bottom/middle/top `[S11,S22,S12]`다. Nodal extrapolation/averaging을 만들지 +않으며 `S-S11/S-S22/S-S12/S-S33` 어느 것도 external family에 포함하지 않는다. -The identity is nevertheless not the approved FESA recovery location: FESA emits direct -`[S11,S22,S12]` at four midsurface Gauss locations and bottom/middle/top positions, without -nodal extrapolation or averaging, and does not emit `S33`. Consequently no stress column -forms a blocking or warning-only comparison family. Stress files remain optional read-only -review evidence only. +### 4.6 External comparison families -### 4.5 Comparison families - -| family id | components and source set | row count | units / coordinates | disposition | +| family id | components / source rows | rows | units / coordinates | disposition | | --- | --- | ---: | --- | --- | -| `linear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | length / global | blocking regression | -| `linear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | -| `nonlinear.translation` | `U1,U2,U3`, nodes `1..49` | 147 | length / global | blocking | -| `nonlinear.rotation` | `UR1,UR2,UR3`, nodes `1..49` | 147 | dimensionless / fixed-initial global | warning-only | -| `nonlinear.reaction_inplane_force` | `RF1,RF2`, 24 constrained nodes | 48 | force / fixed-initial global plane | blocking | -| `nonlinear.reaction_transverse_force` | `RF3`, 24 constrained nodes | 24 | force / fixed-initial global transverse | blocking | -| `nonlinear.reaction_physical_moment` | `RM1,RM2`, 24 constrained nodes | 48 | force-length / global spatial | blocking | +| `linear.translation` | U1/U2/U3; nodes `1..49` | 147 | length / global | `blocking` | +| `linear.rotation` | UR1/UR2/UR3; nodes `1..49` | 147 | dimensionless / fixed-initial global | `warning-only` | +| `coarse.translation` | U1/U2/U3; nodes `1..49` | 147 | length / global | `blocking` | +| `coarse.rotation` | UR1/UR2/UR3; nodes `1..49` | 147 | dimensionless / fixed-initial global | `warning-only` | +| `coarse.local_reaction_inplane_force` | RF1/RF2; 24 constrained nodes | 48 | force / global shell plane | `review-only` | +| `coarse.local_reaction_transverse_force` | RF3; 24 constrained nodes | 24 | force / global transverse | `review-only` | +| `coarse.local_reaction_physical_moment` | RM1/RM2; 24 constrained nodes | 48 | force-length / global spatial | `review-only` | +| `fine.translation` | U1/U2/U3; nodes `1..729` | 2,187 | length / global | `blocking` | +| `fine.rotation` | UR1/UR2/UR3; nodes `1..729` | 2,187 | dimensionless / fixed-initial global | `warning-only` | +| `fine.local_reaction_inplane_force` | RF1/RF2; 104 constrained nodes | 208 | force / global shell plane | `review-only` | +| `fine.local_reaction_transverse_force` | RF3; 104 constrained nodes | 104 | force / global transverse | `review-only` | +| `fine.local_reaction_physical_moment` | RM1/RM2; 104 constrained nodes | 208 | force-length / global spatial | `review-only` | + +### 4.7 Internal blocking verification families + +| family id | exact rows/components | gate | +| --- | --- | --- | +| `coarse.accepted_free_force_residual` | 75 free translation DOFs | NSNR-069 force channel, factor one | +| `coarse.accepted_free_moment_residual` | 75 free rotation DOFs | NSNR-069 moment channel, factor one | +| `coarse.global_force_balance` | 3 global balance-error components | normalized `<=1e-8` | +| `coarse.global_moment_balance` | 3 global balance-error components | normalized `<=1e-8` | +| `fine.accepted_free_force_residual` | 1,875 free translation DOFs | NSNR-069 force channel, factor one | +| `fine.accepted_free_moment_residual` | 1,875 free rotation DOFs | NSNR-069 moment channel, factor one | +| `fine.global_force_balance` | 3 global balance-error components | normalized `<=1e-8` | +| `fine.global_moment_balance` | 3 global balance-error components | normalized `<=1e-8` | + +이 internal families에는 Abaqus CSV value 또는 `docs/TOLERANCE.md`를 적용하지 않는다. +Approved analytical/invariant gates이며 exact definitions는 `numerical-review.md` §6.2다. ## 5. Row Prechecks -Before tolerance, the comparator shall fail the affected comparison if any required condition -below is false. +Tolerance 또는 internal metric 전에 다음을 검사한다. -1. Exact declared input path and every `required comparison artifact=yes` CSV path for the - case exist and are readable. -2. Required headers are present after trimming surrounding whitespace from header names. -3. `shellnl-s4-final` contains only the exact required `Frame` value for required rows. -4. Wide CSV rows expand to component rows using the component contract in Section 4. -5. Required source row keys are unique. Duplicate wide keys or duplicate expanded component keys fail. -6. Displacement projection requires all 49 source nodes and declared components. Nonlinear - reaction projection derives the exact 24-node/component set from the input constraint mask; - it does not infer reaction identity from CSV zero values. -7. FESA and reference required projected row-key sets are exactly equal: missing and extra rows - both fail. -8. Every required numeric value is finite. Nonfinite required FESA or CSV value fails before tolerance. -9. Optional stress inventory uses `(instance, element label, node label, section point)` and verifies - the current ascending element-label blocks, connectivity nodes and SPOS/SNEG pair. This inspection - does not create a stress equality gate. -10. Required rows are not omitted, synthesized, normalized, averaged, sorted into a different identity, - zero-clamped, or repaired. +1. 각 case의 exact declared input과 해당 disposition에 필요한 CSV가 존재하고 readable하다. +2. Header는 surrounding whitespace만 trim하고 required names/components가 모두 있어야 한다. +3. Nonlinear required rows의 Frame은 exact factor-one identity여야 한다. +4. Wide CSV는 Section 4 contract로 component rows에 결정적으로 expand한다. +5. Wide key와 expanded key는 unique해야 한다. Duplicate는 affected family를 tolerance 전에 fail한다. +6. Input node inventory와 source constraint mask로 expected key set을 만든다. CSV zero values 또는 + row position에서 reaction identity를 추론하지 않는다. +7. FESA와 reference projected key sets는 exact equal해야 한다. Missing과 extra rows를 모두 fail한다. +8. Required FESA/CSV/internal values와 derived scales/norms는 모두 finite여야 한다. +9. Internal free residual rows는 exact free mask와 force/moment partition을 보존한다. Global balance는 + 모든 applied source와 constrained reaction을 stable source order로 한 번씩만 사용한다. +10. Local review rows는 global resultant로 collapse하거나 대체하지 않는다. Review precheck failure는 + deterministic review failure로 기록하지만 blocking verdict를 변경하지 않는다. +11. Warning-only precheck/tolerance failure는 deterministic warning을 만들고 blocking verdict를 + 변경하지 않는다. Blocking precheck failure는 전체 comparison을 fail한다. +12. Row omission/synthesis, averaging, source-order matching, clamp, normalization 또는 artifact repair를 + 허용하지 않는다. -Observed read-only inventory used for this contract: +Observed read-only nodal CSV audit: -| CSV | observed wide key columns | duplicate wide keys | nonfinite observed values | observed element labels | -| --- | --- | ---: | ---: | --- | -| `reference/shellNL/shellNL displacements.csv` | `Frame`, `Part Instance Name`, `Node Label` | 0 | 0 | N/A | -| `reference/shellNL/shellNL reactions.csv` | `Frame`, `Part Instance Name`, `Node Label` | 0 | 0 | N/A | -| `reference/shellNL/shellNL stresses.csv` | `Frame`, `Part Instance Name`, `Element Label`, `Node Label`, `Section Point` | 0 | 0 | `1..36` | -| `reference/shell/shell displacements.csv` | `Part Instance Name`, `Node Label` | 0 | 0 | N/A | -| `reference/shell/shell reactions.csv` | `Part Instance Name`, `Node Label` | 0 | 0 | N/A | -| `reference/shell/shell stresses.csv` | `Part Instance Name`, `Element Label`, `Node Label`, `Section Point` | 0 | 0 | `1..36` | +| CSV | wide rows | duplicate keys | nonfinite required values | status | +| --- | ---: | ---: | ---: | --- | +| `reference/shell/shell displacements.csv` | 49 | 0 | 0 | readable | +| `reference/shellNL/shellNL displacements.csv` | 49 | 0 | 0 | readable | +| `reference/shellNL/shellNL reactions.csv` | 49 | 0 | 0 | readable | +| `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | 729 | 0 | 0 | readable | +| `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | 729 | 0 | 0 | readable | ## 6. Tolerance and Blocking/Warning Policy -Use exactly `docs/TOLERANCE.md` for every external reference family. This report does not invent -or calibrate tolerance values. +### 6.1 External families -For each comparison family: +Section 4.6의 모든 external blocking, warning-only와 review-only error report는 +`docs/TOLERANCE.md`를 그대로 사용한다. -- `S = max(abs(reference_value_i))`, using reference values only. -- near-zero band is `0.01*S`. -- if `abs(reference_value_i) <= 0.01*S`, row passes iff `abs(fesa-reference) <= 0.01*S`. -- otherwise row passes iff relative error `<= 0.05`. -- family relative RMS is `RMS(error)/S <= 0.01`. -- no independent absolute-error floor, `max(1, S)` clamp, row omission, averaging, or zero clamp is allowed. -- if `S = 0`, the family passes only when all FESA values are exactly zero; otherwise report - `zero-reference-scale-nonzero-error`. +- Reference-only `S=max(abs(reference_i))`, near-zero band `B=0.01*S`. +- `abs(reference_i)<=B`이면 `abs(fesa-reference)<=B`. +- 그 외 row는 relative error `<=0.05`. +- 모든 row와 `RMS(error)/S<=0.01`이 함께 pass해야 family가 pass한다. +- Independent absolute floor, `max(1,S)`, omission, averaging 또는 zero clamp는 없다. +- `S=0`이면 모든 FESA 값도 exact zero일 때만 pass한다. -Families are separated by the exact case/logical quantities in Section 4.5. Current -reference-only scales provide a reproducible reader/comparator audit: +Observed reference-only scales는 reader/family audit evidence이며 calibration 값이 아니다. -| family | `S` | `B=0.01*S` | -| --- | ---: | ---: | -| `linear.translation` | `2.37408203e-5` | `2.37408203e-7` | -| `linear.rotation` | `7.60725743e-6` | `7.60725743e-8` | -| `nonlinear.translation` | `2.37408203e-5` | `2.37408203e-7` | -| `nonlinear.rotation` | `7.60725743e-6` | `7.60725743e-8` | -| `nonlinear.reaction_inplane_force` | `1.91663182` | `1.91663182e-2` | -| `nonlinear.reaction_transverse_force` | `1.17769805e4` | `1.17769805e2` | -| `nonlinear.reaction_physical_moment` | `1.95418418e4` | `1.95418418e2` | +| family | rows | `S` | `B=0.01*S` | +| --- | ---: | ---: | ---: | +| `linear.translation` | 147 | `2.37408203e-5` | `2.37408203e-7` | +| `linear.rotation` | 147 | `7.60725743e-6` | `7.60725743e-8` | +| `coarse.translation` | 147 | `2.37408203e-5` | `2.37408203e-7` | +| `coarse.rotation` | 147 | `7.60725743e-6` | `7.60725743e-8` | +| `coarse.local_reaction_inplane_force` | 48 | `1.91663182` | `1.91663182e-2` | +| `coarse.local_reaction_transverse_force` | 24 | `1.17769805e4` | `1.17769805e2` | +| `coarse.local_reaction_physical_moment` | 48 | `1.95418418e4` | `1.95418418e2` | +| `fine.translation` | 2,187 | `2.57957054e-5` | `2.57957054e-7` | +| `fine.rotation` | 2,187 | `6.58704994e-6` | `6.58704994e-8` | +| `fine.local_reaction_inplane_force` | 208 | `5.38827419e-1` | `5.38827419e-3` | +| `fine.local_reaction_transverse_force` | 104 | `2.78506128e3` | `2.78506128e1` | +| `fine.local_reaction_physical_moment` | 208 | `4.71557520e3` | `4.71557520e1` | -Any `blocking` family row or RMS failure fails the reference comparison for the feature. -`warning-only` failures produce deterministic warning evidence but do not change the blocking -verdict. `RM3` and stress artifacts create neither a blocking nor warning-only tolerance family. +Blocking family의 precheck/row/RMS failure만 전체 external-reference verdict를 fail한다. +Warning-only는 warning, review-only는 deterministic review finding/error table을 남기지만 +blocking verdict를 바꾸지 않는다. `RM3`와 stress는 family를 만들지 않는다. + +### 6.2 Internal equilibrium families + +- Accepted free force/moment residual은 factor-one accepted trial에서 NSNR-069을 그대로 + 재현한다. Nonzero matching external scale이면 infinity-norm relative `<=1e-2`; exact-zero + scale이면 typed absolute `<=1e-3` force 또는 force-length다. +- Global force/moment balance는 `numerical-review.md` §6.2의 sum-of-contribution scale과 + dimension-separated normalized metric을 사용하며 각각 `<=1e-8`이다. +- Internal gate에 external family tolerance, absolute floor, reference-derived scale 또는 local + nodal reaction error를 섞지 않는다. ## 7. Open Issues and I/O Handoff Open issues blocking I/O Definition: 없음. -I/O Definition Agent handoff: +I/O Definition Agent handoff through Coordinator: -- Project only the comparison quantities in Sections 4.2, 4.3 and 4.5 to authoritative FESA - result datasets without changing source identity or final comparison disposition. -- Preserve `Frame` handling for `shellnl-s4-final` as accepted factor-one state identity; do not expose - trial Newton history as reference rows. -- Derive constrained reaction identity from the input mask. Compare `RM1/RM2` with the global - spatial physical reaction moment, not the raw generalized rotation-coordinate covector. -- Preserve approved Gauss direct stress recovery. Do not create element-corner stress, - extrapolation, averaging or a stress CSV projection for the current optional SPOS/SNEG artifacts. -- Keep `RM3`, `S-S33`, `S-S11`, `S-S22` and `S-S12` out of current comparison families. -- Use the common tolerance policy exactly as written above and in `docs/TOLERANCE.md`. +- Fine primary와 coarse companion nonlinear case의 accepted factor-one identity를 보존한다. +- Section 4.4의 `(a)` applied-plus-reaction balance error, `(b)` constrained reaction resultant, + `(c)` accepted free residual을 separate logical quantities로 최종 projection한다. +- Global moment는 origin `[0,0,0]`, current `X+u` force arm과 spatial physical nodal moment를 + 사용한다. General nonzero prescribed translation/rotation에서도 initial arm/raw rotational + residual을 재사용하지 않는다. +- Local RF/RM은 exact source-key/schema/inventory/finite/error reporting이 있는 review-only다. + Local rows를 global sum으로 대체하거나 blocking으로 되돌리지 않는다. +- Approved Gauss direct stress recovery를 유지한다. Optional element-corner stress artifact에 + 맞춘 extrapolation/averaging 또는 stress comparison projection을 만들지 않는다. +- Common external tolerance와 exact prechecks를 변경하지 않는다. -Reference artifact status: complete for I/O Definition. No declared required input or required -comparison CSV is missing or unreadable. Optional stress CSVs are present and readable as inventory -evidence only. No reference artifact was generated, renamed, repaired, normalized, or modified. +Reference artifact status: required input/displacement/reaction artifacts are present and readable. +Optional fine stress identity issue는 transparent nonblocking inventory finding이다. 어떤 reference +artifact도 생성, rename, repair, normalize 또는 수정하지 않았다. diff --git a/docs/nonlinear-static-newton-raphson/requirements.md b/docs/nonlinear-static-newton-raphson/requirements.md index 74f2fd3..2a7b053 100644 --- a/docs/nonlinear-static-newton-raphson/requirements.md +++ b/docs/nonlinear-static-newton-raphson/requirements.md @@ -3,11 +3,11 @@ ## 1. Metadata - feature_id: `nonlinear-static-newton-raphson` - title: `Nonlinear Static Analysis Using Newton–Raphson` -- status: `approved` +- status: `draft` - owner_agent: `requirement-agent` -- date: `2026-08-22` -- approved_by: user -- approval_date: `2026-08-23` +- date: `2026-08-27` +- approved_by: pending user re-approval +- approval_date: pending - authoritative_scope: materially linear, geometrically nonlinear `S4/S4R -> FESA-MITC4` - independence: FESA는 독립 solver이며 Abaqus 또는 Midas의 내부 알고리즘 동등성을 주장하지 않는다. - unit_policy: `.inp` 단위계를 추론하거나 변환하지 않고 사용자가 일관되게 제공한 단위계를 보존한다. @@ -26,7 +26,7 @@ FESA는 하나의 지원 nonlinear static step을 scalar load factor로 증가 - factor-1 absolute prescribed `*BOUNDARY` targets와 four-value nonlinear `*STATIC` - four-channel residual/correction convergence, maximum 100 iterations, no line search - separate trial state, atomic commit/rollback, accepted-frame HDF5와 per-iteration text log -- deterministic assembly, iteration, frame, result, diagnostic order와 stored-reference verification +- deterministic assembly, iteration, frame, result, diagnostic order와 factor-one global reaction/equilibrium 및 stored-reference verification ## 4. Out Of Scope - material nonlinearity, nonlinear material history, combined material/geometric nonlinearity @@ -138,16 +138,16 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det trace_to: {parent_need: "NEED-NSNR-002", downstream_agents: ["Numerical Review Agent", "Implementation Planning Agent"]} status: approved - id: FESA-REQ-NSNR-069 - statement: "The FESA solver shall evaluate translational-force and rotational-moment free-residual convergence with channel-separated infinity-norm gates." + statement: "The FESA solver shall evaluate translational-force and rotational-moment free-residual convergence with channel-separated infinity-norm gates selected by each matching external residual-channel scale." category: numerical rationale: "Force and moment dimensions require separate scales." source: user priority: must verification_method: test - acceptance_criteria: "For a nonzero matching-channel denominator max(||internal||inf, ||external||inf), the same-trial residual ratio passes iff <=1e-2; an exact-zero denominator instead passes iff its numerator is <=1e-3 model-consistent force or <=1e-3 model-consistent force-length, respectively." - tolerance: "Relative 1e-2 dimensionless; zero-scale absolute 1e-3 force and 1e-3 force-length." + acceptance_criteria: "For each residual channel, a nonzero matching external-channel scale retains denominator max(||internal||inf, ||external||inf), and the same-trial residual ratio passes iff <=1e-2; an exact-zero matching external-channel scale instead applies the typed absolute gate, which passes iff its numerator is <=1e-3 model-consistent force or <=1e-3 model-consistent force-length, respectively." + tolerance: "Relative 1e-2 dimensionless for nonzero matching external-channel scale; exact-zero matching external-channel absolute 1e-3 force and 1e-3 force-length." trace_to: {parent_need: "NEED-NSNR-002", downstream_agents: ["Numerical Review Agent", "Implementation Planning Agent"]} - status: approved + status: draft - id: FESA-REQ-NSNR-070 statement: "The FESA solver shall evaluate translational and rotational free-correction convergence with channel-separated infinity-norm gates." category: numerical @@ -248,14 +248,14 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det trace_to: {parent_need: "NEED-NSNR-003", downstream_agents: ["Formulation Agent", "Numerical Review Agent", "Implementation Planning Agent"]} status: approved - id: FESA-REQ-NSNR-019 - statement: "The FESA solver shall preserve stable source identity and stable assembly order and shall derive free residual and constrained reaction from the complete assembled equilibrium at the same state." + statement: "The FESA solver shall preserve stable source identity and stable assembly order and shall keep the accepted free residual, constrained reaction resultant, and global applied-plus-reaction balance error as distinct equilibrium quantities derived at the same accepted state." category: physics - rationale: "Equilibrium evidence must remain traceable to source entities and DOFs." + rationale: "Reaction and equilibrium evidence must remain traceable without treating physically distinct projections as interchangeable." source: docs priority: must verification_method: test - acceptance_criteria: "Input instance/label/component maps deterministically through assembly, state, diagnostic, result, and comparison; full residual at a trial or accepted state yields free-equilibrium evidence and constrained reactions." - tolerance: "Source/component identity and discrete order exact; equilibrium uses approved numerical tolerances." + acceptance_criteria: "Input instance/label/component maps deterministically through assembly, state, diagnostic, result, and comparison; accepted free entries remain free-equilibrium evidence, constrained entries form physical reactions, and the constrained-reaction resultant remains distinct from the global applied-plus-reaction balance error. Blocking factor-one equilibrium quantities are global applied-plus-reaction force [3] and moment [3] balance errors plus accepted free residual. Every global moment is about global origin [0,0,0] and uses current force arms plus spatial physical nodal moments." + tolerance: "Source/component, quantity identity, origin, and discrete order exact; equilibrium and reference values use their separately approved numerical tolerances." trace_to: {parent_need: "NEED-NSNR-002, NEED-NSNR-004", downstream_agents: ["Formulation Agent", "Numerical Review Agent", "I/O Definition Agent"]} status: approved - id: FESA-REQ-NSNR-020 @@ -314,25 +314,25 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det trace_to: {parent_need: "NEED-NSNR-003, NEED-NSNR-004", downstream_agents: ["Numerical Review Agent", "Implementation Planning Agent"]} status: approved - id: FESA-REQ-NSNR-030 - statement: "The FESA solver shall pass an approved verification portfolio covering the materially linear small-displacement limit, tangent consistency, equilibrium/reaction, symmetry or objectivity, and commit/rollback behavior." + statement: "The FESA solver shall pass an approved verification portfolio covering the materially linear small-displacement limit, tangent consistency, factor-one global applied-plus-reaction balance and accepted free residual, symmetry or objectivity, and commit/rollback behavior." category: verification rationale: "Convergence alone does not establish nonlinear solver correctness." source: docs priority: must verification_method: analysis - acceptance_criteria: "Numerical Review defines blocking cases and quantities for every listed category, and implementation passes each approved analytical, invariant, physics, or comparison gate." - tolerance: "Case-specific tolerances are owned by Numerical Review; existing linear-limit tolerance remains unchanged." + acceptance_criteria: "Numerical Review defines blocking cases and quantities for every listed category, and implementation passes each approved analytical, invariant, physics, or comparison gate. Reaction/equilibrium acceptance separately blocks on factor-one global applied-plus-reaction force [3] and moment [3] balance errors and accepted free-DOF residual evidence; constrained-reaction resultants retain a distinct identity, and local nodal reaction distribution does not decide the blocking verdict." + tolerance: "Case-specific invariant tolerances are owned by Numerical Review; external comparisons use docs/TOLERANCE.md; existing linear-limit tolerance remains unchanged." trace_to: {parent_need: "NEED-NSNR-004", downstream_agents: ["Research Agent", "Formulation Agent", "Numerical Review Agent"]} status: approved - id: FESA-REQ-NSNR-034 - statement: "The FESA solver shall compare only approved accepted-state quantities against stored reference artifacts using stable source/component matching and the common docs/TOLERANCE.md policy." + statement: "The FESA solver shall compare only approved accepted-state quantities against stored reference artifacts using stable source/component matching, the approved blocking/warning/review disposition, and the common docs/TOLERANCE.md policy." category: verification rationale: "Reference acceptance must be deterministic and independent of solver execution." source: docs priority: must verification_method: reference-comparison - acceptance_criteria: "Numerical Review selects the exact existing input and required CSV quantities; precheck rejects missing, extra, duplicate, or nonfinite required rows before blocking/warning family comparison, without averaging or row-order matching." - tolerance: "docs/TOLERANCE.md family-scale policy; exact artifacts and families are a Numerical Review-owned readiness gap." + acceptance_criteria: "Numerical Review selects the exact existing input and required CSV quantities; precheck rejects missing, extra, duplicate, or nonfinite required rows before numerical comparison, without averaging, collapse, row-order matching, zero clamp, or reference repair. U1/U2/U3 remain blocking and UR1/UR2/UR3 remain warning-only. Local nodal RF1/RF2/RF3 and physical spatial RM1/RM2 retain deterministic source-key/schema/finite/inventory/error reporting but are review-only and never change the blocking verdict; local RM3 and stress remain excluded from numerical comparison." + tolerance: "docs/TOLERANCE.md family-scale policy for external blocking, warning-only, and review-only error reporting; exact artifact roles, local review projection, family membership, and row schema are a Numerical Review-owned readiness gap." trace_to: {parent_need: "NEED-NSNR-004", downstream_agents: ["Numerical Review Agent", "I/O Definition Agent"]} status: approved ``` @@ -341,7 +341,10 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det | quantity | dimension / coordinates | role | | --- | --- | --- | | nodal displacement and committed rotation/director state | length and dimensionless rotation; global | accepted-state kinematics and rollback | -| full residual and constrained reaction | force or force-length; global DOF | equilibrium and reaction evidence | +| accepted free-DOF residual | force or force-length; global DOF | blocking accepted-state equilibrium evidence | +| local nodal `RF1/RF2/RF3`, physical spatial `RM1/RM2` | force or force-length; global | deterministic review-only/nonblocking distribution evidence; `RM3` excluded | +| constrained-reaction resultant force `[3]` and moment `[3]` | force and force-length; global; moment about `[0,0,0]` with current arms and spatial physical moments | distinct reaction summary; not interchangeable with global balance error | +| applied-plus-reaction balance error force `[3]` and moment `[3]` | force and force-length; global; same origin/arm/moment convention | blocking factor-one reaction/equilibrium evidence | | MITC4 internal force, stress and strain | model-consistent dimensions; approved element frame/configuration | formulation, physics and reference verification | | scalar load factor and accepted frame identity | dimensionless | path, commit and output ordering | | four convergence channels | typed as NSNR-069/070 | internal iteration acceptance only | @@ -349,13 +352,14 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det ## 10. Tolerance Policy - `.inp` values remain in the user's consistent unit system; FESA performs no unit inference or conversion. -- Only nonzero-scale convergence ratios are dimensionless and pass with `<=1e-2`. -- Exact-zero residual thresholds are `1e-3` force and `1e-3` force-length; correction thresholds are `1e-3` length and `1e-3` dimensionless rotation. Equal literals do not merge their dimensions. -- External comparisons use `docs/TOLERANCE.md`; internal invariant, tangent, endpoint-arithmetic and physics tolerances are fixed by Numerical Review before implementation. +- Residual ratios with nonzero matching external-channel scale and correction ratios with nonzero current-trial incremental-solution denominator are dimensionless and pass with `<=1e-2`. +- Exact-zero matching external-channel residual thresholds are `1e-3` force and `1e-3` force-length; exact-zero correction-denominator thresholds are `1e-3` length and `1e-3` dimensionless rotation. Equal literals do not merge their dimensions. +- External blocking, warning-only, and review-only error reporting use `docs/TOLERANCE.md` without changing their verdict disposition; internal invariant, tangent, endpoint-arithmetic, free-residual and global-balance tolerances are fixed by Numerical Review before implementation. ## 11. Reference Case Requirements -- The current Stage-1 gap is selection of exact stored nonlinear input and only the CSV quantities required for acceptance. -- Numerical Review owns artifact readiness, blocking/warning families, source/component identity and HDF5 projection; this gap does not require another Stage-1 user question. +- Stored nonlinear candidates use exact read-only input/displacement pairs `reference/shellNL/shellNL.inp` with `reference/shellNL/shellNL displacements.csv`, and `reference/shellNL-meshfine/shellNL-meshfine.inp` with `reference/shellNL-meshfine/shellNL-meshfine displacements.csv`. Exact local-reaction review artifacts are `reference/shellNL/shellNL reactions.csv` and `reference/shellNL-meshfine/shellNL-meshfine reactions.csv`; they are not missing-required blocking artifacts. The existing linear-limit pair is `reference/shell/shell.inp` and `reference/shell/shell displacements.csv`. +- Numerical Review shall fix which exact nonlinear candidate case or cases are blocking versus diagnostic, the factor-one HDF5 projection, required source rows/components and comparison families, and the internal tolerances for global balance/free-residual gates. `U1/U2/U3` are blocking, `UR1/UR2/UR3` are warning-only, local nodal RF/RM rows are review-only, and `RM3` and stress have no numerical comparison projection. +- All selected local review rows retain deterministic identity, schema, finite-value, inventory, and error reporting even though they cannot fail the blocking verdict. A physical global resultant sum is not a substitute identity for those local rows, and no row is averaged, collapsed, omitted, zero-clamped, or repaired. - Agents do not run Abaqus, Nastran or another reference solver and do not create, rename, repair or normalize stored reference artifacts. ## 12. Requirement Verification Matrix @@ -367,7 +371,7 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det | `NSNR-074` | physics | user | must | analysis | finite committed/trial triad/director state and rollback | invariant tolerance downstream | Formulation; Numerical Review | approved | | `NSNR-006` | numerical | user | must | test | same-trial residual/tangent and fresh factorization/solve | identity/order exact | Formulation; Numerical Review; Planning | approved | | `NSNR-007` | numerical | user | must | test | all four free-DOF gates pass; constrained residual is reaction | NSNR-069/070 | Numerical Review; Planning | approved | -| `NSNR-069` | numerical | user | must | test | force/moment residual relative or typed zero-scale gates | `1e-2`; typed `1e-3` | Numerical Review; Planning | approved | +| `NSNR-069` | numerical | user | must | test | force/moment residual relative gate for nonzero external scale; typed absolute gate for exact-zero external scale | `1e-2`; typed `1e-3` | Numerical Review; Planning | draft | | `NSNR-070` | numerical | user | must | test | translation/rotation correction relative or typed zero-scale gates | `1e-2`; typed `1e-3` | Numerical Review; Planning | approved | | `NSNR-008` | numerical | user | must | test | finite data, iterations 1..100, pass at 100 allowed | predicates/count exact | Numerical Review; Planning | approved | | `NSNR-014` | constraint | user | must | test | unchanged full correction; no line search/fallback/energy gate | identity exact | Numerical Review; Planning | approved | @@ -377,21 +381,21 @@ Exact Total Lagrangian shell equations, strain/stress measures, rotation map det | `NSNR-063` | physics | user | must | test | absolute factor-one BC target and separate correction | path/source exact | Formulation; Numerical Review | approved | | `NSNR-016` | input | user | must | test | four-value STATIC mapping and validation | endpoint exact | I/O; Planning | approved | | `NSNR-011` | functional | user | must | test | separate trial, atomic commit, prior-state preservation | state exact | Formulation; Numerical Review; Planning | approved | -| `NSNR-019` | physics | docs | must | test | stable source/assembly and full-equilibrium residual/reaction | identity/order exact | Formulation; Numerical Review; I/O | approved | +| `NSNR-019` | physics | docs | must | test | distinct free residual, constrained-reaction resultants and applied+reaction balance; current-arm/spatial-moment semantics | quantity/origin/identity/order exact | Formulation; Numerical Review; I/O | approved | | `NSNR-020` | input | docs | must | test | unsupported meaning fails closed | inventory exact | I/O; Planning | approved | | `NSNR-021` | output | user | must | test | accepted commit/frame bijection and failure-safe HDF5 final | identity exact | Numerical Review; I/O; Planning | approved | | `NSNR-024` | output | user | must | test | one ordered diagnostic summary per entered iteration and persistent live log | semantic identity exact | I/O; Planning | approved | | `NSNR-083` | output | user | must | test | repository names; every literal --output form unrecognized with pre-input/pre-Analysis/pre-output exit 2 and no alias/deprecation; asymmetric lifecycle; linear regression | public identity/precedence exact | I/O; Planning; Numerical Review | approved | | `NSNR-026` | constraint | docs | must | test | deterministic factor/iteration/assembly/frame/result/log order | discrete order exact | Numerical Review; Planning | approved | -| `NSNR-030` | verification | docs | must | analysis | blocking small-limit/tangent/physics/rollback portfolio | case-specific downstream | Research; Formulation; Numerical Review | approved | -| `NSNR-034` | verification | docs | must | reference-comparison | stored artifacts, deterministic matching and precheck | docs/TOLERANCE.md | Numerical Review; I/O | approved | +| `NSNR-030` | verification | docs | must | analysis | blocking small-limit/tangent/global applied+reaction balance/free-residual/physics/rollback portfolio | case-specific downstream; external policy unchanged | Research; Formulation; Numerical Review | approved | +| `NSNR-034` | verification | docs | must | reference-comparison | U blocking, UR warning-only, local RF/RM review-only, exact matching/precheck | docs/TOLERANCE.md | Numerical Review; I/O | approved | ## 13. Open Questions 없음. Specialist gaps are owned by downstream stages and are escalated only if they would change approved scope, physics, tolerance, authoritative output or public compatibility. ## 14. Downstream Handoff -- Research/Formulation: exact Total Lagrangian MITC4 equations, strain/stress measures, rotation map/side/frame, drilling and consistent derivatives. -- Numerical Review: endpoint arithmetic, tangent/objectivity/state-invariant checks, benchmark portfolio, performance adequacy and exact reference artifacts/quantities. -- I/O Definition: HDF5 schema/projection/chunking/factor-0 handling, log representation/failure presentation and path/collision conventions. -- Implementation Planning: backend adapters, output ownership primitive, candidate filename, performance targets and requirement-traced TDD plan. +- Research/Formulation: exact Total Lagrangian MITC4 equations, strain/stress measures, rotation map/side/frame, drilling and consistent derivatives; Formulation propagates NSNR-069's exact-zero matching external-channel typed absolute branch and retained nonzero external-scale relative denominator. +- Numerical Review: verify the revised NSNR-069 branch and unchanged thresholds/four-channel AND, endpoint arithmetic, tangent/objectivity/state-invariant checks, benchmark portfolio and performance adequacy. Fix exact coarse/fine reference roles, local review projection/families, and factor-one global balance/free-residual tolerances while preserving local RF/RM review-only, `RM3` exclusion, displacement/rotation disposition, exact prechecks, immutable artifacts and common external tolerance. +- I/O Definition: HDF5 schema/projection/chunking/factor-0 handling, log representation/failure presentation and path/collision conventions. Audit and keep separately identifiable `(a)` global applied-plus-reaction balance error, `(b)` constrained-reaction resultant and `(c)` accepted free residual; global moments use current positions and spatial physical nodal moments about `[0,0,0]`, including supported nonzero prescribed translation/rotation cases. +- Implementation Planning: backend adapters, output ownership primitive, candidate filename, performance targets and requirement-traced TDD plan. Stage 6 must test the three equilibrium identities separately and must not reuse one implementation dataset as another without proving its approved projection semantics. - Coordinator: escalate only a downstream proposal that changes the approved scope, physics, convergence tolerance, authoritative-result meaning or public output contract; do not advance the workflow on this document alone. diff --git a/docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md b/docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md new file mode 100644 index 0000000..99810de --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md @@ -0,0 +1,186 @@ +# Translation Displacement Comparison Report + +## 1. Metadata and scope + +- feature_id: `nonlinear-static-newton-raphson` +- report_id: `TRANSLATION-REPORT-001` +- date: `2026-08-26` +- owner_agent: `implementation-agent` (bounded diagnostic dispatch) +- dispatch coordination SHA-256: `D7CE6264EE3FD20FB6CD74CF1FC28E05EEEEFA67B25AF737D2DF989059A72D6F` +- status: `translation-diagnostic-pass-not-a-gate` +- tolerance source: `docs/TOLERANCE.md` + +This focused report recomputes only global translational displacement components +`U1/U2/U3` for the existing coarse `reference/shellNL` case and the added fine +`reference/shellNL-meshfine` case. It is diagnostic evidence for the observed +mesh sensitivity; it does not create or replace the canonical Stage 6 +`reference-comparison.md`. In particular, it is not Step 12 implementation +evidence and does not change any workflow gate. + +The two meshes are compared separately to their own read-only Abaqus CSV +artifacts. No coarse-to-fine node interpolation, row pairing, averaging, or +direct FESA-to-FESA error was used. + +## 2. Artifact inventory and accepted-frame identity + +All paths below are relative to the feature worktree. SHA-256 and byte counts +were recomputed before comparison. + +| mesh | artifact | path | bytes | SHA-256 | +| --- | --- | --- | ---: | --- | +| coarse | input | `reference/shellNL/shellNL.inp` | 4,778 | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| coarse | translation CSV | `reference/shellNL/shellNL displacements.csv` | 7,542 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| coarse | FESA HDF5 | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-441600152250700-0/shellNL_results.h5` | 934,602 | `9744814BEBF33486F526F821EDC7D96F072F34E988D70A00AC7AA063570FFA40` | +| fine | input | `reference/shellNL-meshfine/shellNL-meshfine.inp` | 56,516 | `40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220` | +| fine | translation CSV | `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | 111,184 | `740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F` | +| fine | FESA HDF5 | `.harness/build-ninja-msvc-debug/reference/meshfine-diagnostic/run-1787669003801/shellNL-meshfine_results.h5` | 10,547,651 | `81A3C431E2977D2482D212877C3C306FFBB19CD1F0C47FBF1C936AE06CC93ACA` | + +For both HDF5 artifacts, `/steps/Step-1/accepted_frames` has ten accepted rows. +The unique row satisfying `is_factor_one=1` and `load_factor=1.0` is +`frame_index=9`, `increment_index=10`, and `iteration_count=2`. Translation +values were projected only from +`/steps/Step-1/frames/9/nodal/displacement`, columns `[UX, UY, UZ]`: + +| mesh | HDF5 node rows | displacement shape | CSV wide rows | exact CSV Frame | +| --- | ---: | --- | ---: | --- | +| coarse | 49 | `[49, 6]` | 49 | `Increment 10: Step Time = 1.000` | +| fine | 729 | `[729, 6]` | 729 | `Increment 10: Step Time = 1.000` | + +## 3. Source identity and prechecks + +The comparison key is + +```text +(accepted_state=factor-one, canonical_instance_name, source_node_label, component) +``` + +`canonical_instance_name` is matched case-insensitively; the CSV/HDF5 source +spelling itself is not rewritten. CSV columns were selected after trimming only +surrounding header whitespace. The `U-U1/U-U2/U-U3` columns map respectively to +HDF5 `UX/UY/UZ`. Row order is not part of the identity and was not used for +matching. + +| mesh | component rows | duplicate CSV wide/component/HDF5 keys | nonfinite CSV/HDF5 values | missing HDF5 keys | extra HDF5 keys | precheck | +| --- | ---: | --- | --- | ---: | ---: | --- | +| coarse | 147 | `0 / 0 / 0` | `0 / 0` | 0 | 0 | pass | +| fine | 2,187 | `0 / 0 / 0` | `0 / 0` | 0 | 0 | pass | + +Each CSV contains only the exact factor-one `Frame` value shown above. Thus the +row prechecks required before numerical tolerance evaluation pass for the +translation projection in each mesh. + +## 4. Applied tolerance policy + +`U1/U2/U3` remain one global-length, blocking translation family within each +case. The component rows in Section 6 are diagnostics only: they use the same +case-family scale and near-zero band below and do not introduce a component +scale, component-specific tolerance, or a new approved family. + +For the reference values `r_i` and FESA values `f_i`, `docs/TOLERANCE.md` is +applied exactly: + +\[ +S=\max_i|r_i|,\qquad B=0.01S,\qquad e_i=|f_i-r_i|. +\] + +- If `|r_i| <= B`, the row passes iff `e_i <= B`. +- Otherwise, the row passes iff `e_i / |r_i| <= 0.05`. +- The whole family also requires `RMS(e_i) / S <= 0.01`. +- There is no independent absolute-error gate, `max(1,S)` floor, zero clamp, + row omission, or averaging. A zero-scale family would require exact FESA + zero; neither translation family has zero reference scale. + +## 5. Translation-family results + +| mesh | rows | `S` | `B=0.01S` | near-zero / significant rows | row failures | max absolute error | max significant-row relative error | RMS error | `L2(error)` | relative RMS | verdict | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | +| coarse | 147 | `2.3740820300000001e-05` | `2.3740820300000003e-07` | 122 / 25 | 0 | `1.9037855439354404e-07` | `8.5711169439298945e-03` | `2.4530813178127803e-08` | `2.9742030342848264e-07` | `1.0332757195473908e-03` | pass | +| fine | 2,187 | `2.5795705400000001e-05` | `2.5795705400000002e-07` | 1,626 / 561 | 0 | `1.6193812501096337e-07` | `6.2777164841928829e-03` | `5.8615647876386634e-09` | `2.7411825664926473e-07` | `2.2723025777921402e-04` | pass | + +Both sets have zero row failures and relative RMS values below the common +`0.01` threshold. This is a translation-only diagnostic pass; it is not a +full external-reference verdict for the nonlinear-static feature. + +## 6. Component diagnostics under the unchanged family scale + +The `near-zero/significant` counts and every row decision below use the Section 5 +family band `B`, not a component-derived scale. A dash for maximum relative +error means all rows of that component were near-zero and were therefore judged +only by the approved absolute-band rule. + +### 6.1 Coarse mesh + +| component | rows | near-zero / significant | row failures | max absolute error | max significant-row relative error | RMS error | `L2(error)` | worst row `(node; fesa; reference; abs error)` | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | +| U1 | 49 | 49 / 0 | 0 | `5.9371608358817413e-12` | — | `1.7563955953584068e-12` | `1.2294769167508847e-11` | `12; -8.7994083858817417e-12; -2.8622475500000000e-12; 5.9371608358817413e-12` | +| U2 | 49 | 49 / 0 | 0 | `5.9379769034414602e-12` | — | `1.7566506185832881e-12` | `1.2296554330083018e-11` | `19; 8.7996068934414599e-12; 2.8616299900000001e-12; 5.9379769034414602e-12` | +| U3 | 49 | 24 / 25 | 0 | `1.9037855439354404e-07` | `8.5711169439298945e-03` | `4.2488614702881049e-08` | `2.9742030292016737e-07` | `2; -2.3550441745606457e-05; -2.3740820300000001e-05; 1.9037855439354404e-07` | + +### 6.2 Fine mesh + +| component | rows | near-zero / significant | row failures | max absolute error | max significant-row relative error | RMS error | `L2(error)` | worst row `(node; fesa; reference; abs error)` | +| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | --- | +| U1 | 729 | 729 / 0 | 0 | `5.6550975712048108e-12` | — | `1.5513648050863109e-12` | `4.1886849737330394e-11` | `27; -1.1143569120481096e-13; 5.5436618799999999e-12; 5.6550975712048108e-12` | +| U2 | 729 | 729 / 0 | 0 | `5.6547834814404039e-12` | — | `1.5512360377367428e-12` | `4.1883373018892053e-11` | `16; -1.1132282144040392e-13; 5.5434606599999999e-12; 5.6547834814404039e-12` | +| U3 | 729 | 168 / 561 | 0 | `1.6193812501096337e-07` | `6.2777164841928829e-03` | `1.0152527787009038e-08` | `2.7411825024924402e-07` | `2; -2.5633767274989038e-05; -2.5795705400000001e-05; 1.6193812501096337e-07` | + +## 7. Deterministically ordered largest absolute-error rows + +Rows are listed by descending absolute error, then source node label and +component for a deterministic display. `part-1-1` below is the canonical +case-insensitive instance identity. + +| mesh | rank | key `(instance, node, component)` | FESA | reference | absolute error | applied rule and metric | +| --- | ---: | --- | ---: | ---: | ---: | --- | +| coarse | 1 | `(part-1-1, 2, U3)` | `-2.3550441745606457e-05` | `-2.3740820300000001e-05` | `1.9037855439354404e-07` | relative; `8.0190386005130586e-03` | +| coarse | 2 | `(part-1-1, 35, U3)` | `-1.2104431681576916e-05` | `-1.2190867900000000e-05` | `8.6436218423083233e-08` | relative; `7.0902432158323394e-03` | +| coarse | 3 | `(part-1-1, 39, U3)` | `-1.2104431681576916e-05` | `-1.2190867900000000e-05` | `8.6436218423083233e-08` | relative; `7.0902432158323394e-03` | +| fine | 1 | `(part-1-1, 2, U3)` | `-2.5633767274989038e-05` | `-2.5795705400000001e-05` | `1.6193812501096337e-07` | relative; `6.2777164841928829e-03` | +| fine | 2 | `(part-1-1, 21, U3)` | `-2.3863834908375246e-05` | `-2.3782464300000001e-05` | `8.1370608375244783e-08` | relative; `3.4214540322150206e-03` | +| fine | 3 | `(part-1-1, 69, U3)` | `-2.3863834908375246e-05` | `-2.3782464300000001e-05` | `8.1370608375244783e-08` | relative; `3.4214540322150206e-03` | + +## 8. Mesh trend interpretation + +The fine-mesh translation relative RMS divided by the coarse-mesh translation +relative RMS is + +\[ +\frac{2.2723025777921402\times10^{-4}} + {1.0332757195473908\times10^{-3}} +=0.21991251074664606. +\] + +This is a `78.008748925335397%` reduction in the separately measured +reference-normalized translation RMS. It is consistent with the hypothesis +that the coarse-case discrepancy is mesh-sensitive, and the fine case also +passes the same row/RMS policy. + +It is not an observed order of convergence, a proof of monotonic convergence, +or a solution-accuracy claim outside these translation rows: the two models have +different meshes and distinct external-reference outputs, and no common-mesh +interpolation or mesh-size-rate study was performed. + +## 9. Explicit exclusions and no-change assertion + +This report deliberately excludes: + +- all reaction quantities; +- `UR1/UR2/UR3` rotations; +- all stress quantities, including the user-noted `reference/shell` element-label + ordering change; +- Newton convergence lifecycle and iteration-log acceptance beyond identifying + the accepted factor-one HDF5 frame; +- `USER-DECISION-004` disposition; +- Step 11 and Step 12 status, Physics Evaluation, and Release readiness. + +No source, test, CMake, comparator, tolerance policy, phase file, canonical +reference-comparison report, declared input, or reference artifact was modified +for this report. The report also does not create `implementation-report.md`, +`build-test.md`, or `reference-comparison.md`. + +## 10. Handoff + +Within this narrow scope there is no artifact, identity, finite-value, or +translation-tolerance blocker. The report is handed to the Coordinator as +translation-only diagnostic evidence; gate ownership and all excluded work remain +unchanged. diff --git a/phases/nonlinear-static-newton-raphson/step10.md b/phases/nonlinear-static-newton-raphson/step10.md index c282519..83d26e1 100644 --- a/phases/nonlinear-static-newton-raphson/step10.md +++ b/phases/nonlinear-static-newton-raphson/step10.md @@ -134,6 +134,10 @@ Add tests first. - `NSNR-PROC-017`: failed nonlinear run preserves prior final HDF5 according to output lifecycle. - `NSNR-PROC-018`: deterministic repeat produces same sparse structure, nodal source-identity order, result row order, diagnostics, and log line ordering. +### USER-DECISION-003 option-1 revision addendum + +Step 10의 completed status, summary, timestamps와 commits는 보존한다. Existing procedure는 same-trial free residual/internal/external vectors를 force와 moment channel별로 분리하여 `EvaluateNewtonConvergence`에 전달하고 fresh same-iteration correction을 별도로 전달한다. 따라서 option 1의 production correction은 Step 11의 `nonlinear_static_control.cpp`에 한정하며 `nonlinear_static_procedure.cpp`, prepared-analysis API와 log writer production 변경은 예상하지 않는다. Step 11의 shellNL copied-input run과 log assertions이 unloaded rotational external channel의 exact-zero branch, loaded force channel의 retained relative branch, four-channel AND 및 intended factors `0.1..1.0`을 integration 수준에서 검증한다. + Run: ```powershell @@ -171,3 +175,4 @@ Update only Step 10 status and one-line payload. Executor owns timestamps, commi - Do not insert nonlinear branches into `LinearStaticAnalysis` private lifecycle. 이유: new procedure owns its own lifecycle. - Do not replace final HDF5 on failed analysis, log failure, or HDF5 failure. 이유: asymmetric preservation contract requires prior valid final preservation. - Do not construct MKL/TBB/HDF5 backends inside procedure executors. 이유: dependencies are injected so tests can observe lifecycle and no backend type crosses analysis/core public boundaries. +- Do not duplicate the option-1 selector in the procedure or log writer. 이유: the existing procedure already transports the three residual vectors separately and convergence ownership remains in `nonlinear_static_control`. diff --git a/phases/nonlinear-static-newton-raphson/step11.md b/phases/nonlinear-static-newton-raphson/step11.md index 7c73004..eec9c14 100644 --- a/phases/nonlinear-static-newton-raphson/step11.md +++ b/phases/nonlinear-static-newton-raphson/step11.md @@ -1,79 +1,143 @@ -# Step 11: reference-comparison-gate +# Step 11: equilibrium-projection-and-reference-gate + +## 목적 + +USER-DECISION-004 option 1과 `AUDIT-001`을 구현·검증한다. 같은 accepted factor-one state에서 +accepted free residual, constrained reaction resultant, global applied-plus-reaction balance error를 +서로 다른 quantity로 재구성하고, 기존 schema-v1 `/global/equilibrium`에는 balance error만 저장한다. +Fine nonlinear case는 primary, coarse nonlinear case는 companion으로 검증한다. Local nodal +`RF1/RF2/RF3`와 physical spatial `RM1/RM2`는 deterministic review-only evidence이고 blocking +verdict를 바꾸지 않는다. Global force와 moment balance는 각각 fixed normalized `<=1e-8` +comparator gate를 사용하며 runtime configuration 또는 product solver acceptance로 노출하지 않는다. ## 읽어야 할 파일 - `AGENTS.md` +- `docs/PRD.md` +- `docs/ARCHITECTURE.md` +- `docs/ADR.md` +- `docs/CODINGSTYLE.md` - `docs/TOLERANCE.md` -- `docs/nonlinear-static-newton-raphson/reference-model.md` -- `docs/nonlinear-static-newton-raphson/io.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` +- `docs/nonlinear-static-newton-raphson/requirements.md` +- `docs/nonlinear-static-newton-raphson/research.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 +- `docs/nonlinear-static-newton-raphson/numerical-review.md` §§3.2, 6.2, 6.3 +- `docs/nonlinear-static-newton-raphson/reference-model.md` §§3–6 +- `docs/nonlinear-static-newton-raphson/io.md` §§7.3–7.5.1, 8.1–8.7 +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `docs/nonlinear-static-newton-raphson/corrections.md` §13 +- `phases/nonlinear-static-newton-raphson/index.json` +- `include/fesa/analysis/nonlinear_analysis_state.h` +- `include/fesa/analysis/nonlinear_static_procedure.h` +- `include/fesa/analysis/nonlinear_static_control.h` +- `src/fesa/analysis/nonlinear_static_procedure.cpp` +- `src/fesa/analysis/nonlinear_static_control.cpp` +- `include/fesa/results/nonlinear_results_writer.h` +- `include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h` +- `src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp` +- `tests/integration/analysis/nonlinear_static_procedure_test.cpp` +- `tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp` +- `tests/unit/analysis/nonlinear_static_control_test.cpp` +- `tests/unit/analysis/newton_iteration_log_test.cpp` - `tests/reference/reference_tolerance_policy.h` - `tests/reference/reference_tolerance_policy.cpp` -- `tests/reference/reference_comparison.h` -- `tests/reference/reference_comparison.cpp` -- `tests/reference/mitc4_reference_comparison.h` -- `tests/reference/mitc4_reference_comparison.cpp` -- Step 9 files: `include/fesa/results/nonlinear_results_writer.h`, `include/fesa/io/hdf5/nonlinear_hdf5_results_writer.h` -- Step 10 files: `include/fesa/analysis/prepared_analysis.h`, `src/fesa/app/fesa_application.cpp` +- `tests/reference/nonlinear_static_reference_comparison.h` +- `tests/reference/nonlinear_static_reference_comparison.cpp` +- `tests/reference/nonlinear_static_reference_cases_test.cpp` +- `tests/CMakeLists.txt` +- `.harness/config.json` +- `CMakePresets.json` -## 이전 Step 전제 +## 이전 Step과 보존 전제 -Step 10 runs copied input files through FESA and writes authoritative HDF5 outputs after log close. +- Steps 0–10은 completed다. 그 status, summary, timestamp, commit 또는 구현을 replay, amend, + reset하거나 다시 작성하지 않는다. +- 현재 worktree의 `NSNR-CTRL-018..021`, `NSNR-LOG-012`, `NSNR-PROC-019`, + `NSNR-HDF5-014`, residual-selector GREEN과 `NSNR-REF-001..023` comparator/CMake 작업은 + 이전 blocked Step 11에서 생성된 보존 대상이다. 삭제·재생성·reset하지 말고 현재 내용에서 + 계속한다. +- 현재 comparator의 shared `<=1e-10` global force/moment gate는 이전 blocker를 재현하는 + 보존된 implementation state다. 새 RED가 approved between-threshold metric을 거부하는 것을 + 증명한 뒤 comparator 내부 gate만 `<=1e-8`로 변경한다. +- Selector RED는 이미 과거 실행 evidence에 속한다. 이 재실행에서 selector RED를 fabricate하거나 + 다시 실패시키지 않는다. 기존 테스트가 계속 green인지 focused VERIFY에서 확인한다. +- Step 12는 pending이며 이 Step에서 시작하지 않는다. ## 소유 파일 -- Create: `tests/reference/nonlinear_static_reference_comparison.h` -- Create: `tests/reference/nonlinear_static_reference_comparison.cpp` -- Create: `tests/reference/nonlinear_static_reference_cases_test.cpp` -- Modify: `tests/CMakeLists.txt` +RED test를 먼저 추가한 뒤 필요한 production file만 최소 수정한다. -## 인터페이스 +- Modify test first: `tests/integration/analysis/nonlinear_static_procedure_test.cpp` +- Modify test first: `tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp` +- Preserve and extend test-private comparator: `tests/reference/nonlinear_static_reference_comparison.h` +- Preserve and extend test-private comparator: `tests/reference/nonlinear_static_reference_comparison.cpp` +- Preserve and extend tests: `tests/reference/nonlinear_static_reference_cases_test.cpp` +- Preserve existing registration; edit only if the current sources are not registered: + `tests/CMakeLists.txt` +- Minimal GREEN: `src/fesa/analysis/nonlinear_static_procedure.cpp` +- Minimal GREEN: `src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp` +- Preserve existing partial GREEN/tests without redesign: + `src/fesa/analysis/nonlinear_static_control.cpp`, + `tests/unit/analysis/nonlinear_static_control_test.cpp`, + `tests/unit/analysis/newton_iteration_log_test.cpp` + +No public header, new CMake target, new HDF5 dataset, schema-version change or reference artifact is +owned by this Step. + +## Authoritative HDF5 입력과 test-private report 경계 + +Comparator는 아래 existing schema-v1 paths만 읽는다. + +```text +/model/nodes [node_count] +/model/nodal_constraint_mask [node_count,6] +/steps/Step-1/accepted_frames unique factor-one row +/steps/Step-1/frames//nodal/displacement [node_count,6] +/steps/Step-1/frames//nodal/generalized_internal_force [node_count,6] +/steps/Step-1/frames//nodal/generalized_external_force [node_count,6] +/steps/Step-1/frames//nodal/generalized_residual [node_count,6] +/steps/Step-1/frames//nodal/reaction [node_count,6] +/steps/Step-1/frames//global/equilibrium [6] +``` + +`/global/equilibrium` component order is +`FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3` and its required +`location` is `global-balance-error`. + +Preserve the current test-private types and make only the extensions needed by the approved +dispositions and distinct internal evidence. Add the required standard `` and `` +includes to the test-private header. Candidate signature-level shape: ```cpp namespace fesa::test { -struct NonlinearReferenceCase { - std::string case_id; - std::filesystem::path original_input_path; - std::filesystem::path displacement_csv_path; - std::filesystem::path reaction_csv_path; - std::filesystem::path stress_inventory_path; - std::filesystem::path execution_directory; -}; - -struct ArtifactSnapshot { - std::filesystem::path path; - std::string sha256; - std::uintmax_t byte_size; - std::filesystem::file_time_type last_write_time; -}; - enum class NonlinearReferenceDisposition { kBlocking, kWarningOnly, - kExcluded + kReviewOnly, + kExcluded, }; -struct NonlinearReferenceRowKey { - std::string case_id; - std::string accepted_state; - std::string instance_name; - std::int64_t source_node_label; - std::string component; -}; - -struct NonlinearReferenceFamilyReport { +struct NonlinearReferencePrecheckFinding { std::string family_identity; - std::vector components; NonlinearReferenceDisposition disposition; - std::size_t row_count; - ReferenceToleranceFamilyDecision tolerance; + std::string diagnostic_code; + std::vector affected_keys; }; -struct GeneratedRunArtifacts { - std::filesystem::path copied_input_path; - std::filesystem::path generated_results_hdf5; - std::filesystem::path generated_log_path; +struct NonlinearInternalEquilibriumReport { + std::string family_identity; + std::size_t row_count; + double numerator; + double scale; + std::optional normalized_metric; + bool passed; + std::string diagnostic_code; +}; + +struct ConstrainedReactionResultantReport { + std::array force; + std::array moment; }; struct NonlinearReferenceComparisonReport { @@ -85,103 +149,257 @@ struct NonlinearReferenceComparisonReport { std::vector pre_run_artifacts; std::vector post_run_artifacts; std::vector families; + std::vector precheck_findings; + std::vector internal_equilibrium; + ConstrainedReactionResultantReport constrained_reaction_resultant; + bool external_blocking_passed; + bool internal_blocking_passed; bool blocking_passed; }; -enum class NonlinearReferenceClassification { - kPassed, - kFailed, - kWarningOnlyDifferences -}; - -Result> ArtifactCheck( - const NonlinearReferenceCase& reference_case); -Result CopyInputToExecutionDirectory( - const NonlinearReferenceCase& reference_case); -Result RunFesaApplicationOnCopiedInput( - const NonlinearReferenceCase& reference_case, - const std::filesystem::path& copied_input_path); -Result CompareHdf5ToReferenceCsv( - const NonlinearReferenceCase& reference_case, - const std::filesystem::path& hdf5_results_path); -NonlinearReferenceClassification ClassifyReferenceComparison( - const NonlinearReferenceComparisonReport& report); -NonlinearReferenceComparisonReport BuildReferenceComparisonReport( - const NonlinearReferenceCase& reference_case, - const std::filesystem::path& hdf5_results_path); - } // namespace fesa::test ``` +These are test-support interfaces only. Match the existing aggregate/data style and avoid a public +solver API. For an exact-zero internal scale, leave `normalized_metric` empty and use +`diagnostic_code` plus the exact-zero numerator/pass rule instead of writing NaN or Inf. + +## Required physical algorithm + +For each node in stable Domain order at the accepted state: + +1. Read `X` from Domain/model identity and `u, phi` from the accepted state. Set `x=X+u`. +2. Read generalized applied force/covector from `generalized_external_force`. +3. Build constrained generalized reaction by applying the exact component mask to + `generalized_residual` before any rotational conversion. +4. Convert applied and constrained-reaction rotational covectors independently with + `InverseTransposeLeftJacobianSO3(phi)`. Do not convert their sum as a shortcut and do not mix + free generalized residual into reaction. +5. Accumulate, about global origin `[0,0,0]`: + +```text +F_applied += applied spatial force +M_applied += x cross F_applied_node + applied spatial physical moment +F_reaction += constrained reaction spatial force +M_reaction += x cross F_reaction_node + reaction spatial physical moment +global balance error = [F_applied + F_reaction, + M_applied + M_reaction] +``` + +Store only the six-component balance error in the existing accepted-frame +`global_equilibrium` and existing `/global/equilibrium` dataset. Reconstruct the constrained +reaction resultant and accepted free residual separately in the comparator; do not add summary +datasets or a public header. + +For internal blocking gates: + +- Force scale is `max(sum(||F_applied_node||2), sum(||F_reaction_node||2))`. +- Moment scale is + `max(sum(||x cross F_applied_node + M_applied_node||2), + sum(||x cross F_reaction_node + M_reaction_node||2))`. +- Force and moment use separate `||balance_error||2/scale <= 1e-8` gates. If scale is exact zero, + only exact-zero balance passes. No floor, `max(1,scale)` or clamp is allowed. +- Accepted free translation-force and rotation-moment rows use the exact free mask and reproduce + NSNR-069: nonzero matching external scale uses + `||residual||inf/max(||internal||inf,||external||inf) <= 1e-2`; exact-zero external scale uses + typed absolute `<=1e-3`. Finite checks occur first. +- `docs/TOLERANCE.md` is not used for these internal gates. + ## RED -Add tests first. +기존 dirty `NSNR-PROC-019`, `NSNR-HDF5-014`, `NSNR-REF-020..023`은 재작성하지 않는다. +먼저 existing `NSNR-REF-022`를 실행해 old shared gate failure를 다시 관찰·기록한 뒤, +`NSNR-REF-024..025`를 comparator threshold 변경 전에 test-first로 추가한다. Procedure/HDF5 +behavior는 threshold rework를 위해 추가 변경하지 않는다. -- `NSNR-REF-001`: artifact check verifies exact pre-run SHA-256 for every declared input/CSV path. -- `NSNR-REF-002`: original `reference/shellNL/shellNL.inp` bytes are copied unchanged into a unique build-local temp case directory and only the copied `.inp` is passed to `FesaApplication`. -- `NSNR-REF-003`: original `reference/shell/shell.inp` bytes are copied unchanged into a unique build-local temp case directory and only the copied `.inp` is passed to `FesaApplication`. -- `NSNR-REF-004`: copied shellNL run produces copied-sibling `shellNL_results.h5` and `shellNL_log.txt`; copied shell run produces copied-sibling `shell_results.h5` and `shell_log.txt`. -- `NSNR-REF-005`: HDF5 source path identity matches the copied user-addressed input path, and source content identity matches the approved original input hash. -- `NSNR-REF-006`: exact post-run SHA-256, byte size, timestamp, and inventory for all original declared reference artifacts match pre-run snapshots. -- `NSNR-REF-007`: shellNL displacement/reaction rows require exact `Frame` value `Increment 10: Step Time = 1.000`. -- `NSNR-REF-008`: required CSV wide rows expand to unique `(case_id, accepted_state, instance, source_node_label, component)` keys. -- `NSNR-REF-009`: HDF5 rows and CSV rows reject missing, extra, duplicate, and nonfinite required rows before tolerance. -- `NSNR-REF-010`: `linear.translation` has 147 blocking rows. -- `NSNR-REF-011`: `linear.rotation` has 147 warning-only rows. -- `NSNR-REF-012`: `nonlinear.translation` has 147 blocking rows. -- `NSNR-REF-013`: `nonlinear.rotation` has 147 warning-only rows. -- `NSNR-REF-014`: shellNL constrained nodes select only labels `1,3,4,5,6,7,8,9,14,15,16,17,22,23,24,25,26,27,28,29,30,31,32,33`. -- `NSNR-REF-015`: `RF1/RF2` has 48 blocking rows, `RF3` has 24 blocking rows, and `RM1/RM2` has 48 blocking rows. -- `NSNR-REF-016`: `RM3` and stress quantities create no numeric comparison family. -- `NSNR-REF-017`: docs/TOLERANCE.md family policy is applied exactly and warning-only failures do not change blocking verdict. -- `NSNR-REF-018`: stress CSV files are hash-audited as nonblocking inventory artifacts and their schema/order is not a blocking verdict. +- Approved draft label `NSNR-PROC-011` collides with completed Step 10's historical + `NSNR-PROC-011` increment-loop identity. Preserve that history and use collision-resolved test ID + `NSNR-PROC-019` with exact GTest symbol + `NonlinearStaticProcedure.NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance`. + Use a supported nonlinear shell input with nonzero prescribed translation and rotation plus a + resolved fixed-global load. Independently reconstruct the six balance components from accepted + `X,u,phi`, external force and masked residual. Expected RED: the current helper uses initial + coordinates, raw full-residual summation and raw rotational residual, so the current-arm/spatial + expected vector or distinct constrained/free projection assertion fails. +- `NSNR-HDF5-014` + `NonlinearHdf5ResultsWriter.WritesSchemaV1GlobalBalanceErrorLocation` checks existing path/shape, + exact component names, schema version 1 and `location=global-balance-error`. Expected RED: current + writer emits `location=global-origin`. +- `NSNR-REF-020` + `NonlinearStaticReference.AuditsFinePrimaryAndCoarseCompanionArtifacts` checks all exact fine, + coarse and linear input/CSV hashes, fine/coarse independent execution directories and case roles. + Expected RED: current case inventory supports only coarse nonlinear and linear cases. +- `NSNR-REF-021` + `NonlinearStaticReference.ReviewOnlyLocalReactionsCannotChangeBlockingVerdict` injects or observes + failing local RF/RM row/RMS decisions while U and internal blocking families pass. It requires + deterministic local error/precheck reporting and an unchanged blocking pass. Expected RED: + current local RF/RM dispositions are `kBlocking`. +- `NSNR-REF-022` + `NonlinearStaticReference.BlocksOnGlobalBalanceAndAcceptedFreeResidual` fails each coarse/fine + global-force, global-moment, free-force-residual and free-moment-residual family one at a time, + then passes all. It also asserts the constrained reaction resultant is a distinct review summary. + Expected RED for this re-execution: the preserved comparator applies the old shared `<=1e-10` + gate, so the approved coarse metric `1.413750912531167e-10` and fine metric + `2.7454660159924086e-10` are rejected even though both are below `1e-8`. +- `NSNR-REF-023` + `NonlinearStaticReference.RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings` + covers blocking, warning-only and review-only families. Blocking precheck failure changes the + blocking verdict; warning/review failures remain ordered findings. Expected RED: the current + comparator cannot retain review-only precheck findings independently of the blocking verdict. +- `NSNR-REF-024` + `NonlinearStaticReference.GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate` uses a + test-private balance evaluator for distinct force and moment family identities. It requires an + approved between-threshold metric such as `5e-9` and exact `1e-8` to pass, and + `nextafter(1e-8,+infinity)` to fail for both identities. Expected decisive RED: the preserved + shared `<=1e-10` comparison rejects `5e-9` and `1e-8`. +- `NSNR-REF-025` + `NonlinearStaticReference.GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance` exercises + force and moment identities independently and requires exact-zero scale plus exact-zero numerator + to pass while any nonzero numerator fails without NaN/Inf or a fabricated normalized metric. This + is an unchanged-contract regression and may already pass in the RED batch; it must be present + before GREEN. -Run: +Run and record the observed failures: ```powershell cmake --build --preset windows-msvc-ninja-debug -ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter|NonlinearStaticReference)\." --output-on-failure ``` -Expected: new tests fail. Unexpected pass stops. +The new tests must fail for the stated reasons. A compile failure caused only by the test-first +enum/report extension is valid RED when the diagnostic identifies the missing planned production/ +test-support behavior. An unexpected pass or unrelated failure stops the Step for classification. -## GREEN +## Minimal GREEN -Implement `ARTIFACT CHECK -> COPY -> RUN -> COMPARE -> CLASSIFY -> REPORT` while preserving the required public gate wording `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` in reports. The runner never passes the original reference input path to `FesaApplication`; it copies input bytes unchanged into a unique build-local temp case directory, runs the copied `.inp`, consumes copied-sibling `_results.h5` and `_log.txt`, and compares HDF5 data to original read-only CSVs. Use exact declared paths and hashes: +1. Replace the private raw-residual/initial-coordinate global helper in + `src/fesa/analysis/nonlinear_static_procedure.cpp` with the Required physical algorithm above. + Keep stable node order, mask-before-conversion, independent applied/reaction conversion and + finite failure behavior. Do not change the public procedure header or accepted-state layout. +2. In `src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp`, preserve the path, shape, component + names and schema version; change the exact `/global/equilibrium` location attribute to + `global-balance-error` and keep writer validation finite/fail-closed. +3. Extend the existing comparator without deleting its partial work: + - add fine primary inventory and keep coarse companion/linear control independent; + - add `kReviewOnly` and keep local RF/RM key/schema/inventory/finite/row/RMS evidence; + - reconstruct the constrained reaction resultant and accepted free residual from the exact HDF5 + paths/mask; never use `/nodal/reaction` or `/global/equilibrium` as a substitute for all three; + - apply internal gates exactly as specified above, using one test-private/internal shared + `1.0e-8` constant for both distinct force and moment families; + - keep U blocking, UR warning-only, local RF/RM review-only, RM3/stress excluded; + - reject blocking missing/extra/duplicate/nonfinite rows before tolerance and retain ordered + nonblocking findings; + - set overall blocking verdict from blocking external U families AND all internal global/free + families only. +4. Preserve existing `NSNR-CTRL-018..021`, `NSNR-LOG-012`, Full Newton, fixed factors, iteration + limit, 39-field log schema and the already corrected residual selector unchanged. +5. Do not change production solver/configuration behavior for the balance threshold. No `fesa.env`, + environment variable, CLI option, public API or HDF5 schema change is part of this GREEN. -| path | rows | SHA-256 | -| --- | ---: | --- | -| `reference/shellNL/shellNL.inp` | input | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | -| `reference/shellNL/shellNL displacements.csv` | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | -| `reference/shellNL/shellNL reactions.csv` | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | -| `reference/shellNL/shellNL stresses.csv` | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | -| `reference/shell/shell.inp` | input | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | -| `reference/shell/shell displacements.csv` | 49 | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | -| `reference/shell/shell reactions.csv` | 49 | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | -| `reference/shell/shell stresses.csv` | 288 | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | +## Exact read-only artifact inventory -Use docs/TOLERANCE.md exactly: family scale `S=max(abs(reference))`, near-zero band `0.01*S`, non-near relative error `<=0.05`, family `RMS(error)/S<=0.01`, zero-scale exact zero only. Original reference directory inventory, bytes, timestamps, and hashes must be unchanged after the run. +| case | exact path | rows | SHA-256 | +| --- | --- | ---: | --- | +| fine primary | `reference/shellNL-meshfine/shellNL-meshfine.inp` | input | `40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220` | +| fine primary | `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | 729 | `740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F` | +| fine primary | `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | 729 | `AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363` | +| fine optional | `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | 5,408 | `6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782` | +| coarse companion | `reference/shellNL/shellNL.inp` | input | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| coarse companion | `reference/shellNL/shellNL displacements.csv` | 49 | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| coarse companion | `reference/shellNL/shellNL reactions.csv` | 49 | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| coarse optional | `reference/shellNL/shellNL stresses.csv` | 288 | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| linear control | `reference/shell/shell.inp` | input | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | +| linear control | `reference/shell/shell displacements.csv` | 49 | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | +| linear optional | `reference/shell/shell reactions.csv` | 49 | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | +| linear optional | `reference/shell/shell stresses.csv` | 288 | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | -## VERIFY +For every case, snapshot original inventory, bytes, SHA-256, size and timestamp; copy only the `.inp` +bytes to a unique build-local directory; run only the copy; consume copied-sibling `_results.h5` and +`_log.txt`; compare against original read-only CSVs; then prove the original inventory is unchanged. + +## External comparison and classification + +- Fine and coarse `U1/U2/U3` are separate blocking families. +- Linear `U1/U2/U3` is a blocking regression family. +- All `UR1/UR2/UR3` families are warning-only. +- Fine/coarse local `RF1/RF2`, `RF3`, spatial `RM1/RM2` are separate review-only families with exact + mask-derived keys and complete common-policy error reports. +- `RM3` and all stress values have no numerical family. Stress files remain hash-audited optional + inventory; the known fine malformed optional stress key is not repaired. +- External families use exactly `docs/TOLERANCE.md`: reference-only `S=max(abs(reference))`, + `B=0.01*S`, near-zero row `abs(error)<=B`, other-row relative `<=0.05`, family + `RMS(error)/S<=0.01`, exact-zero family exact-zero FESA only. No absolute floor, averaging, + collapse, row-order identity, clamp or tolerance relaxation. + +The final gate order is literally: + +```text +ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT +``` + +## Focused and full VERIFY + +After minimal GREEN, run in this order and retain command, exit code, duration and output tail for +Step 12: ```powershell cmake --preset windows-msvc-ninja-debug cmake --build --preset windows-msvc-ninja-debug -ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference|ReferenceTolerance|Mitc4Reference" --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearConvergence|NewtonIterationLog)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure ctest --preset windows-msvc-ninja-debug --show-only=json-v1 ctest --preset windows-msvc-ninja-debug --output-on-failure ``` -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. +The Harness launch environment must be VsDevCmd x64 and inherit `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, +`TBB_DIR`, and `HDF5_DIR`. Do not substitute the solution-only MSBuild path. + +## Acceptance Criteria + +- New RED tests fail first for their declared current behavior, then pass after minimal GREEN. +- `/global/equilibrium` remains schema v1 `[6]` with the same component names and stores only the + current-arm/spatial-moment applied-plus-reaction balance error with + `location=global-balance-error`. +- Fine/coarse global force and moment normalized metrics are each `<=1e-8`; exact-zero scale follows + the exact-zero rule. +- Fine/coarse accepted free force and moment residual gates pass NSNR-069 independently. +- Fine/coarse U blocking and linear U regression pass `docs/TOLERANCE.md`. +- UR differences remain warning-only. Local RF/RM findings remain review-only and cannot fail the + blocking verdict. RM3/stress remain excluded. +- Missing/extra/duplicate/nonfinite blocking rows fail before tolerance; warning/review findings are + deterministic and nonblocking. +- Original reference artifact content, inventory, size, timestamp and hash are unchanged. +- Focused tests, test discovery and full CTest pass without new compiler warnings. ## 상태 기록 -Update only Step 11 status and one-line payload. Executor owns timestamps, commits, retry, and advancement. +On success, update only Step 11 to `completed` and add one concise `summary`. On an implementation, +build, test or reference-comparison failure, classify it and update only the Executor-selected Step's +allowed payload. Executor owns retry, timestamps, commits, advancement and top-level status. Do not +start Step 12. ## 금지사항 -- Do not rewrite, rename, normalize, or repair `.inp` or CSV artifacts. 이유: reference artifacts are immutable external evidence. -- Do not run `FesaApplication` on original `reference/shellNL/shellNL.inp` or `reference/shell/shell.inp`. 이유: CLI derives sibling outputs and would mutate the reference directory. -- Do not compare `RM3`. 이유: approved contract excludes stabilization-dependent drilling reaction. -- Do not numerically compare stress CSV data. 이유: stress artifacts are nonblocking inventory only in this feature. -- Do not average, omit, synthesize, or row-order match reference rows. 이유: source/component identity prechecks are mandatory. +- Do not edit any reference artifact. 이유: exact stored files are immutable external evidence. +- Do not run FESA on an original reference `.inp`. 이유: derived sibling outputs would mutate the + reference directory. +- Do not add HDF5 datasets, change schema version/path/shape/components or add public headers. 이유: + Stage 5 requires reconstruction from existing schema-v1 datasets. +- Do not use initial coordinates or raw rotational covectors for global physical moment. 이유: + `AUDIT-001` requires accepted current arms and spatial moment conversion. +- Do not apply the constraint mask after spatial conversion. 이유: partial rotational constraints + would mix free residual into reaction. +- Do not use `/global/equilibrium`, local `/nodal/reaction` or a raw full-residual sum as a substitute + for all three equilibrium quantities. 이유: their physical identities differ. +- Do not make local reaction rows blocking or omit their review evidence. 이유: USER-DECISION-004 + fixes review-only with deterministic findings. +- Do not compare `RM3` or stress values, average/collapse rows, match by row order, clamp zero values, + add `max(1,S)`, relax tolerance or repair CSVs. 이유: approved identity/tolerance contracts forbid it. +- Do not add `fesa.env`, runtime configuration, product solver acceptance, CLI or public API behavior + for the `1e-8` gate. 이유: this fixed threshold belongs only to comparator-owned internal verification. +- Do not replay or fabricate selector RED, delete partial Step 11 work, reset history, commit, push, + run a reference solver, start Step 12, or claim Physics/Release readiness. +- Stop and return a classified blocker if the required behavior needs an upstream contract, public + API, HDF5 schema, tolerance or reference-artifact change. diff --git a/phases/nonlinear-static-newton-raphson/step12.md b/phases/nonlinear-static-newton-raphson/step12.md index f1a00b1..1fc8873 100644 --- a/phases/nonlinear-static-newton-raphson/step12.md +++ b/phases/nonlinear-static-newton-raphson/step12.md @@ -1,5 +1,11 @@ # Step 12: execution-closure-and-evidence-docs +## 목적 + +Step 11이 실제로 통과한 뒤에만 fresh MSVC/CTest와 reference gate evidence를 수집하고 Stage 6 +canonical reports를 actual output으로 작성한다. 직접 superseded된 PRD/ARCHITECTURE/ADR 문장만 +최소 동기화한다. 이 Step은 solver 동작을 새로 구현하지 않는다. + ## 읽어야 할 파일 - `AGENTS.md` @@ -8,85 +14,219 @@ - `docs/ADR.md` - `docs/CODINGSTYLE.md` - `docs/TOLERANCE.md` -- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `docs/SOLVER_AGENT_DESIGN.md` +- `docs/HARNESS.md` +- `docs/HARNESS_WORKFLOW.md` - `docs/nonlinear-static-newton-raphson/requirements.md` -- `docs/nonlinear-static-newton-raphson/numerical-review.md` -- `docs/nonlinear-static-newton-raphson/reference-model.md` -- `docs/nonlinear-static-newton-raphson/io.md` +- `docs/nonlinear-static-newton-raphson/formulation.md` §§11.4, 13.1, 13.4, 14.1 +- `docs/nonlinear-static-newton-raphson/numerical-review.md` §§3.2, 6.2, 6.3 +- `docs/nonlinear-static-newton-raphson/reference-model.md` §§3–6 +- `docs/nonlinear-static-newton-raphson/io.md` §§7.5.1, 8.1–8.7 +- `docs/nonlinear-static-newton-raphson/implementation-plan.md` +- `docs/nonlinear-static-newton-raphson/corrections.md` §13 - `phases/nonlinear-static-newton-raphson/index.json` -- Step 0-11 modified source/test/CMake files +- `phases/nonlinear-static-newton-raphson/step11.md` +- All source/test/CMake files actually changed by Steps 0–11 +- `.harness/config.json` +- `CMakePresets.json` -## 이전 Step 전제 +## 시작 전 hard gate -Steps 0-11 have implemented and verified CLI lifecycle, Domain contract, nonlinear MITC4, controls, tangent solver, log, state, HDF5 schema v1, full prepared procedure, and reference comparison tests. +- Steps 0–10의 completed history를 그대로 유지한다. +- Step 11 must be `completed` with an actual summary and passing RED/GREEN/VERIFY evidence. +- If Step 11 is not completed, stop without creating/updating evidence docs or global docs. +- Do not infer Step 11 success from a prior blocked run, diagnostic spike or translation-only report. ## 소유 파일 -- Modify: `docs/PRD.md` -- Modify: `docs/ARCHITECTURE.md` -- Modify: `docs/ADR.md` -- Create: `docs/nonlinear-static-newton-raphson/implementation-report.md` -- Create: `docs/nonlinear-static-newton-raphson/build-test.md` -- Create: `docs/nonlinear-static-newton-raphson/reference-comparison.md` +- Modify only directly superseded statements: `docs/PRD.md` +- Modify only directly superseded statements: `docs/ARCHITECTURE.md` +- Modify only directly superseded decisions or add the minimum accepted decision record: + `docs/ADR.md` +- Create from actual outputs: `docs/nonlinear-static-newton-raphson/implementation-report.md` +- Create from actual outputs: `docs/nonlinear-static-newton-raphson/build-test.md` +- Create from actual outputs: `docs/nonlinear-static-newton-raphson/reference-comparison.md` -No C++ production file is owned by this Step. +No C++ production, public header, test, CMake, Harness, reference or tolerance file is owned by this +Step. -## 인터페이스 +## RED: evidence freshness audit -Evidence documents must record actual observed outputs: +Perform this audit before writing reports. The expected initial result is failure because the three +canonical reports are missing or do not contain this Step's fresh evidence. -```text -implementation-report.md: RED/GREEN/VERIFY command log, Step summaries, diagnostics, implementation-owned decisions. -build-test.md: fresh configure/build/discovery/full CTest commands, exit codes, duration, stdout/stderr tail, warning audit, failure classification. -reference-comparison.md: exact artifact inventory, HDF5 paths, projection, row prechecks, tolerance, per-family decisions, classification, no-change assertion. -``` +- `NSNR-EVID-001`: `implementation-report.md` is missing or stale unless it records every Step 11 new + RED test, the observed reason, minimal GREEN diff, focused/full VERIFY and preserved + `NSNR-CTRL-018..021`/`NSNR-LOG-012` evidence. +- `NSNR-EVID-002`: `build-test.md` is missing or stale unless it records fresh configure, build, + discovery, focused/full CTest commands with exit code, duration, output tail, MSVC x64 Debug + environment, warning audit and failure classification. +- `NSNR-EVID-003`: `reference-comparison.md` is missing or stale unless it records the literal + `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT` run with exact paths/hashes, generated HDF5/log + paths, projection, row decisions, metrics, classification and no-change evidence. +- `NSNR-EVID-004`: evidence or global docs are stale if they still classify local RF/RM as blocking, + omit review-only findings, identify coarse shellNL as the only nonlinear case, or describe + `/global/equilibrium` as raw full-residual/initial-arm evidence. +- `NSNR-EVID-005`: reference evidence is stale if it lacks fine-primary/coarse-companion/linear-control + inventory, separate U/UR/local reaction families, four coarse and four fine internal blocking + equilibrium families, the inclusive `1e-8` force/moment boundary and exact-zero-scale regressions, + and the distinct constrained-reaction summary. +- `NSNR-EVID-006`: implementation evidence is stale unless it closes `AUDIT-001` with actual tests for + nonzero prescribed translation/rotation, `x=X+u`, mask-before-conversion, independent + `InverseTransposeLeftJacobianSO3(phi)` conversion, and `location=global-balance-error`. +- `NSNR-EVID-007`: command evidence is stale if copied from an earlier run, omits artifact pre/post + immutability, lacks command output/exit/duration, changes the required stage order, or claims a + verdict before CLASSIFY. -## RED +Record this expected failing freshness audit in `implementation-report.md` only after fresh evidence +has been collected. If the audit unexpectedly passes before this Step's commands, stop and report the +evidence provenance conflict. -Before writing evidence docs, run an evidence freshness audit by checking that the three evidence docs do not already contain current command outputs from this final Step. +## GREEN: fresh evidence execution -- `NSNR-EVID-001`: missing or stale `implementation-report.md` is a failing precondition. -- `NSNR-EVID-002`: missing or stale `build-test.md` is a failing precondition. -- `NSNR-EVID-003`: missing or stale `reference-comparison.md` is a failing precondition. -- `NSNR-EVID-004`: PRD/ARCHITECTURE/ADR still contain directly superseded global CLI/procedure/output statements. -- `NSNR-EVID-005`: reference artifact pre-run SHA inventory must match Step 11 values. +Use the ignored `.harness/config.json` and tracked `windows-msvc-ninja-debug` preset. The parent +environment must be VsDevCmd x64 and contain `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and +`HDF5_DIR`. -Expected: evidence freshness audit fails before this Step writes docs. If it unexpectedly passes with current evidence already present, stop and report to Coordinator. - -## GREEN - -- Run fresh MSVC x64 Debug configure/build/discovery/full CTest. -- Run focused nonlinear reference comparison repeat. -- Run deterministic repeat/reference checks required by Step 11. -- Run warning audit from build output. -- Run `git diff --check` and `git status --short`. -- Run reference artifact post-run SHA audit and compare to pre-run values. -- Update only directly superseded PRD/ARCHITECTURE/ADR statements for CLI removal, prepared linear/nonlinear procedure boundary, output naming, log lifecycle, and nonlinear HDF5 schema. -- Create the three Stage 6 evidence docs from actual command outputs only. - -## VERIFY - -Use the ignored `.harness/config.json` preset contract. The Harness process must inherit VsDevCmd x64 and `FESA_GTEST_SOURCE_DIR`, `MKL_DIR`, `TBB_DIR`, and `HDF5_DIR` from its parent launch environment. Run: +### 1. Fresh build and regression evidence ```powershell cmake --preset windows-msvc-ninja-debug cmake --build --preset windows-msvc-ninja-debug ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearConvergence|NewtonIterationLog)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter)\." --output-on-failure ctest --preset windows-msvc-ninja-debug --output-on-failure -ctest --preset windows-msvc-ninja-debug -R "NonlinearStaticReference" --output-on-failure +``` + +Record command, working directory, exit code, duration, stdout/stderr tail and failed-test inventory. +Audit new compiler warnings. Stop at the first decisive failure and classify it as +`configure | compile | link | test | reference-comparison | harness | environment | upstream-contract`. + +### 2. Final reference gate in literal order + +#### ARTIFACT CHECK + +- Verify every exact fine/coarse/linear input/CSV path and SHA-256 from `reference-model.md` and + `step11.md`. +- Verify readable headers, exact nonlinear factor-one Frame, source node/component inventories, + uniqueness and finite required values. +- Snapshot original inventory, size, timestamps and hashes before any copied-input run. +- Verify generated results will be written only under unique build-local copied-input directories. + +#### COMPARE + +```powershell +ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure +``` + +Compare by `(case_id, accepted_state, canonical_instance_name, source_node_label, component)`, never +by row order. Apply `docs/TOLERANCE.md` only to external U/UR/local-review families. Apply internal +`1e-8` force/moment balance and NSNR-069 free-residual gates separately. Preserve the exact +blocking/warning/review/excluded dispositions. + +#### CLASSIFY + +- Blocking pass requires fine/coarse U families, linear U regression and all eight fine/coarse + internal equilibrium families to pass. +- UR failure is warning-only. +- Local RF/RM precheck/row/RMS failure is a deterministic review finding and cannot change blocking + pass/fail. +- RM3/stress values are excluded. +- Any blocking missing/extra/duplicate/nonfinite row fails before tolerance. +- Classify actual failures without relaxing tolerance, changing artifacts or claiming external solver + internal equivalence. + +#### REPORT + +Only after CLASSIFY, write the three canonical reports from actual outputs. + +## Report contracts + +### `implementation-report.md` + +Record metadata, approved upstream hashes, Steps 0–10 preserved summaries, Step 11 RED failures, +minimal GREEN file/symbol changes, focused/full VERIFY commands and results, `AUDIT-001` closure, +requirement/test traceability, no-change assertion, classification and open issues. Do not invent +unobserved output. + +### `build-test.md` + +Use `owner_agent: implementation-agent`. Record execution environment, exact commands, working +directories, exit codes, durations, output tails, discovered test inventory, focused/full results, +new-warning audit, failure classification, failed tests, handoff recommendation, no-change assertion +and open issues. + +### `reference-comparison.md` + +Record exact input/CSV SHA inventory, copied input and generated HDF5/log paths, accepted factor-one +frame, every HDF5 projection/path/component, stable source-key matching, row prechecks, external +common tolerance, internal gates, per-family/per-row decisions, max absolute error, applicable +relative error, RMS/scale metric, constrained-reaction summary, warnings/review findings, final +classification, original artifact post-run identity, no-change assertion and open issues. + +The report must explicitly state that FESA HDF5 is authoritative, CSV is external comparison +evidence, and numerical agreement does not imply Abaqus S4 internal formulation equivalence. + +## Minimal PRD/ARCHITECTURE/ADR sync + +After actual passing evidence exists, update only statements directly superseded by the implemented +feature: + +- repository-wide derived result/log names and removal of `--output`; +- prepared parse-once linear/nonlinear procedure boundary and separate nonlinear state/solver/writer; +- nonlinear HDF5 schema v1 accepted-frame meaning; +- `/global/equilibrium` as current-arm/spatial-moment applied-plus-reaction balance error; +- distinct accepted free residual and constrained reaction resultant projections; +- fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and RM3/stress + exclusion. + +Do not rewrite unrelated V0 history, refactor architecture prose or add future scope. + +## Final validation + +```powershell git diff --check git status --short ``` -Record command, exit code, duration, stdout/stderr tail, and failure classification for every command in the evidence docs. +Confirm the original reference pre/post hashes, sizes, timestamps and inventory are equal. Confirm +that every required report statement is backed by a command or deterministic artifact observation. +Harness Python validation is not required because this Step does not change Harness Python, hooks or +agent configuration. + +## Acceptance Criteria + +- Evidence freshness audit initially fails for the declared stale/missing reason and is recorded. +- Fresh configure/build/discovery/focused/full CTest all pass with MSVC x64 Debug and no new warnings. +- Final gate executes in exact order `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. +- All blocking external and internal families pass; warnings and review findings remain + nonblocking and are fully reported. +- `AUDIT-001`, fine/coarse roles and reaction disposition have direct test/output evidence. +- Three canonical Stage 6 reports contain reproducible commands, metrics, classifications and + no-change assertions. +- PRD/ARCHITECTURE/ADR edits are limited to directly superseded statements. +- `git diff --check` passes and reference artifacts remain byte-for-byte unchanged. ## 상태 기록 -Update only Step 12 status and one-line payload. Executor owns timestamps, commits, retry, top-level phase completion, and advancement. +On success, update only Step 12 to `completed` and add one concise `summary`. Executor owns +timestamps, commits, top-level completion and advancement. A passing Step 12 returns Stage 6 evidence +to Coordinator; it does not itself dispatch Physics or Release. ## 금지사항 -- Do not claim success before the commands above actually pass. 이유: Stage 6 evidence docs must be output-backed. -- Do not broadly rewrite global docs. 이유: Step 12 only synchronizes directly superseded CLI/procedure/output statements. -- Do not change reference artifact content. 이유: SHA pre/post immutability is part of the acceptance evidence. -- Do not run `scripts/execute.py` from this Step. 이유: Executor already owns Harness execution. +- Do not create or update evidence reports before actual fresh output exists. 이유: Stage 6 reports + are execution evidence, not predictions. +- Do not change C++ code, tests, CMake, Harness configuration, tolerance or reference artifacts. + 이유: Step 12 is evidence closure only. +- Do not run `scripts/execute.py` from this Step. 이유: Executor already owns the active Step session. +- Do not reorder or collapse `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. 이유: schema and + identity failures must precede tolerance and verdict. +- Do not make local RF/RM blocking, omit their errors, or compare RM3/stress. 이유: + USER-DECISION-004 fixes the disposition. +- Do not use Abaqus CSV/tolerance for internal balance/free-residual gates or claim Abaqus internal + equivalence. 이유: external comparison and internal physics evidence are distinct. +- Do not broadly rewrite PRD/ARCHITECTURE/ADR, alter Steps 0–11 history, commit, push, run a reference + solver, or claim Physics/Release readiness. diff --git a/phases/nonlinear-static-newton-raphson/step5.md b/phases/nonlinear-static-newton-raphson/step5.md index 8bec44c..750fd42 100644 --- a/phases/nonlinear-static-newton-raphson/step5.md +++ b/phases/nonlinear-static-newton-raphson/step5.md @@ -136,6 +136,15 @@ Add tests first. - `NSNR-CTRL-016`: empty free channels evaluate with `numerator_norm=0`, `denominator_scale=0`, branch `kZeroScale`, exact zero-scale threshold/unit, and pass. - `NSNR-CTRL-017`: iteration numbering remains `1..100` with no iteration `101`. +### USER-DECISION-003 option-1 revision addendum + +Step 5의 completed status, summary, timestamps와 commits는 보존한다. 다음 correction tests와 minimal GREEN은 재실행된 Step 5가 아니라 Executor-selected Step 11 안에서 수행한다. + +- `NSNR-CTRL-018`: force와 force-length residual channel 각각에서 matching external vector가 finite exact zero이고 internal/residual이 nonzero여도 `kZeroScale`을 선택한다. Numerator exact `1.0e-3`은 pass, `std::nextafter(1.0e-3, +infinity)`는 fail이며 decision denominator는 exact `0`, threshold unit은 각각 `kForce`, `kForceLength`다. Empty free channel pass도 유지한다. +- `NSNR-CTRL-019`: matching external scale이 nonzero이면 internal-dominant와 external-dominant case 모두 denominator `max(||f_int||inf,||f_ext||inf)`를 쓴다. Ratio exact `1.0e-2`는 pass, 바로 위는 fail이다. Numerator가 typed `1.0e-3`보다 작아도 relative ratio가 실패하는 case를 포함하여 absolute/relative OR가 없음을 증명한다. +- `NSNR-CTRL-020`: residual/internal/external vector 또는 derived norm의 NaN/Inf는 branch/tolerance acceptance 전에 fail하고 combined pass를 만들지 않는다. `std::nextafter(0.0,+infinity)`인 matching external scale은 tolerance band, zero clamp, `max(1,...)` 없이 nonzero relative branch를 선택한다. +- `NSNR-CTRL-021`: force residual, moment residual, translation correction, rotation correction을 하나씩 실패시키는 truth table과 네 channel 모두 pass하는 case로 logical AND를 고정한다. NSNR-070 correction selector, denominators, thresholds와 units는 변경하지 않는다. + Run: ```powershell @@ -147,7 +156,7 @@ Expected: new tests fail. Unexpected pass stops. ## GREEN -Implement factor sequence derivation, load/BC scaling, global-once fixed-load external vector `f_ext` and external tangent `K_ext` assembly, moment admissibility, and typed convergence-channel evaluation. Residual denominator scale is derived from the provided free internal/external channel values, correction denominator scale from the provided current increment channel values, and zero-scale branches use only `kZeroScale`. Thresholds and threshold units are not caller inputs; `EvaluateNewtonConvergence` assigns the exact branch/channel constants from `requirements.md` and `io.md`. Return structured diagnostics for invalid nonlinear static data, unsupported drilling load, nonfinite Newton data, and nonconvergence readiness. +Implement factor sequence derivation, load/BC scaling, global-once fixed-load external vector `f_ext` and external tangent `K_ext` assembly, moment admissibility, and typed convergence-channel evaluation. For the USER-DECISION-003 correction, validate the residual/internal/external values and norms first, select a residual branch from the matching external scale itself, emit denominator exact `0` and typed absolute `1.0e-3` when that scale is exact zero, and otherwise emit retained `max(internal,external)` with relative `1.0e-2`. Correction denominator selection remains derived from current increment values. Thresholds and threshold units are not caller inputs; `EvaluateNewtonConvergence` assigns the exact branch/channel constants from `requirements.md` and `io.md`. Return structured diagnostics for invalid nonlinear static data, unsupported drilling load, nonfinite Newton data, and nonconvergence readiness. ## VERIFY @@ -173,3 +182,4 @@ Update only Step 5 status and one-line payload. Executor owns timestamps, commit - Do not distribute full source-node CLOAD into every incident element. 이유: this would multiply loads by incident element count and violate formulation §11.2. - Do not emit convergence branch labels outside `relative` and `zero-scale`. 이유: io.md exposes exactly those two branches. - Do not accept per-call convergence thresholds or units. 이유: NSNR-069/070 fix branch thresholds and typed units globally. +- Do not use internal scale, tolerance bands, clamps, `max(1,...)`, or absolute/relative OR to select a residual branch. 이유: revised NSNR-069 selects only from the finite matching external scale's exact-zero identity. diff --git a/phases/nonlinear-static-newton-raphson/step7.md b/phases/nonlinear-static-newton-raphson/step7.md index 3c53a61..b5257e9 100644 --- a/phases/nonlinear-static-newton-raphson/step7.md +++ b/phases/nonlinear-static-newton-raphson/step7.md @@ -91,6 +91,12 @@ Add tests first. - `NSNR-LOG-010`: write/flush/close failure returns `log-output-failure` and prevents success classification. - `NSNR-LOG-011`: non-Newton controlled failure path can leave a zero-byte log owned by app lifecycle. +### USER-DECISION-003 option-1 revision addendum + +Step 7의 completed status, summary, timestamps와 commits는 보존한다. Executor-selected Step 11에서 `tests/unit/analysis/newton_iteration_log_test.cpp`에 다음 RED assertion을 추가한다. + +- `NSNR-LOG-012`: synthetic `NewtonChannelDecision`이 아니라 `EvaluateNewtonConvergence`가 만든 residual decisions를 record에 넣는다. Exact-zero matching external channel은 denominator exact `0`, branch `zero-scale`, threshold `1.0e-3`, force 또는 force-length unit으로 직렬화하고, nonzero matching external channel은 retained denominator, branch `relative`, threshold `1.0e-2`, unit `1`로 직렬화한다. 같은 line이 기존 39 labels/order, TAB separation, LF termination을 그대로 유지해야 하므로 기존 selector에서는 RED가 된다. + Run: ```powershell @@ -102,7 +108,7 @@ Expected: new tests fail. Unexpected pass stops. ## GREEN -Implement a small log writer with explicit open/write/flush/close state, serializer-owned 39-field order, deterministic escaping, finite numeric formatting, `relative`/`zero-scale` convergence branch mapping, typed `not-evaluated(reason)` substitution, and structured `Status` failures. +Implement a small log writer with explicit open/write/flush/close state, serializer-owned 39-field order, deterministic escaping, finite numeric formatting, `relative`/`zero-scale` convergence branch mapping, typed `not-evaluated(reason)` substitution, and structured `Status` failures. USER-DECISION-003는 evaluator-produced decision semantics만 바꾸므로 log writer production 또는 `nsnr-log-v1` schema 변경은 예상하지 않는다. ## VERIFY @@ -126,3 +132,4 @@ Update only Step 7 status and one-line payload. Executor owns timestamps, commit - Do not accept arbitrary caller-provided field vectors. 이유: io.md requires an exact fixed schema and order. - Do not write HDF5 trial history. 이유: log is diagnostic and HDF5 stores accepted frames only. - Do not continue after log write/flush/close failure. 이유: log failure blocks result commit. +- Do not add, remove, rename, reorder, or re-delimit any `nsnr-log-v1` field. 이유: option 1 changes only residual decision values, not the approved 39-field external log contract. diff --git a/reference/shellNL-meshfine/shellNL-meshfine displacements.csv b/reference/shellNL-meshfine/shellNL-meshfine displacements.csv new file mode 100644 index 0000000..319d829 --- /dev/null +++ b/reference/shellNL-meshfine/shellNL-meshfine displacements.csv @@ -0,0 +1,730 @@ +Frame,Part Instance Name, Node Label, U-U1, U-U2, U-U3, UR-UR1, UR-UR2, UR-UR3 +Increment 10: Step Time = 1.000,PART-1-1,1,6.779365380E-38,2.670707390E-37,-1.392530650E-33,-1.296783180E-32,3.327706220E-33,-2.576256400E-39 +Increment 10: Step Time = 1.000,PART-1-1,2,-5.138089940E-23,-1.079848970E-22,-2.579570540E-05,2.531837590E-22,-2.139116880E-22,-2.736026800E-16 +Increment 10: Step Time = 1.000,PART-1-1,3,2.664621940E-37,6.758098720E-38,-1.392530650E-33,-3.327706220E-33,1.296783180E-32,2.586590970E-39 +Increment 10: Step Time = 1.000,PART-1-1,4,1.720532470E-39,1.723835330E-39,-9.809089250E-45,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,5,-6.779365380E-38,-2.670707390E-37,-1.392530650E-33,1.296783180E-32,-3.327706220E-33,-2.576256400E-39 +Increment 10: Step Time = 1.000,PART-1-1,6,-2.664621940E-37,-6.758098720E-38,-1.392530650E-33,3.327706220E-33,-1.296783180E-32,2.586590970E-39 +Increment 10: Step Time = 1.000,PART-1-1,7,-1.720532470E-39,-1.723835330E-39,-9.809089250E-45,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,8,1.713293360E-39,-1.714043060E-39,-9.809089250E-45,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,9,-1.713293360E-39,1.714043060E-39,-9.809089250E-45,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,10,-1.465105100E-14,4.608230900E-12,-4.230336970E-07,-1.775189500E-06,-8.957552590E-21,6.283452190E-15 +Increment 10: Step Time = 1.000,PART-1-1,11,-7.837900790E-15,8.284001960E-12,-1.453224170E-06,-3.189165450E-06,-4.922784150E-20,-3.924416300E-15 +Increment 10: Step Time = 1.000,PART-1-1,12,-5.873474690E-15,1.045754890E-11,-2.964382020E-06,-4.303178230E-06,-8.242815380E-20,3.065820140E-16 +Increment 10: Step Time = 1.000,PART-1-1,13,-7.352694910E-15,1.106450780E-11,-4.854320650E-06,-5.170747040E-06,-1.127178730E-19,2.365639350E-15 +Increment 10: Step Time = 1.000,PART-1-1,14,-7.895479550E-15,1.024299570E-11,-7.037187060E-06,-5.824505020E-06,-1.444758180E-19,2.060161790E-15 +Increment 10: Step Time = 1.000,PART-1-1,15,-6.177171570E-15,8.302588650E-12,-9.436607800E-06,-6.280523390E-06,-1.741674660E-19,-1.554707690E-15 +Increment 10: Step Time = 1.000,PART-1-1,16,-3.698039550E-15,5.543460660E-12,-1.198001700E-05,-6.539512010E-06,-1.866077720E-19,-3.131247240E-15 +Increment 10: Step Time = 1.000,PART-1-1,17,-2.234077770E-15,2.505602930E-12,-1.459266970E-05,-6.587049940E-06,-1.758650480E-19,-2.195425970E-15 +Increment 10: Step Time = 1.000,PART-1-1,18,-1.477596670E-15,-3.671380420E-13,-1.719454120E-05,-6.388176190E-06,-1.559119520E-19,-1.346197830E-15 +Increment 10: Step Time = 1.000,PART-1-1,19,-7.159013940E-16,-2.487300080E-12,-1.968362270E-05,-5.890973630E-06,-1.278491910E-19,-8.997134200E-16 +Increment 10: Step Time = 1.000,PART-1-1,20,-2.972035060E-16,-3.314307600E-12,-2.197472350E-05,-4.959258150E-06,-8.982449910E-20,-7.758910740E-16 +Increment 10: Step Time = 1.000,PART-1-1,21,-5.186518060E-17,-1.990058730E-12,-2.378246430E-05,-3.607461850E-06,-4.408232250E-20,-4.720166270E-16 +Increment 10: Step Time = 1.000,PART-1-1,22,-1.990056120E-12,1.585984360E-16,-2.378246430E-05,5.009596430E-20,3.607461850E-06,-2.613709150E-16 +Increment 10: Step Time = 1.000,PART-1-1,23,-3.314118290E-12,4.717611410E-16,-2.197472350E-05,9.462107390E-20,4.959258150E-06,-4.334589460E-16 +Increment 10: Step Time = 1.000,PART-1-1,24,-2.487020360E-12,6.029691910E-16,-1.968362270E-05,1.319897590E-19,5.890973630E-06,-4.184299610E-16 +Increment 10: Step Time = 1.000,PART-1-1,25,-3.673278590E-13,5.918061970E-16,-1.719454120E-05,1.609048010E-19,6.388176190E-06,2.901798820E-16 +Increment 10: Step Time = 1.000,PART-1-1,26,2.505478460E-12,1.847151610E-16,-1.459266970E-05,1.802282960E-19,6.587049940E-06,9.246283650E-16 +Increment 10: Step Time = 1.000,PART-1-1,27,5.543661880E-12,-6.352473940E-16,-1.198001700E-05,1.848755130E-19,6.539512010E-06,1.300119980E-15 +Increment 10: Step Time = 1.000,PART-1-1,28,8.301795880E-12,-2.346313240E-15,-9.436607800E-06,1.699262660E-19,6.280523390E-06,-4.084176080E-16 +Increment 10: Step Time = 1.000,PART-1-1,29,1.024502620E-11,-3.625752060E-15,-7.037187060E-06,1.367665470E-19,5.824505020E-06,-4.460143040E-15 +Increment 10: Step Time = 1.000,PART-1-1,30,1.106519390E-11,-1.117658390E-15,-4.854320650E-06,1.052742940E-19,5.170747040E-06,-5.581853530E-15 +Increment 10: Step Time = 1.000,PART-1-1,31,1.045826620E-11,2.255598340E-15,-2.964382020E-06,7.040879950E-20,4.303178230E-06,-6.015170170E-15 +Increment 10: Step Time = 1.000,PART-1-1,32,8.283733070E-12,4.034928690E-15,-1.453224170E-06,3.520516880E-20,3.189165450E-06,-5.447473870E-15 +Increment 10: Step Time = 1.000,PART-1-1,33,4.602488960E-12,2.730379790E-15,-4.230336970E-07,1.641212610E-20,1.775189500E-06,7.032385170E-17 +Increment 10: Step Time = 1.000,PART-1-1,34,2.662899350E-37,7.038531610E-38,-1.327163520E-33,-3.450153430E-33,1.308795260E-32,3.520154230E-39 +Increment 10: Step Time = 1.000,PART-1-1,35,2.541899590E-37,6.649000340E-38,-1.208515920E-33,-3.471338410E-33,1.280276890E-32,4.186821970E-39 +Increment 10: Step Time = 1.000,PART-1-1,36,2.289199290E-37,6.217912170E-38,-1.044171890E-33,-3.389661020E-33,1.213062710E-32,4.499972940E-39 +Increment 10: Step Time = 1.000,PART-1-1,37,1.957245810E-37,5.674649500E-38,-8.444257340E-34,-3.210203440E-33,1.111392660E-32,4.469860440E-39 +Increment 10: Step Time = 1.000,PART-1-1,38,1.627524540E-37,4.974564150E-38,-6.212958760E-34,-2.944324800E-33,9.815011960E-33,4.175014630E-39 +Increment 10: Step Time = 1.000,PART-1-1,39,1.328569170E-37,4.324285990E-38,-3.876785420E-34,-2.608624190E-33,8.311116810E-33,3.710325840E-39 +Increment 10: Step Time = 1.000,PART-1-1,40,1.062458440E-37,3.745323550E-38,-1.569647480E-34,-2.223506710E-33,6.689642110E-33,3.158299730E-39 +Increment 10: Step Time = 1.000,PART-1-1,41,8.368030900E-38,3.265746810E-38,5.663162140E-35,-1.811597690E-33,5.045077390E-33,2.584109270E-39 +Increment 10: Step Time = 1.000,PART-1-1,42,6.693278010E-38,2.870629130E-38,2.369519960E-34,-1.396103780E-33,3.477973340E-33,2.031054610E-39 +Increment 10: Step Time = 1.000,PART-1-1,43,5.637075640E-38,2.553485300E-38,3.643700730E-34,-9.988005600E-34,2.095445780E-33,1.534426020E-39 +Increment 10: Step Time = 1.000,PART-1-1,44,4.945732710E-38,2.302075820E-38,4.147555030E-34,-6.371733150E-34,1.009454860E-33,1.074239610E-39 +Increment 10: Step Time = 1.000,PART-1-1,45,3.995345750E-38,2.045798370E-38,3.708309530E-34,-3.160159290E-34,3.267676850E-34,6.084241750E-40 +Increment 10: Step Time = 1.000,PART-1-1,46,-1.235336940E-38,2.799584420E-38,3.968581430E-35,3.139535050E-35,-1.214411020E-34,-6.130330460E-40 +Increment 10: Step Time = 1.000,PART-1-1,47,-1.507940640E-38,4.580514810E-38,1.665911510E-34,-5.764281640E-35,-1.373377800E-34,-1.080949020E-39 +Increment 10: Step Time = 1.000,PART-1-1,48,-1.601951790E-38,5.396902610E-38,1.277653880E-34,-5.205640000E-34,-1.650962760E-34,-1.500192300E-39 +Increment 10: Step Time = 1.000,PART-1-1,49,-1.744561800E-38,6.204400290E-38,-1.954892310E-35,-1.400846810E-33,-2.953483970E-34,-1.869850630E-39 +Increment 10: Step Time = 1.000,PART-1-1,50,-2.023524590E-38,7.496628410E-38,-2.261933530E-34,-2.629231520E-33,-5.307863930E-34,-2.149645090E-39 +Increment 10: Step Time = 1.000,PART-1-1,51,-2.465410050E-38,9.384442570E-38,-4.571020440E-34,-4.102413570E-33,-8.516759630E-34,-2.277718170E-39 +Increment 10: Step Time = 1.000,PART-1-1,52,-3.019732610E-38,1.176938360E-37,-6.893477690E-34,-5.713605270E-33,-1.231331620E-33,-2.210294690E-39 +Increment 10: Step Time = 1.000,PART-1-1,53,-3.665460470E-38,1.452072440E-37,-9.066761500E-34,-7.360184490E-33,-1.642734440E-33,-1.912811640E-39 +Increment 10: Step Time = 1.000,PART-1-1,54,-4.396036110E-38,1.755116240E-37,-1.096279530E-33,-8.944617160E-33,-2.060060280E-33,-1.379286870E-39 +Increment 10: Step Time = 1.000,PART-1-1,55,-5.354226910E-38,2.070741790E-37,-1.247369590E-33,-1.037504910E-32,-2.458917270E-33,-6.060559810E-40 +Increment 10: Step Time = 1.000,PART-1-1,56,-6.191166430E-38,2.378926330E-37,-1.350990330E-33,-1.156751240E-32,-2.816478590E-33,3.859960700E-40 +Increment 10: Step Time = 1.000,PART-1-1,57,-6.428847390E-38,2.588598030E-37,-1.400542380E-33,-1.245005740E-32,-3.111987580E-33,1.503813260E-39 +Increment 10: Step Time = 1.000,PART-1-1,58,1.465105100E-14,-4.608230900E-12,-4.230336970E-07,1.775189500E-06,8.900443200E-21,6.283452190E-15 +Increment 10: Step Time = 1.000,PART-1-1,59,7.837900790E-15,-8.284001960E-12,-1.453224170E-06,3.189165450E-06,4.927334290E-20,-3.924416300E-15 +Increment 10: Step Time = 1.000,PART-1-1,60,5.873474690E-15,-1.045754890E-11,-2.964382020E-06,4.303178230E-06,8.252398400E-20,3.065820140E-16 +Increment 10: Step Time = 1.000,PART-1-1,61,7.352694910E-15,-1.106450780E-11,-4.854320650E-06,5.170747040E-06,1.127630060E-19,2.365639350E-15 +Increment 10: Step Time = 1.000,PART-1-1,62,7.895479550E-15,-1.024299570E-11,-7.037187060E-06,5.824505020E-06,1.446274250E-19,2.060161790E-15 +Increment 10: Step Time = 1.000,PART-1-1,63,6.177171570E-15,-8.302588650E-12,-9.436607800E-06,6.280523390E-06,1.744454760E-19,-1.554707590E-15 +Increment 10: Step Time = 1.000,PART-1-1,64,3.698039550E-15,-5.543460660E-12,-1.198001700E-05,6.539512010E-06,1.869046910E-19,-3.131247020E-15 +Increment 10: Step Time = 1.000,PART-1-1,65,2.234077770E-15,-2.505602930E-12,-1.459266970E-05,6.587049940E-06,1.759820290E-19,-2.195425970E-15 +Increment 10: Step Time = 1.000,PART-1-1,66,1.477596670E-15,3.671380420E-13,-1.719454120E-05,6.388176190E-06,1.559671150E-19,-1.346197830E-15 +Increment 10: Step Time = 1.000,PART-1-1,67,7.159014470E-16,2.487300080E-12,-1.968362270E-05,5.890973630E-06,1.280137220E-19,-8.997134200E-16 +Increment 10: Step Time = 1.000,PART-1-1,68,2.972035850E-16,3.314307600E-12,-2.197472350E-05,4.959258150E-06,8.982374950E-20,-7.758911260E-16 +Increment 10: Step Time = 1.000,PART-1-1,69,5.186517400E-17,1.990058730E-12,-2.378246430E-05,3.607461850E-06,4.465186860E-20,-4.720167330E-16 +Increment 10: Step Time = 1.000,PART-1-1,70,1.990056120E-12,-1.585984090E-16,-2.378246430E-05,-4.984422030E-20,-3.607461850E-06,-2.613708090E-16 +Increment 10: Step Time = 1.000,PART-1-1,71,3.314118290E-12,-4.717611940E-16,-2.197472350E-05,-9.455420160E-20,-4.959258150E-06,-4.334590260E-16 +Increment 10: Step Time = 1.000,PART-1-1,72,2.487020360E-12,-6.029692440E-16,-1.968362270E-05,-1.323591860E-19,-5.890973630E-06,-4.184300140E-16 +Increment 10: Step Time = 1.000,PART-1-1,73,3.673278590E-13,-5.918062500E-16,-1.719454120E-05,-1.609549750E-19,-6.388176190E-06,2.901798560E-16 +Increment 10: Step Time = 1.000,PART-1-1,74,-2.505478460E-12,-1.847152670E-16,-1.459266970E-05,-1.797470710E-19,-6.587049940E-06,9.246283650E-16 +Increment 10: Step Time = 1.000,PART-1-1,75,-5.543661880E-12,6.352472880E-16,-1.198001700E-05,-1.847266980E-19,-6.539512010E-06,1.300119980E-15 +Increment 10: Step Time = 1.000,PART-1-1,76,-8.301795880E-12,2.346313240E-15,-9.436607800E-06,-1.700141790E-19,-6.280523390E-06,-4.084175820E-16 +Increment 10: Step Time = 1.000,PART-1-1,77,-1.024502620E-11,3.625751640E-15,-7.037187060E-06,-1.369531530E-19,-5.824505020E-06,-4.460143040E-15 +Increment 10: Step Time = 1.000,PART-1-1,78,-1.106519390E-11,1.117658280E-15,-4.854320650E-06,-1.052035960E-19,-5.170747040E-06,-5.581853530E-15 +Increment 10: Step Time = 1.000,PART-1-1,79,-1.045826620E-11,-2.255598340E-15,-2.964382020E-06,-7.030010280E-20,-4.303178230E-06,-6.015170170E-15 +Increment 10: Step Time = 1.000,PART-1-1,80,-8.283733070E-12,-4.034928690E-15,-1.453224170E-06,-3.516135080E-20,-3.189165450E-06,-5.447473870E-15 +Increment 10: Step Time = 1.000,PART-1-1,81,-4.602488960E-12,-2.730379790E-15,-4.230336970E-07,-1.640554900E-20,-1.775189500E-06,7.032385830E-17 +Increment 10: Step Time = 1.000,PART-1-1,82,-2.662899350E-37,-7.038531610E-38,-1.327163520E-33,3.450153430E-33,-1.308795260E-32,3.520154230E-39 +Increment 10: Step Time = 1.000,PART-1-1,83,-2.541899590E-37,-6.649000340E-38,-1.208515920E-33,3.471338410E-33,-1.280276890E-32,4.186821970E-39 +Increment 10: Step Time = 1.000,PART-1-1,84,-2.289199290E-37,-6.217912170E-38,-1.044171890E-33,3.389661020E-33,-1.213062710E-32,4.499972940E-39 +Increment 10: Step Time = 1.000,PART-1-1,85,-1.957245810E-37,-5.674649500E-38,-8.444257340E-34,3.210203440E-33,-1.111392660E-32,4.469860440E-39 +Increment 10: Step Time = 1.000,PART-1-1,86,-1.627524540E-37,-4.974564150E-38,-6.212958760E-34,2.944324800E-33,-9.815011960E-33,4.175014630E-39 +Increment 10: Step Time = 1.000,PART-1-1,87,-1.328569170E-37,-4.324285990E-38,-3.876785420E-34,2.608624190E-33,-8.311116810E-33,3.710325840E-39 +Increment 10: Step Time = 1.000,PART-1-1,88,-1.062458440E-37,-3.745323550E-38,-1.569647480E-34,2.223506710E-33,-6.689642110E-33,3.158299730E-39 +Increment 10: Step Time = 1.000,PART-1-1,89,-8.368030900E-38,-3.265746810E-38,5.663162140E-35,1.811597690E-33,-5.045077390E-33,2.584109270E-39 +Increment 10: Step Time = 1.000,PART-1-1,90,-6.693278010E-38,-2.870629130E-38,2.369519960E-34,1.396103780E-33,-3.477973340E-33,2.031054610E-39 +Increment 10: Step Time = 1.000,PART-1-1,91,-5.637075640E-38,-2.553485300E-38,3.643700730E-34,9.988005600E-34,-2.095445780E-33,1.534426020E-39 +Increment 10: Step Time = 1.000,PART-1-1,92,-4.945732710E-38,-2.302075820E-38,4.147555030E-34,6.371733150E-34,-1.009454860E-33,1.074239610E-39 +Increment 10: Step Time = 1.000,PART-1-1,93,-3.995345750E-38,-2.045798370E-38,3.708309530E-34,3.160159290E-34,-3.267676850E-34,6.084241750E-40 +Increment 10: Step Time = 1.000,PART-1-1,94,1.235336940E-38,-2.799584420E-38,3.968581430E-35,-3.139535050E-35,1.214411020E-34,-6.130330460E-40 +Increment 10: Step Time = 1.000,PART-1-1,95,1.507940640E-38,-4.580514810E-38,1.665911510E-34,5.764281640E-35,1.373377800E-34,-1.080949020E-39 +Increment 10: Step Time = 1.000,PART-1-1,96,1.601951790E-38,-5.396902610E-38,1.277653880E-34,5.205640000E-34,1.650962760E-34,-1.500192300E-39 +Increment 10: Step Time = 1.000,PART-1-1,97,1.744561800E-38,-6.204400290E-38,-1.954892310E-35,1.400846810E-33,2.953483970E-34,-1.869850630E-39 +Increment 10: Step Time = 1.000,PART-1-1,98,2.023524590E-38,-7.496628410E-38,-2.261933530E-34,2.629231520E-33,5.307863930E-34,-2.149645090E-39 +Increment 10: Step Time = 1.000,PART-1-1,99,2.465410050E-38,-9.384442570E-38,-4.571020440E-34,4.102413570E-33,8.516759630E-34,-2.277718170E-39 +Increment 10: Step Time = 1.000,PART-1-1,100,3.019732610E-38,-1.176938360E-37,-6.893477690E-34,5.713605270E-33,1.231331620E-33,-2.210294690E-39 +Increment 10: Step Time = 1.000,PART-1-1,101,3.665460470E-38,-1.452072440E-37,-9.066761500E-34,7.360184490E-33,1.642734440E-33,-1.912811640E-39 +Increment 10: Step Time = 1.000,PART-1-1,102,4.396036110E-38,-1.755116240E-37,-1.096279530E-33,8.944617160E-33,2.060060280E-33,-1.379286870E-39 +Increment 10: Step Time = 1.000,PART-1-1,103,5.354226910E-38,-2.070741790E-37,-1.247369590E-33,1.037504910E-32,2.458917270E-33,-6.060559810E-40 +Increment 10: Step Time = 1.000,PART-1-1,104,6.191166430E-38,-2.378926330E-37,-1.350990330E-33,1.156751240E-32,2.816478590E-33,3.859960700E-40 +Increment 10: Step Time = 1.000,PART-1-1,105,6.428847390E-38,-2.588598030E-37,-1.400542380E-33,1.245005740E-32,3.111987580E-33,1.503813260E-39 +Increment 10: Step Time = 1.000,PART-1-1,106,-6.502173410E-38,-2.598747910E-37,-1.400542380E-33,1.245005740E-32,-3.111987580E-33,-1.485707080E-39 +Increment 10: Step Time = 1.000,PART-1-1,107,-6.138781970E-38,-2.379164890E-37,-1.350990330E-33,1.156751240E-32,-2.816478590E-33,-3.724371060E-40 +Increment 10: Step Time = 1.000,PART-1-1,108,-5.316979270E-38,-2.069427260E-37,-1.247369590E-33,1.037504910E-32,-2.458917270E-33,6.131955960E-40 +Increment 10: Step Time = 1.000,PART-1-1,109,-4.371835130E-38,-1.753944530E-37,-1.096279530E-33,8.944617160E-33,-2.060060280E-33,1.383434710E-39 +Increment 10: Step Time = 1.000,PART-1-1,110,-3.663487720E-38,-1.450029570E-37,-9.066761500E-34,7.360184490E-33,-1.642734440E-33,1.916008000E-39 +Increment 10: Step Time = 1.000,PART-1-1,111,-3.025937560E-38,-1.175482470E-37,-6.893477690E-34,5.713605270E-33,-1.231331620E-33,2.210605780E-39 +Increment 10: Step Time = 1.000,PART-1-1,112,-2.463965310E-38,-9.378716860E-38,-4.571020440E-34,4.102413570E-33,-8.516759630E-34,2.279017170E-39 +Increment 10: Step Time = 1.000,PART-1-1,113,-2.022434380E-38,-7.496406440E-38,-2.261933530E-34,2.629231520E-33,-5.307863930E-34,2.150604980E-39 +Increment 10: Step Time = 1.000,PART-1-1,114,-1.742271090E-38,-6.207053230E-38,-1.954892310E-35,1.400846810E-33,-2.953483970E-34,1.871707350E-39 +Increment 10: Step Time = 1.000,PART-1-1,115,-1.602265540E-38,-5.394921180E-38,1.277653880E-34,5.205640000E-34,-1.650962760E-34,1.501733730E-39 +Increment 10: Step Time = 1.000,PART-1-1,116,-1.505718040E-38,-4.585271100E-38,1.665911510E-34,5.764281640E-35,-1.373377800E-34,1.084307940E-39 +Increment 10: Step Time = 1.000,PART-1-1,117,-1.227675200E-38,-2.806057580E-38,3.968581430E-35,-3.139535050E-35,-1.214411020E-34,6.128228510E-40 +Increment 10: Step Time = 1.000,PART-1-1,118,2.812350810E-38,1.225036560E-38,3.968581430E-35,-1.214411020E-34,-3.139535050E-35,-6.124557110E-40 +Increment 10: Step Time = 1.000,PART-1-1,119,4.586621390E-38,1.496228450E-38,1.665911510E-34,-1.373377800E-34,5.764281640E-35,-1.082665610E-39 +Increment 10: Step Time = 1.000,PART-1-1,120,5.409582680E-38,1.598031380E-38,1.277653880E-34,-1.650962760E-34,5.205640000E-34,-1.500887340E-39 +Increment 10: Step Time = 1.000,PART-1-1,121,6.218784900E-38,1.740075540E-38,-1.954892310E-35,-2.953483970E-34,1.400846810E-33,-1.869727320E-39 +Increment 10: Step Time = 1.000,PART-1-1,122,7.507468290E-38,2.025440720E-38,-2.261933530E-34,-5.307863930E-34,2.629231520E-33,-2.148557690E-39 +Increment 10: Step Time = 1.000,PART-1-1,123,9.392642960E-38,2.462484980E-38,-4.571020440E-34,-8.516759630E-34,4.102413570E-33,-2.277947980E-39 +Increment 10: Step Time = 1.000,PART-1-1,124,1.176724130E-37,3.027293740E-38,-6.893477690E-34,-1.231331620E-33,5.713605270E-33,-2.209627670E-39 +Increment 10: Step Time = 1.000,PART-1-1,125,1.450828420E-37,3.666208760E-38,-9.066761500E-34,-1.642734440E-33,7.360184490E-33,-1.914189120E-39 +Increment 10: Step Time = 1.000,PART-1-1,126,1.753611580E-37,4.388815220E-38,-1.096279530E-33,-2.060060280E-33,8.944617160E-33,-1.381812010E-39 +Increment 10: Step Time = 1.000,PART-1-1,127,2.068998570E-37,5.328671710E-38,-1.247369590E-33,-2.458917270E-33,1.037504910E-32,-6.096965540E-40 +Increment 10: Step Time = 1.000,PART-1-1,128,2.378977900E-37,6.147616310E-38,-1.350990330E-33,-2.816478590E-33,1.156751240E-32,3.771959150E-40 +Increment 10: Step Time = 1.000,PART-1-1,129,2.599757970E-37,6.515686410E-38,-1.400542380E-33,-3.111987580E-33,1.245005740E-32,1.494682400E-39 +Increment 10: Step Time = 1.000,PART-1-1,130,6.502173410E-38,2.598747910E-37,-1.400542380E-33,-1.245005740E-32,3.111987580E-33,-1.485707080E-39 +Increment 10: Step Time = 1.000,PART-1-1,131,6.138781970E-38,2.379164890E-37,-1.350990330E-33,-1.156751240E-32,2.816478590E-33,-3.724371060E-40 +Increment 10: Step Time = 1.000,PART-1-1,132,5.316979270E-38,2.069427260E-37,-1.247369590E-33,-1.037504910E-32,2.458917270E-33,6.131955960E-40 +Increment 10: Step Time = 1.000,PART-1-1,133,4.371835130E-38,1.753944530E-37,-1.096279530E-33,-8.944617160E-33,2.060060280E-33,1.383434710E-39 +Increment 10: Step Time = 1.000,PART-1-1,134,3.663487720E-38,1.450029570E-37,-9.066761500E-34,-7.360184490E-33,1.642734440E-33,1.916008000E-39 +Increment 10: Step Time = 1.000,PART-1-1,135,3.025937560E-38,1.175482470E-37,-6.893477690E-34,-5.713605270E-33,1.231331620E-33,2.210605780E-39 +Increment 10: Step Time = 1.000,PART-1-1,136,2.463965310E-38,9.378716860E-38,-4.571020440E-34,-4.102413570E-33,8.516759630E-34,2.279017170E-39 +Increment 10: Step Time = 1.000,PART-1-1,137,2.022434380E-38,7.496406440E-38,-2.261933530E-34,-2.629231520E-33,5.307863930E-34,2.150604980E-39 +Increment 10: Step Time = 1.000,PART-1-1,138,1.742271090E-38,6.207053230E-38,-1.954892310E-35,-1.400846810E-33,2.953483970E-34,1.871707350E-39 +Increment 10: Step Time = 1.000,PART-1-1,139,1.602265540E-38,5.394921180E-38,1.277653880E-34,-5.205640000E-34,1.650962760E-34,1.501733730E-39 +Increment 10: Step Time = 1.000,PART-1-1,140,1.505718040E-38,4.585271100E-38,1.665911510E-34,-5.764281640E-35,1.373377800E-34,1.084307940E-39 +Increment 10: Step Time = 1.000,PART-1-1,141,1.227675200E-38,2.806057580E-38,3.968581430E-35,3.139535050E-35,1.214411020E-34,6.128228510E-40 +Increment 10: Step Time = 1.000,PART-1-1,142,-2.812350810E-38,-1.225036560E-38,3.968581430E-35,1.214411020E-34,3.139535050E-35,-6.124557110E-40 +Increment 10: Step Time = 1.000,PART-1-1,143,-4.586621390E-38,-1.496228450E-38,1.665911510E-34,1.373377800E-34,-5.764281640E-35,-1.082665610E-39 +Increment 10: Step Time = 1.000,PART-1-1,144,-5.409582680E-38,-1.598031380E-38,1.277653880E-34,1.650962760E-34,-5.205640000E-34,-1.500887340E-39 +Increment 10: Step Time = 1.000,PART-1-1,145,-6.218784900E-38,-1.740075540E-38,-1.954892310E-35,2.953483970E-34,-1.400846810E-33,-1.869727320E-39 +Increment 10: Step Time = 1.000,PART-1-1,146,-7.507468290E-38,-2.025440720E-38,-2.261933530E-34,5.307863930E-34,-2.629231520E-33,-2.148557690E-39 +Increment 10: Step Time = 1.000,PART-1-1,147,-9.392642960E-38,-2.462484980E-38,-4.571020440E-34,8.516759630E-34,-4.102413570E-33,-2.277947980E-39 +Increment 10: Step Time = 1.000,PART-1-1,148,-1.176724130E-37,-3.027293740E-38,-6.893477690E-34,1.231331620E-33,-5.713605270E-33,-2.209627670E-39 +Increment 10: Step Time = 1.000,PART-1-1,149,-1.450828420E-37,-3.666208760E-38,-9.066761500E-34,1.642734440E-33,-7.360184490E-33,-1.914189120E-39 +Increment 10: Step Time = 1.000,PART-1-1,150,-1.753611580E-37,-4.388815220E-38,-1.096279530E-33,2.060060280E-33,-8.944617160E-33,-1.381812010E-39 +Increment 10: Step Time = 1.000,PART-1-1,151,-2.068998570E-37,-5.328671710E-38,-1.247369590E-33,2.458917270E-33,-1.037504910E-32,-6.096965540E-40 +Increment 10: Step Time = 1.000,PART-1-1,152,-2.378977900E-37,-6.147616310E-38,-1.350990330E-33,2.816478590E-33,-1.156751240E-32,3.771959150E-40 +Increment 10: Step Time = 1.000,PART-1-1,153,-2.599757970E-37,-6.515686410E-38,-1.400542380E-33,3.111987580E-33,-1.245005740E-32,1.494682400E-39 +Increment 10: Step Time = 1.000,PART-1-1,154,7.605877190E-13,4.529839180E-12,-4.162370710E-07,-1.748542330E-06,5.784412240E-08,-3.559183380E-13 +Increment 10: Step Time = 1.000,PART-1-1,155,9.119970400E-13,8.116138840E-12,-1.430816500E-06,-3.142344210E-06,1.292098090E-07,3.369970050E-13 +Increment 10: Step Time = 1.000,PART-1-1,156,9.433151960E-13,1.023190040E-11,-2.919613730E-06,-4.240639100E-06,2.386655350E-07,5.539401400E-13 +Increment 10: Step Time = 1.000,PART-1-1,157,9.407407580E-13,1.079045190E-11,-4.781691130E-06,-5.095037070E-06,3.768609820E-07,7.099497860E-13 +Increment 10: Step Time = 1.000,PART-1-1,158,8.571973970E-13,9.967281340E-12,-6.931774810E-06,-5.736695580E-06,5.403284720E-07,8.765466110E-13 +Increment 10: Step Time = 1.000,PART-1-1,159,7.014700780E-13,8.003140680E-12,-9.293547920E-06,-6.180300720E-06,7.282584420E-07,1.239661690E-12 +Increment 10: Step Time = 1.000,PART-1-1,160,2.494491700E-13,5.274609740E-12,-1.179366430E-05,-6.425269020E-06,9.426395880E-07,1.670904410E-12 +Increment 10: Step Time = 1.000,PART-1-1,161,-2.606513910E-13,2.029846560E-12,-1.435667220E-05,-6.454435150E-06,1.188895570E-06,2.303485530E-12 +Increment 10: Step Time = 1.000,PART-1-1,162,-1.443598060E-12,-1.268325720E-12,-1.689656530E-05,-6.232817210E-06,1.477433100E-06,2.264347560E-12 +Increment 10: Step Time = 1.000,PART-1-1,163,-1.964809170E-12,-3.924958880E-12,-1.931887710E-05,-5.687964860E-06,1.828230550E-06,2.217174140E-12 +Increment 10: Step Time = 1.000,PART-1-1,164,-3.166294050E-12,-5.029010190E-12,-2.146583030E-05,-4.732803520E-06,2.282629790E-06,2.105493730E-12 +Increment 10: Step Time = 1.000,PART-1-1,165,-4.011739290E-12,-4.011507270E-12,-2.328613660E-05,-2.915862520E-06,2.915862520E-06,-3.641636840E-16 +Increment 10: Step Time = 1.000,PART-1-1,166,1.469962500E-12,4.239805990E-12,-3.962906590E-07,-1.670316010E-06,1.119891730E-07,-5.870669080E-13 +Increment 10: Step Time = 1.000,PART-1-1,167,1.747556530E-12,7.588998010E-12,-1.365057640E-06,-3.004964360E-06,2.500554220E-07,7.805671800E-13 +Increment 10: Step Time = 1.000,PART-1-1,168,1.784363130E-12,9.564650290E-12,-2.788287930E-06,-4.057339990E-06,4.615615690E-07,1.208293770E-12 +Increment 10: Step Time = 1.000,PART-1-1,169,1.758249690E-12,1.003998100E-11,-4.568791160E-06,-4.873585570E-06,7.279676880E-07,1.363628290E-12 +Increment 10: Step Time = 1.000,PART-1-1,170,1.701434670E-12,9.111600360E-12,-6.623196440E-06,-5.480692830E-06,1.041797190E-06,1.633040380E-12 +Increment 10: Step Time = 1.000,PART-1-1,171,1.351022590E-12,6.979543680E-12,-8.875470480E-06,-5.889813560E-06,1.400139810E-06,1.985845950E-12 +Increment 10: Step Time = 1.000,PART-1-1,172,6.865336210E-13,3.910286160E-12,-1.125118250E-05,-6.096617200E-06,1.804437940E-06,2.181337360E-12 +Increment 10: Step Time = 1.000,PART-1-1,173,-3.564212730E-13,6.344856820E-13,-1.367100960E-05,-6.080296320E-06,2.260454040E-06,2.498677910E-12 +Increment 10: Step Time = 1.000,PART-1-1,174,-2.093479250E-12,-2.162767360E-12,-1.604558930E-05,-5.797064200E-06,2.779002440E-06,2.123597520E-12 +Increment 10: Step Time = 1.000,PART-1-1,175,-3.234289360E-12,-4.096898600E-12,-1.825705290E-05,-5.177693770E-06,3.375005920E-06,1.170088440E-12 +Increment 10: Step Time = 1.000,PART-1-1,176,-4.658439870E-12,-4.657417250E-12,-2.017510810E-05,-4.062933390E-06,4.062933390E-06,-8.302612710E-16 +Increment 10: Step Time = 1.000,PART-1-1,177,-5.029088690E-12,-3.165756720E-12,-2.146583030E-05,-2.282629790E-06,4.732803520E-06,-2.106799110E-12 +Increment 10: Step Time = 1.000,PART-1-1,178,2.004578360E-12,3.678024030E-12,-3.644745450E-07,-1.545478200E-06,1.591139240E-07,-8.149763420E-13 +Increment 10: Step Time = 1.000,PART-1-1,179,2.425490150E-12,6.612452770E-12,-1.260177440E-06,-2.785929840E-06,3.550615020E-07,1.081084330E-12 +Increment 10: Step Time = 1.000,PART-1-1,180,2.461112910E-12,8.340956400E-12,-2.578987050E-06,-3.765684820E-06,6.547065250E-07,1.712916270E-12 +Increment 10: Step Time = 1.000,PART-1-1,181,2.388857560E-12,8.741631550E-12,-4.229968910E-06,-4.522524700E-06,1.030790140E-06,1.695327040E-12 +Increment 10: Step Time = 1.000,PART-1-1,182,2.490564830E-12,7.822905520E-12,-6.133229360E-06,-5.077402420E-06,1.471097220E-06,1.579353180E-12 +Increment 10: Step Time = 1.000,PART-1-1,183,2.038010170E-12,5.921083070E-12,-8.214096850E-06,-5.436761060E-06,1.968775450E-06,1.494999760E-12 +Increment 10: Step Time = 1.000,PART-1-1,184,1.350276440E-12,3.585844300E-12,-1.039746890E-05,-5.592580240E-06,2.521117950E-06,1.416385780E-12 +Increment 10: Step Time = 1.000,PART-1-1,185,1.927718580E-14,9.274243700E-13,-1.260225420E-05,-5.520457760E-06,3.127888930E-06,1.303285710E-12 +Increment 10: Step Time = 1.000,PART-1-1,186,-1.536190450E-12,-1.671384060E-12,-1.473263180E-05,-5.177444560E-06,3.787876950E-06,8.575522560E-13 +Increment 10: Step Time = 1.000,PART-1-1,187,-3.219243670E-12,-3.217436300E-12,-1.667437940E-05,-4.490919310E-06,4.490919310E-06,-4.475193760E-16 +Increment 10: Step Time = 1.000,PART-1-1,188,-4.097860510E-12,-3.232953400E-12,-1.825705290E-05,-3.375005920E-06,5.177693770E-06,-1.171568270E-12 +Increment 10: Step Time = 1.000,PART-1-1,189,-3.925516600E-12,-1.963677270E-12,-1.931887710E-05,-1.828230550E-06,5.687964860E-06,-2.218909730E-12 +Increment 10: Step Time = 1.000,PART-1-1,190,2.319491600E-12,3.057254320E-12,-3.227702340E-07,-1.381760400E-06,1.965471060E-07,-1.127012550E-12 +Increment 10: Step Time = 1.000,PART-1-1,191,2.888604290E-12,5.484188620E-12,-1.122728120E-06,-2.499026550E-06,4.382837910E-07,9.625743130E-13 +Increment 10: Step Time = 1.000,PART-1-1,192,2.935854250E-12,6.938523540E-12,-2.304960390E-06,-3.384656570E-06,8.071912700E-07,1.573571030E-12 +Increment 10: Step Time = 1.000,PART-1-1,193,2.965442780E-12,7.359251230E-12,-3.787183910E-06,-4.066101610E-06,1.268287410E-06,1.450383760E-12 +Increment 10: Step Time = 1.000,PART-1-1,194,3.134459270E-12,6.984419120E-12,-5.494865950E-06,-4.557342890E-06,1.804222050E-06,1.338137720E-12 +Increment 10: Step Time = 1.000,PART-1-1,195,2.857426320E-12,5.771543400E-12,-7.356377410E-06,-4.860291480E-06,2.402772450E-06,1.302453910E-12 +Increment 10: Step Time = 1.000,PART-1-1,196,2.187376150E-12,3.704674150E-12,-9.298305490E-06,-4.964503660E-06,3.054498850E-06,1.100205860E-12 +Increment 10: Step Time = 1.000,PART-1-1,197,1.036719000E-12,1.481222480E-12,-1.124007390E-05,-4.846650880E-06,3.749067450E-06,6.422873840E-13 +Increment 10: Step Time = 1.000,PART-1-1,198,-2.766397680E-13,-2.748308040E-13,-1.308937680E-05,-4.469407940E-06,4.469407940E-06,-6.705724260E-16 +Increment 10: Step Time = 1.000,PART-1-1,199,-1.673092980E-12,-1.534254280E-12,-1.473263180E-05,-3.787876950E-06,5.177444560E-06,-8.582443570E-13 +Increment 10: Step Time = 1.000,PART-1-1,200,-2.164286330E-12,-2.091724580E-12,-1.604558930E-05,-2.779002440E-06,5.797064200E-06,-2.125183930E-12 +Increment 10: Step Time = 1.000,PART-1-1,201,-1.268683510E-12,-1.441866700E-12,-1.689656530E-05,-1.477433100E-06,6.232817210E-06,-2.266152980E-12 +Increment 10: Step Time = 1.000,PART-1-1,202,2.448034400E-12,2.508812820E-12,-2.736801720E-07,-1.188993560E-06,2.223638660E-07,-1.367111940E-12 +Increment 10: Step Time = 1.000,PART-1-1,203,3.129685100E-12,4.530652760E-12,-9.609879040E-07,-2.161632440E-06,4.955470560E-07,6.752103220E-13 +Increment 10: Step Time = 1.000,PART-1-1,204,3.228052160E-12,5.813296030E-12,-1.982842830E-06,-2.937789990E-06,9.116487830E-07,1.202291300E-12 +Increment 10: Step Time = 1.000,PART-1-1,205,3.369422150E-12,6.266649530E-12,-3.267709420E-06,-3.533567680E-06,1.429662010E-06,9.302259480E-13 +Increment 10: Step Time = 1.000,PART-1-1,206,3.762211460E-12,5.823963270E-12,-4.748332690E-06,-3.955949070E-06,2.027434220E-06,8.759301340E-13 +Increment 10: Step Time = 1.000,PART-1-1,207,3.544725490E-12,4.819928310E-12,-6.358339760E-06,-4.203226580E-06,2.687085950E-06,7.804325220E-13 +Increment 10: Step Time = 1.000,PART-1-1,208,3.240503790E-12,3.678158040E-12,-8.028688170E-06,-4.264822560E-06,3.391833620E-06,3.747883350E-13 +Increment 10: Step Time = 1.000,PART-1-1,209,2.377906680E-12,2.380858100E-12,-9.684264110E-06,-4.121603070E-06,4.121603070E-06,4.868461160E-17 +Increment 10: Step Time = 1.000,PART-1-1,210,1.478672440E-12,1.039537920E-12,-1.124007390E-05,-3.749067450E-06,4.846650880E-06,-6.437659650E-13 +Increment 10: Step Time = 1.000,PART-1-1,211,9.256484470E-13,2.181380890E-14,-1.260225420E-05,-3.127888930E-06,5.520457760E-06,-1.305374970E-12 +Increment 10: Step Time = 1.000,PART-1-1,212,6.335873120E-13,-3.539702710E-13,-1.367100960E-05,-2.260454040E-06,6.080296320E-06,-2.500612350E-12 +Increment 10: Step Time = 1.000,PART-1-1,213,2.029757220E-12,-2.583244760E-13,-1.435667220E-05,-1.188895570E-06,6.454435150E-06,-2.304619820E-12 +Increment 10: Step Time = 1.000,PART-1-1,214,2.425356790E-12,2.014302570E-12,-2.200548010E-07,-9.784295120E-07,2.352953890E-07,-1.475470900E-12 +Increment 10: Step Time = 1.000,PART-1-1,215,3.182775870E-12,3.680063200E-12,-7.843669320E-07,-1.793393490E-06,5.242625890E-07,4.642379690E-13 +Increment 10: Step Time = 1.000,PART-1-1,216,3.337974430E-12,4.821325200E-12,-1.631377240E-06,-2.451112550E-06,9.639044260E-07,9.593170440E-13 +Increment 10: Step Time = 1.000,PART-1-1,217,3.566540730E-12,5.353667600E-12,-2.701814310E-06,-2.956205660E-06,1.509642060E-06,4.556346620E-13 +Increment 10: Step Time = 1.000,PART-1-1,218,4.284292110E-12,5.420816140E-12,-3.937373550E-06,-3.309288100E-06,2.135708200E-06,3.088132780E-13 +Increment 10: Step Time = 1.000,PART-1-1,219,4.101955750E-12,5.060151520E-12,-5.279002380E-06,-3.506307390E-06,2.819474500E-06,1.640236750E-13 +Increment 10: Step Time = 1.000,PART-1-1,220,4.272184170E-12,4.276126330E-12,-6.664941790E-06,-3.538164260E-06,3.538164260E-06,-1.477579890E-16 +Increment 10: Step Time = 1.000,PART-1-1,221,3.675499570E-12,3.243105000E-12,-8.028688170E-06,-3.391833620E-06,4.264822560E-06,-3.759936160E-13 +Increment 10: Step Time = 1.000,PART-1-1,222,3.702088550E-12,2.190295470E-12,-9.298305490E-06,-3.054498850E-06,4.964503660E-06,-1.101612070E-12 +Increment 10: Step Time = 1.000,PART-1-1,223,3.583925690E-12,1.353715640E-12,-1.039746890E-05,-2.521117950E-06,5.592580240E-06,-1.418140890E-12 +Increment 10: Step Time = 1.000,PART-1-1,224,3.908310740E-12,6.895451550E-13,-1.125118250E-05,-1.804437940E-06,6.096617200E-06,-2.183391490E-12 +Increment 10: Step Time = 1.000,PART-1-1,225,5.273634390E-12,2.521082570E-13,-1.179366430E-05,-9.426395880E-07,6.425269020E-06,-1.673643210E-12 +Increment 10: Step Time = 1.000,PART-1-1,226,2.275140800E-12,1.578632950E-12,-1.649768390E-07,-7.621962370E-07,2.345043410E-07,-1.491749650E-12 +Increment 10: Step Time = 1.000,PART-1-1,227,3.069962040E-12,2.916991080E-12,-6.029597440E-07,-1.415114300E-06,5.229595100E-07,2.575342010E-13 +Increment 10: Step Time = 1.000,PART-1-1,228,3.283158030E-12,3.931700450E-12,-1.270402890E-06,-1.951462540E-06,9.620906670E-07,7.063273580E-13 +Increment 10: Step Time = 1.000,PART-1-1,229,3.627804870E-12,4.588351400E-12,-2.120968250E-06,-2.365075030E-06,1.506862650E-06,2.283305920E-13 +Increment 10: Step Time = 1.000,PART-1-1,230,4.448324520E-12,4.786450750E-12,-3.106383700E-06,-2.651346680E-06,2.129736910E-06,1.387572510E-13 +Increment 10: Step Time = 1.000,PART-1-1,231,4.559796120E-12,4.563808970E-12,-4.176552470E-06,-2.805069240E-06,2.805069240E-06,-8.636819620E-16 +Increment 10: Step Time = 1.000,PART-1-1,232,5.056746250E-12,4.105149810E-12,-5.279002380E-06,-2.819474500E-06,3.506307390E-06,-1.658447140E-13 +Increment 10: Step Time = 1.000,PART-1-1,233,4.817081630E-12,3.548263250E-12,-6.358339760E-06,-2.687085950E-06,4.203226580E-06,-7.827792230E-13 +Increment 10: Step Time = 1.000,PART-1-1,234,5.769215830E-12,2.861319900E-12,-7.356377410E-06,-2.402772450E-06,4.860291480E-06,-1.304004860E-12 +Increment 10: Step Time = 1.000,PART-1-1,235,5.918574220E-12,2.042348710E-12,-8.214096850E-06,-1.968775450E-06,5.436761060E-06,-1.497541350E-12 +Increment 10: Step Time = 1.000,PART-1-1,236,6.978762190E-12,1.355767820E-12,-8.875470480E-06,-1.400139810E-06,5.889813560E-06,-1.989375030E-12 +Increment 10: Step Time = 1.000,PART-1-1,237,8.003500640E-12,7.056945090E-13,-9.293547920E-06,-7.282584420E-07,6.180300720E-06,-1.240738850E-12 +Increment 10: Step Time = 1.000,PART-1-1,238,2.023883660E-12,1.222524790E-12,-1.117349770E-07,-5.529464600E-07,2.193445850E-07,-1.441123700E-12 +Increment 10: Step Time = 1.000,PART-1-1,239,2.807651900E-12,2.285584920E-12,-4.273163090E-07,-1.047964930E-06,4.907916490E-07,2.388409460E-14 +Increment 10: Step Time = 1.000,PART-1-1,240,3.082579550E-12,3.162011670E-12,-9.202426550E-07,-1.465337050E-06,9.057247890E-07,4.395179700E-13 +Increment 10: Step Time = 1.000,PART-1-1,241,3.492325350E-12,3.818547910E-12,-1.556721600E-06,-1.789734600E-06,1.422182320E-06,1.662103480E-13 +Increment 10: Step Time = 1.000,PART-1-1,242,4.260135650E-12,4.262988400E-12,-2.298847450E-06,-2.012960980E-06,2.012960980E-06,-6.330658070E-16 +Increment 10: Step Time = 1.000,PART-1-1,243,4.782437030E-12,4.452839570E-12,-3.106383700E-06,-2.129736910E-06,2.651346680E-06,-1.387561400E-13 +Increment 10: Step Time = 1.000,PART-1-1,244,5.418307730E-12,4.290300320E-12,-3.937373550E-06,-2.135708200E-06,3.309288100E-06,-3.105114910E-13 +Increment 10: Step Time = 1.000,PART-1-1,245,5.821463100E-12,3.767292030E-12,-4.748332690E-06,-2.027434220E-06,3.955949070E-06,-8.775516660E-13 +Increment 10: Step Time = 1.000,PART-1-1,246,6.981329140E-12,3.139775330E-12,-5.494865950E-06,-1.804222050E-06,4.557342890E-06,-1.340578800E-12 +Increment 10: Step Time = 1.000,PART-1-1,247,7.821267940E-12,2.496195310E-12,-6.133229360E-06,-1.471097220E-06,5.077402420E-06,-1.581655810E-12 +Increment 10: Step Time = 1.000,PART-1-1,248,9.110038240E-12,1.706444880E-12,-6.623196440E-06,-1.041797190E-06,5.480692830E-06,-1.634769360E-12 +Increment 10: Step Time = 1.000,PART-1-1,249,9.966121680E-12,8.617227480E-13,-6.931774810E-06,-5.403284720E-07,5.736695580E-06,-8.802585940E-13 +Increment 10: Step Time = 1.000,PART-1-1,250,1.699629480E-12,9.722651290E-13,-6.388837190E-08,-3.636196480E-07,1.893153150E-07,-1.325441280E-12 +Increment 10: Step Time = 1.000,PART-1-1,251,2.417979660E-12,1.828138550E-12,-2.683962350E-07,-7.128961100E-07,4.274295120E-07,-1.791614680E-13 +Increment 10: Step Time = 1.000,PART-1-1,252,2.710282300E-12,2.563082130E-12,-6.013974600E-07,-1.018178640E-06,7.953950100E-07,1.590074640E-13 +Increment 10: Step Time = 1.000,PART-1-1,253,3.142671670E-12,3.146767140E-12,-1.040156350E-06,-1.257826740E-06,1.257826740E-06,1.179825520E-15 +Increment 10: Step Time = 1.000,PART-1-1,254,3.815469640E-12,3.497439970E-12,-1.556721600E-06,-1.422182320E-06,1.789734600E-06,-1.678118770E-13 +Increment 10: Step Time = 1.000,PART-1-1,255,4.585947510E-12,3.631988810E-12,-2.120968250E-06,-1.506862650E-06,2.365075030E-06,-2.290683920E-13 +Increment 10: Step Time = 1.000,PART-1-1,256,5.352556940E-12,3.571355230E-12,-2.701814310E-06,-1.509642060E-06,2.956205660E-06,-4.556109180E-13 +Increment 10: Step Time = 1.000,PART-1-1,257,6.265405730E-12,3.375762560E-12,-3.267709420E-06,-1.429662010E-06,3.533567680E-06,-9.295880040E-13 +Increment 10: Step Time = 1.000,PART-1-1,258,7.355174630E-12,2.972078960E-12,-3.787183910E-06,-1.268287410E-06,4.066101610E-06,-1.450643530E-12 +Increment 10: Step Time = 1.000,PART-1-1,259,8.738671240E-12,2.395300970E-12,-4.229968910E-06,-1.030790140E-06,4.522524700E-06,-1.699337070E-12 +Increment 10: Step Time = 1.000,PART-1-1,260,1.003938250E-11,1.764899420E-12,-4.568791160E-06,-7.279676880E-07,4.873585570E-06,-1.367297980E-12 +Increment 10: Step Time = 1.000,PART-1-1,261,1.079005200E-11,9.470665350E-13,-4.781691130E-06,-3.768609820E-07,5.095037070E-06,-7.133059880E-13 +Increment 10: Step Time = 1.000,PART-1-1,262,1.336669920E-12,8.292395630E-13,-2.536205200E-08,-2.070437400E-07,1.446418740E-07,-1.099716130E-12 +Increment 10: Step Time = 1.000,PART-1-1,263,1.925051050E-12,1.553344370E-12,-1.374863100E-07,-4.299135130E-07,3.340076940E-07,-2.496976420E-13 +Increment 10: Step Time = 1.000,PART-1-1,264,2.187092950E-12,2.189928790E-12,-3.341762350E-07,-6.338974000E-07,6.338974000E-07,1.139721790E-15 +Increment 10: Step Time = 1.000,PART-1-1,265,2.561049250E-12,2.711817530E-12,-6.013974600E-07,-7.953950100E-07,1.018178640E-06,-1.580180890E-13 +Increment 10: Step Time = 1.000,PART-1-1,266,3.159377710E-12,3.085509500E-12,-9.202426550E-07,-9.057247890E-07,1.465337050E-06,-4.372861120E-13 +Increment 10: Step Time = 1.000,PART-1-1,267,3.929954890E-12,3.287539290E-12,-1.270402890E-06,-9.620906670E-07,1.951462540E-06,-7.063597210E-13 +Increment 10: Step Time = 1.000,PART-1-1,268,4.820627840E-12,3.342900610E-12,-1.631377240E-06,-9.639044260E-07,2.451112550E-06,-9.583447320E-13 +Increment 10: Step Time = 1.000,PART-1-1,269,5.810955450E-12,3.235156070E-12,-1.982842830E-06,-9.116487830E-07,2.937789990E-06,-1.200569700E-12 +Increment 10: Step Time = 1.000,PART-1-1,270,6.936993510E-12,2.943278430E-12,-2.304960390E-06,-8.071912700E-07,3.384656570E-06,-1.573386280E-12 +Increment 10: Step Time = 1.000,PART-1-1,271,8.338093240E-12,2.468968170E-12,-2.578987050E-06,-6.547065250E-07,3.765684820E-06,-1.714213520E-12 +Increment 10: Step Time = 1.000,PART-1-1,272,9.561749830E-12,1.792559920E-12,-2.788287930E-06,-4.615615690E-07,4.057339990E-06,-1.212217180E-12 +Increment 10: Step Time = 1.000,PART-1-1,273,1.023187090E-11,9.518617450E-13,-2.919613730E-06,-2.386655350E-07,4.240639100E-06,-5.600055470E-13 +Increment 10: Step Time = 1.000,PART-1-1,274,9.533682440E-13,7.267016310E-13,-3.523198680E-10,-9.432790190E-08,8.836911290E-08,-7.011179830E-13 +Increment 10: Step Time = 1.000,PART-1-1,275,1.358866040E-12,1.360517820E-12,-4.551087330E-08,-2.163689740E-07,2.163689740E-07,-9.970007660E-16 +Increment 10: Step Time = 1.000,PART-1-1,276,1.551278960E-12,1.925395390E-12,-1.374863100E-07,-3.340076940E-07,4.299135130E-07,2.507004210E-13 +Increment 10: Step Time = 1.000,PART-1-1,277,1.825107770E-12,2.420547700E-12,-2.683962350E-07,-4.274295120E-07,7.128961100E-07,1.803150860E-13 +Increment 10: Step Time = 1.000,PART-1-1,278,2.283611020E-12,2.809275160E-12,-4.273163090E-07,-4.907916490E-07,1.047964930E-06,-2.472519840E-14 +Increment 10: Step Time = 1.000,PART-1-1,279,2.916685990E-12,3.072578220E-12,-6.029597440E-07,-5.229595100E-07,1.415114300E-06,-2.561898720E-13 +Increment 10: Step Time = 1.000,PART-1-1,280,3.678817230E-12,3.186720640E-12,-7.843669320E-07,-5.242625890E-07,1.793393490E-06,-4.611303200E-13 +Increment 10: Step Time = 1.000,PART-1-1,281,4.528654360E-12,3.134162420E-12,-9.609879040E-07,-4.955470560E-07,2.161632440E-06,-6.726946470E-13 +Increment 10: Step Time = 1.000,PART-1-1,282,5.481189720E-12,2.895519540E-12,-1.122728120E-06,-4.382837910E-07,2.499026550E-06,-9.600475800E-13 +Increment 10: Step Time = 1.000,PART-1-1,283,6.608617730E-12,2.435416670E-12,-1.260177440E-06,-3.550615020E-07,2.785929840E-06,-1.080221960E-12 +Increment 10: Step Time = 1.000,PART-1-1,284,7.585756680E-12,1.757239210E-12,-1.365057640E-06,-2.500554220E-07,3.004964360E-06,-7.862675900E-13 +Increment 10: Step Time = 1.000,PART-1-1,285,8.114588860E-12,9.234886080E-13,-1.430816500E-06,-1.292098090E-07,3.142344210E-06,-3.457798280E-13 +Increment 10: Step Time = 1.000,PART-1-1,286,5.417662850E-13,5.420976170E-13,7.750011300E-09,-3.328533180E-08,3.328533180E-08,-7.415687430E-17 +Increment 10: Step Time = 1.000,PART-1-1,287,7.271025140E-13,9.560194430E-13,-3.523198680E-10,-8.836911290E-08,9.432790190E-08,7.029654640E-13 +Increment 10: Step Time = 1.000,PART-1-1,288,8.277872740E-13,1.338493880E-12,-2.536205200E-08,-1.446418740E-07,2.070437400E-07,1.100663610E-12 +Increment 10: Step Time = 1.000,PART-1-1,289,9.708659660E-13,1.699902370E-12,-6.388837190E-08,-1.893153150E-07,3.636196480E-07,1.327852650E-12 +Increment 10: Step Time = 1.000,PART-1-1,290,1.220153210E-12,2.025230680E-12,-1.117349770E-07,-2.193445850E-07,5.529464600E-07,1.443037100E-12 +Increment 10: Step Time = 1.000,PART-1-1,291,1.576421290E-12,2.276456580E-12,-1.649768390E-07,-2.345043410E-07,7.621962370E-07,1.491051310E-12 +Increment 10: Step Time = 1.000,PART-1-1,292,2.015832600E-12,2.427233110E-12,-2.200548010E-07,-2.352953890E-07,9.784295120E-07,1.476495790E-12 +Increment 10: Step Time = 1.000,PART-1-1,293,2.508174660E-12,2.451969400E-12,-2.736801720E-07,-2.223638660E-07,1.188993560E-06,1.371028830E-12 +Increment 10: Step Time = 1.000,PART-1-1,294,3.057524940E-12,2.324597550E-12,-3.227702340E-07,-1.965471060E-07,1.381760400E-06,1.130666520E-12 +Increment 10: Step Time = 1.000,PART-1-1,295,3.678208350E-12,2.011801100E-12,-3.644745450E-07,-1.591139240E-07,1.545478200E-06,8.257565640E-13 +Increment 10: Step Time = 1.000,PART-1-1,296,4.233672010E-12,1.485534790E-12,-3.962906590E-07,-1.119891730E-07,1.670316010E-06,5.918247120E-13 +Increment 10: Step Time = 1.000,PART-1-1,297,4.532977730E-12,7.794752800E-13,-4.162370710E-07,-5.784412240E-08,1.748542330E-06,3.629911310E-13 +Increment 10: Step Time = 1.000,PART-1-1,298,-7.605877190E-13,-4.529839180E-12,-4.162370710E-07,1.748542330E-06,-5.784412240E-08,-3.559183380E-13 +Increment 10: Step Time = 1.000,PART-1-1,299,-9.119970400E-13,-8.116138840E-12,-1.430816500E-06,3.142344210E-06,-1.292098090E-07,3.369970050E-13 +Increment 10: Step Time = 1.000,PART-1-1,300,-9.433151960E-13,-1.023190040E-11,-2.919613730E-06,4.240639100E-06,-2.386655350E-07,5.539401400E-13 +Increment 10: Step Time = 1.000,PART-1-1,301,-9.407407580E-13,-1.079045190E-11,-4.781691130E-06,5.095037070E-06,-3.768609820E-07,7.099497860E-13 +Increment 10: Step Time = 1.000,PART-1-1,302,-8.571973970E-13,-9.967281340E-12,-6.931774810E-06,5.736695580E-06,-5.403284720E-07,8.765466110E-13 +Increment 10: Step Time = 1.000,PART-1-1,303,-7.014700780E-13,-8.003140680E-12,-9.293547920E-06,6.180300720E-06,-7.282584420E-07,1.239661690E-12 +Increment 10: Step Time = 1.000,PART-1-1,304,-2.494491700E-13,-5.274609740E-12,-1.179366430E-05,6.425269020E-06,-9.426395880E-07,1.670904410E-12 +Increment 10: Step Time = 1.000,PART-1-1,305,2.606513910E-13,-2.029846560E-12,-1.435667220E-05,6.454435150E-06,-1.188895570E-06,2.303485530E-12 +Increment 10: Step Time = 1.000,PART-1-1,306,1.443598060E-12,1.268325720E-12,-1.689656530E-05,6.232817210E-06,-1.477433100E-06,2.264347560E-12 +Increment 10: Step Time = 1.000,PART-1-1,307,1.964809170E-12,3.924958880E-12,-1.931887710E-05,5.687964860E-06,-1.828230550E-06,2.217174140E-12 +Increment 10: Step Time = 1.000,PART-1-1,308,3.166294050E-12,5.029010190E-12,-2.146583030E-05,4.732803520E-06,-2.282629790E-06,2.105493730E-12 +Increment 10: Step Time = 1.000,PART-1-1,309,4.011739290E-12,4.011507270E-12,-2.328613660E-05,2.915862520E-06,-2.915862520E-06,-3.641637100E-16 +Increment 10: Step Time = 1.000,PART-1-1,310,-1.469962500E-12,-4.239805990E-12,-3.962906590E-07,1.670316010E-06,-1.119891730E-07,-5.870669080E-13 +Increment 10: Step Time = 1.000,PART-1-1,311,-1.747556530E-12,-7.588998010E-12,-1.365057640E-06,3.004964360E-06,-2.500554220E-07,7.805671800E-13 +Increment 10: Step Time = 1.000,PART-1-1,312,-1.784363130E-12,-9.564650290E-12,-2.788287930E-06,4.057339990E-06,-4.615615690E-07,1.208293770E-12 +Increment 10: Step Time = 1.000,PART-1-1,313,-1.758249690E-12,-1.003998100E-11,-4.568791160E-06,4.873585570E-06,-7.279676880E-07,1.363628290E-12 +Increment 10: Step Time = 1.000,PART-1-1,314,-1.701434670E-12,-9.111600360E-12,-6.623196440E-06,5.480692830E-06,-1.041797190E-06,1.633040380E-12 +Increment 10: Step Time = 1.000,PART-1-1,315,-1.351022590E-12,-6.979543680E-12,-8.875470480E-06,5.889813560E-06,-1.400139810E-06,1.985845950E-12 +Increment 10: Step Time = 1.000,PART-1-1,316,-6.865336210E-13,-3.910286160E-12,-1.125118250E-05,6.096617200E-06,-1.804437940E-06,2.181337360E-12 +Increment 10: Step Time = 1.000,PART-1-1,317,3.564212730E-13,-6.344856820E-13,-1.367100960E-05,6.080296320E-06,-2.260454040E-06,2.498677910E-12 +Increment 10: Step Time = 1.000,PART-1-1,318,2.093479250E-12,2.162767360E-12,-1.604558930E-05,5.797064200E-06,-2.779002440E-06,2.123597520E-12 +Increment 10: Step Time = 1.000,PART-1-1,319,3.234289360E-12,4.096898600E-12,-1.825705290E-05,5.177693770E-06,-3.375005920E-06,1.170088440E-12 +Increment 10: Step Time = 1.000,PART-1-1,320,4.658439870E-12,4.657417250E-12,-2.017510810E-05,4.062933390E-06,-4.062933390E-06,-8.302612710E-16 +Increment 10: Step Time = 1.000,PART-1-1,321,5.029088690E-12,3.165756720E-12,-2.146583030E-05,2.282629790E-06,-4.732803520E-06,-2.106799110E-12 +Increment 10: Step Time = 1.000,PART-1-1,322,-2.004578360E-12,-3.678024030E-12,-3.644745450E-07,1.545478200E-06,-1.591139240E-07,-8.149763420E-13 +Increment 10: Step Time = 1.000,PART-1-1,323,-2.425490150E-12,-6.612452770E-12,-1.260177440E-06,2.785929840E-06,-3.550615020E-07,1.081084330E-12 +Increment 10: Step Time = 1.000,PART-1-1,324,-2.461112910E-12,-8.340956400E-12,-2.578987050E-06,3.765684820E-06,-6.547065250E-07,1.712916270E-12 +Increment 10: Step Time = 1.000,PART-1-1,325,-2.388857560E-12,-8.741631550E-12,-4.229968910E-06,4.522524700E-06,-1.030790140E-06,1.695327040E-12 +Increment 10: Step Time = 1.000,PART-1-1,326,-2.490564830E-12,-7.822905520E-12,-6.133229360E-06,5.077402420E-06,-1.471097220E-06,1.579353180E-12 +Increment 10: Step Time = 1.000,PART-1-1,327,-2.038010170E-12,-5.921083070E-12,-8.214096850E-06,5.436761060E-06,-1.968775450E-06,1.494999760E-12 +Increment 10: Step Time = 1.000,PART-1-1,328,-1.350276440E-12,-3.585844300E-12,-1.039746890E-05,5.592580240E-06,-2.521117950E-06,1.416385780E-12 +Increment 10: Step Time = 1.000,PART-1-1,329,-1.927718580E-14,-9.274243700E-13,-1.260225420E-05,5.520457760E-06,-3.127888930E-06,1.303285710E-12 +Increment 10: Step Time = 1.000,PART-1-1,330,1.536190450E-12,1.671384060E-12,-1.473263180E-05,5.177444560E-06,-3.787876950E-06,8.575522560E-13 +Increment 10: Step Time = 1.000,PART-1-1,331,3.219243670E-12,3.217436300E-12,-1.667437940E-05,4.490919310E-06,-4.490919310E-06,-4.475193760E-16 +Increment 10: Step Time = 1.000,PART-1-1,332,4.097860510E-12,3.232953400E-12,-1.825705290E-05,3.375005920E-06,-5.177693770E-06,-1.171568270E-12 +Increment 10: Step Time = 1.000,PART-1-1,333,3.925516600E-12,1.963677270E-12,-1.931887710E-05,1.828230550E-06,-5.687964860E-06,-2.218909730E-12 +Increment 10: Step Time = 1.000,PART-1-1,334,-2.319491600E-12,-3.057254320E-12,-3.227702340E-07,1.381760400E-06,-1.965471060E-07,-1.127012550E-12 +Increment 10: Step Time = 1.000,PART-1-1,335,-2.888604290E-12,-5.484188620E-12,-1.122728120E-06,2.499026550E-06,-4.382837910E-07,9.625743130E-13 +Increment 10: Step Time = 1.000,PART-1-1,336,-2.935854250E-12,-6.938523540E-12,-2.304960390E-06,3.384656570E-06,-8.071912700E-07,1.573571030E-12 +Increment 10: Step Time = 1.000,PART-1-1,337,-2.965442780E-12,-7.359251230E-12,-3.787183910E-06,4.066101610E-06,-1.268287410E-06,1.450383760E-12 +Increment 10: Step Time = 1.000,PART-1-1,338,-3.134459270E-12,-6.984419120E-12,-5.494865950E-06,4.557342890E-06,-1.804222050E-06,1.338137720E-12 +Increment 10: Step Time = 1.000,PART-1-1,339,-2.857426320E-12,-5.771543400E-12,-7.356377410E-06,4.860291480E-06,-2.402772450E-06,1.302453910E-12 +Increment 10: Step Time = 1.000,PART-1-1,340,-2.187376150E-12,-3.704674150E-12,-9.298305490E-06,4.964503660E-06,-3.054498850E-06,1.100205860E-12 +Increment 10: Step Time = 1.000,PART-1-1,341,-1.036719000E-12,-1.481222480E-12,-1.124007390E-05,4.846650880E-06,-3.749067450E-06,6.422873840E-13 +Increment 10: Step Time = 1.000,PART-1-1,342,2.766397680E-13,2.748308040E-13,-1.308937680E-05,4.469407940E-06,-4.469407940E-06,-6.705723730E-16 +Increment 10: Step Time = 1.000,PART-1-1,343,1.673092980E-12,1.534254280E-12,-1.473263180E-05,3.787876950E-06,-5.177444560E-06,-8.582443570E-13 +Increment 10: Step Time = 1.000,PART-1-1,344,2.164286330E-12,2.091724580E-12,-1.604558930E-05,2.779002440E-06,-5.797064200E-06,-2.125183930E-12 +Increment 10: Step Time = 1.000,PART-1-1,345,1.268683510E-12,1.441866700E-12,-1.689656530E-05,1.477433100E-06,-6.232817210E-06,-2.266152980E-12 +Increment 10: Step Time = 1.000,PART-1-1,346,-2.448034400E-12,-2.508812820E-12,-2.736801720E-07,1.188993560E-06,-2.223638660E-07,-1.367111940E-12 +Increment 10: Step Time = 1.000,PART-1-1,347,-3.129685100E-12,-4.530652760E-12,-9.609879040E-07,2.161632440E-06,-4.955470560E-07,6.752103220E-13 +Increment 10: Step Time = 1.000,PART-1-1,348,-3.228052160E-12,-5.813296030E-12,-1.982842830E-06,2.937789990E-06,-9.116487830E-07,1.202291300E-12 +Increment 10: Step Time = 1.000,PART-1-1,349,-3.369422150E-12,-6.266649530E-12,-3.267709420E-06,3.533567680E-06,-1.429662010E-06,9.302259480E-13 +Increment 10: Step Time = 1.000,PART-1-1,350,-3.762211460E-12,-5.823963270E-12,-4.748332690E-06,3.955949070E-06,-2.027434220E-06,8.759301340E-13 +Increment 10: Step Time = 1.000,PART-1-1,351,-3.544725490E-12,-4.819928310E-12,-6.358339760E-06,4.203226580E-06,-2.687085950E-06,7.804325220E-13 +Increment 10: Step Time = 1.000,PART-1-1,352,-3.240503790E-12,-3.678158040E-12,-8.028688170E-06,4.264822560E-06,-3.391833620E-06,3.747883350E-13 +Increment 10: Step Time = 1.000,PART-1-1,353,-2.377906680E-12,-2.380858100E-12,-9.684264110E-06,4.121603070E-06,-4.121603070E-06,4.868461490E-17 +Increment 10: Step Time = 1.000,PART-1-1,354,-1.478672440E-12,-1.039537920E-12,-1.124007390E-05,3.749067450E-06,-4.846650880E-06,-6.437659650E-13 +Increment 10: Step Time = 1.000,PART-1-1,355,-9.256484470E-13,-2.181380890E-14,-1.260225420E-05,3.127888930E-06,-5.520457760E-06,-1.305374970E-12 +Increment 10: Step Time = 1.000,PART-1-1,356,-6.335873120E-13,3.539702710E-13,-1.367100960E-05,2.260454040E-06,-6.080296320E-06,-2.500612350E-12 +Increment 10: Step Time = 1.000,PART-1-1,357,-2.029757220E-12,2.583244760E-13,-1.435667220E-05,1.188895570E-06,-6.454435150E-06,-2.304619820E-12 +Increment 10: Step Time = 1.000,PART-1-1,358,-2.425356790E-12,-2.014302570E-12,-2.200548010E-07,9.784295120E-07,-2.352953890E-07,-1.475470900E-12 +Increment 10: Step Time = 1.000,PART-1-1,359,-3.182775870E-12,-3.680063200E-12,-7.843669320E-07,1.793393490E-06,-5.242625890E-07,4.642379690E-13 +Increment 10: Step Time = 1.000,PART-1-1,360,-3.337974430E-12,-4.821325200E-12,-1.631377240E-06,2.451112550E-06,-9.639044260E-07,9.593170440E-13 +Increment 10: Step Time = 1.000,PART-1-1,361,-3.566540730E-12,-5.353667600E-12,-2.701814310E-06,2.956205660E-06,-1.509642060E-06,4.556346620E-13 +Increment 10: Step Time = 1.000,PART-1-1,362,-4.284292110E-12,-5.420816140E-12,-3.937373550E-06,3.309288100E-06,-2.135708200E-06,3.088132780E-13 +Increment 10: Step Time = 1.000,PART-1-1,363,-4.101955750E-12,-5.060151520E-12,-5.279002380E-06,3.506307390E-06,-2.819474500E-06,1.640236750E-13 +Increment 10: Step Time = 1.000,PART-1-1,364,-4.272184170E-12,-4.276126330E-12,-6.664941790E-06,3.538164260E-06,-3.538164260E-06,-1.477579890E-16 +Increment 10: Step Time = 1.000,PART-1-1,365,-3.675499570E-12,-3.243105000E-12,-8.028688170E-06,3.391833620E-06,-4.264822560E-06,-3.759936160E-13 +Increment 10: Step Time = 1.000,PART-1-1,366,-3.702088550E-12,-2.190295470E-12,-9.298305490E-06,3.054498850E-06,-4.964503660E-06,-1.101612070E-12 +Increment 10: Step Time = 1.000,PART-1-1,367,-3.583925690E-12,-1.353715640E-12,-1.039746890E-05,2.521117950E-06,-5.592580240E-06,-1.418140890E-12 +Increment 10: Step Time = 1.000,PART-1-1,368,-3.908310740E-12,-6.895451550E-13,-1.125118250E-05,1.804437940E-06,-6.096617200E-06,-2.183391490E-12 +Increment 10: Step Time = 1.000,PART-1-1,369,-5.273634390E-12,-2.521082570E-13,-1.179366430E-05,9.426395880E-07,-6.425269020E-06,-1.673643210E-12 +Increment 10: Step Time = 1.000,PART-1-1,370,-2.275140800E-12,-1.578632950E-12,-1.649768390E-07,7.621962370E-07,-2.345043410E-07,-1.491749650E-12 +Increment 10: Step Time = 1.000,PART-1-1,371,-3.069962040E-12,-2.916991080E-12,-6.029597440E-07,1.415114300E-06,-5.229595100E-07,2.575342010E-13 +Increment 10: Step Time = 1.000,PART-1-1,372,-3.283158030E-12,-3.931700450E-12,-1.270402890E-06,1.951462540E-06,-9.620906670E-07,7.063273580E-13 +Increment 10: Step Time = 1.000,PART-1-1,373,-3.627804870E-12,-4.588351400E-12,-2.120968250E-06,2.365075030E-06,-1.506862650E-06,2.283305920E-13 +Increment 10: Step Time = 1.000,PART-1-1,374,-4.448324520E-12,-4.786450750E-12,-3.106383700E-06,2.651346680E-06,-2.129736910E-06,1.387572510E-13 +Increment 10: Step Time = 1.000,PART-1-1,375,-4.559796120E-12,-4.563808970E-12,-4.176552470E-06,2.805069240E-06,-2.805069240E-06,-8.636819620E-16 +Increment 10: Step Time = 1.000,PART-1-1,376,-5.056746250E-12,-4.105149810E-12,-5.279002380E-06,2.819474500E-06,-3.506307390E-06,-1.658447140E-13 +Increment 10: Step Time = 1.000,PART-1-1,377,-4.817081630E-12,-3.548263250E-12,-6.358339760E-06,2.687085950E-06,-4.203226580E-06,-7.827792230E-13 +Increment 10: Step Time = 1.000,PART-1-1,378,-5.769215830E-12,-2.861319900E-12,-7.356377410E-06,2.402772450E-06,-4.860291480E-06,-1.304004860E-12 +Increment 10: Step Time = 1.000,PART-1-1,379,-5.918574220E-12,-2.042348710E-12,-8.214096850E-06,1.968775450E-06,-5.436761060E-06,-1.497541350E-12 +Increment 10: Step Time = 1.000,PART-1-1,380,-6.978762190E-12,-1.355767820E-12,-8.875470480E-06,1.400139810E-06,-5.889813560E-06,-1.989375030E-12 +Increment 10: Step Time = 1.000,PART-1-1,381,-8.003500640E-12,-7.056945090E-13,-9.293547920E-06,7.282584420E-07,-6.180300720E-06,-1.240738850E-12 +Increment 10: Step Time = 1.000,PART-1-1,382,-2.023883660E-12,-1.222524790E-12,-1.117349770E-07,5.529464600E-07,-2.193445850E-07,-1.441123700E-12 +Increment 10: Step Time = 1.000,PART-1-1,383,-2.807651900E-12,-2.285584920E-12,-4.273163090E-07,1.047964930E-06,-4.907916490E-07,2.388409460E-14 +Increment 10: Step Time = 1.000,PART-1-1,384,-3.082579550E-12,-3.162011670E-12,-9.202426550E-07,1.465337050E-06,-9.057247890E-07,4.395179700E-13 +Increment 10: Step Time = 1.000,PART-1-1,385,-3.492325350E-12,-3.818547910E-12,-1.556721600E-06,1.789734600E-06,-1.422182320E-06,1.662103480E-13 +Increment 10: Step Time = 1.000,PART-1-1,386,-4.260135650E-12,-4.262988400E-12,-2.298847450E-06,2.012960980E-06,-2.012960980E-06,-6.330658070E-16 +Increment 10: Step Time = 1.000,PART-1-1,387,-4.782437030E-12,-4.452839570E-12,-3.106383700E-06,2.129736910E-06,-2.651346680E-06,-1.387561400E-13 +Increment 10: Step Time = 1.000,PART-1-1,388,-5.418307730E-12,-4.290300320E-12,-3.937373550E-06,2.135708200E-06,-3.309288100E-06,-3.105114910E-13 +Increment 10: Step Time = 1.000,PART-1-1,389,-5.821463100E-12,-3.767292030E-12,-4.748332690E-06,2.027434220E-06,-3.955949070E-06,-8.775516660E-13 +Increment 10: Step Time = 1.000,PART-1-1,390,-6.981329140E-12,-3.139775330E-12,-5.494865950E-06,1.804222050E-06,-4.557342890E-06,-1.340578800E-12 +Increment 10: Step Time = 1.000,PART-1-1,391,-7.821267940E-12,-2.496195310E-12,-6.133229360E-06,1.471097220E-06,-5.077402420E-06,-1.581655810E-12 +Increment 10: Step Time = 1.000,PART-1-1,392,-9.110038240E-12,-1.706444880E-12,-6.623196440E-06,1.041797190E-06,-5.480692830E-06,-1.634769360E-12 +Increment 10: Step Time = 1.000,PART-1-1,393,-9.966121680E-12,-8.617227480E-13,-6.931774810E-06,5.403284720E-07,-5.736695580E-06,-8.802585940E-13 +Increment 10: Step Time = 1.000,PART-1-1,394,-1.699629480E-12,-9.722651290E-13,-6.388837190E-08,3.636196480E-07,-1.893153150E-07,-1.325441280E-12 +Increment 10: Step Time = 1.000,PART-1-1,395,-2.417979660E-12,-1.828138550E-12,-2.683962350E-07,7.128961100E-07,-4.274295120E-07,-1.791614680E-13 +Increment 10: Step Time = 1.000,PART-1-1,396,-2.710282300E-12,-2.563082130E-12,-6.013974600E-07,1.018178640E-06,-7.953950100E-07,1.590074640E-13 +Increment 10: Step Time = 1.000,PART-1-1,397,-3.142671670E-12,-3.146767140E-12,-1.040156350E-06,1.257826740E-06,-1.257826740E-06,1.179825520E-15 +Increment 10: Step Time = 1.000,PART-1-1,398,-3.815469640E-12,-3.497439970E-12,-1.556721600E-06,1.422182320E-06,-1.789734600E-06,-1.678118770E-13 +Increment 10: Step Time = 1.000,PART-1-1,399,-4.585947510E-12,-3.631988810E-12,-2.120968250E-06,1.506862650E-06,-2.365075030E-06,-2.290683920E-13 +Increment 10: Step Time = 1.000,PART-1-1,400,-5.352556940E-12,-3.571355230E-12,-2.701814310E-06,1.509642060E-06,-2.956205660E-06,-4.556109180E-13 +Increment 10: Step Time = 1.000,PART-1-1,401,-6.265405730E-12,-3.375762560E-12,-3.267709420E-06,1.429662010E-06,-3.533567680E-06,-9.295880040E-13 +Increment 10: Step Time = 1.000,PART-1-1,402,-7.355174630E-12,-2.972078960E-12,-3.787183910E-06,1.268287410E-06,-4.066101610E-06,-1.450643530E-12 +Increment 10: Step Time = 1.000,PART-1-1,403,-8.738671240E-12,-2.395300970E-12,-4.229968910E-06,1.030790140E-06,-4.522524700E-06,-1.699337070E-12 +Increment 10: Step Time = 1.000,PART-1-1,404,-1.003938250E-11,-1.764899420E-12,-4.568791160E-06,7.279676880E-07,-4.873585570E-06,-1.367297980E-12 +Increment 10: Step Time = 1.000,PART-1-1,405,-1.079005200E-11,-9.470665350E-13,-4.781691130E-06,3.768609820E-07,-5.095037070E-06,-7.133059880E-13 +Increment 10: Step Time = 1.000,PART-1-1,406,-1.336669920E-12,-8.292395630E-13,-2.536205200E-08,2.070437400E-07,-1.446418740E-07,-1.099716130E-12 +Increment 10: Step Time = 1.000,PART-1-1,407,-1.925051050E-12,-1.553344370E-12,-1.374863100E-07,4.299135130E-07,-3.340076940E-07,-2.496976420E-13 +Increment 10: Step Time = 1.000,PART-1-1,408,-2.187092950E-12,-2.189928790E-12,-3.341762350E-07,6.338974000E-07,-6.338974000E-07,1.139721790E-15 +Increment 10: Step Time = 1.000,PART-1-1,409,-2.561049250E-12,-2.711817530E-12,-6.013974600E-07,7.953950100E-07,-1.018178640E-06,-1.580180890E-13 +Increment 10: Step Time = 1.000,PART-1-1,410,-3.159377710E-12,-3.085509500E-12,-9.202426550E-07,9.057247890E-07,-1.465337050E-06,-4.372861120E-13 +Increment 10: Step Time = 1.000,PART-1-1,411,-3.929954890E-12,-3.287539290E-12,-1.270402890E-06,9.620906670E-07,-1.951462540E-06,-7.063597210E-13 +Increment 10: Step Time = 1.000,PART-1-1,412,-4.820627840E-12,-3.342900610E-12,-1.631377240E-06,9.639044260E-07,-2.451112550E-06,-9.583447320E-13 +Increment 10: Step Time = 1.000,PART-1-1,413,-5.810955450E-12,-3.235156070E-12,-1.982842830E-06,9.116487830E-07,-2.937789990E-06,-1.200569700E-12 +Increment 10: Step Time = 1.000,PART-1-1,414,-6.936993510E-12,-2.943278430E-12,-2.304960390E-06,8.071912700E-07,-3.384656570E-06,-1.573386280E-12 +Increment 10: Step Time = 1.000,PART-1-1,415,-8.338093240E-12,-2.468968170E-12,-2.578987050E-06,6.547065250E-07,-3.765684820E-06,-1.714213520E-12 +Increment 10: Step Time = 1.000,PART-1-1,416,-9.561749830E-12,-1.792559920E-12,-2.788287930E-06,4.615615690E-07,-4.057339990E-06,-1.212217180E-12 +Increment 10: Step Time = 1.000,PART-1-1,417,-1.023187090E-11,-9.518617450E-13,-2.919613730E-06,2.386655350E-07,-4.240639100E-06,-5.600055470E-13 +Increment 10: Step Time = 1.000,PART-1-1,418,-9.533682440E-13,-7.267016310E-13,-3.523198680E-10,9.432790190E-08,-8.836911290E-08,-7.011179830E-13 +Increment 10: Step Time = 1.000,PART-1-1,419,-1.358866040E-12,-1.360517820E-12,-4.551087330E-08,2.163689740E-07,-2.163689740E-07,-9.970007660E-16 +Increment 10: Step Time = 1.000,PART-1-1,420,-1.551278960E-12,-1.925395390E-12,-1.374863100E-07,3.340076940E-07,-4.299135130E-07,2.507004210E-13 +Increment 10: Step Time = 1.000,PART-1-1,421,-1.825107770E-12,-2.420547700E-12,-2.683962350E-07,4.274295120E-07,-7.128961100E-07,1.803150860E-13 +Increment 10: Step Time = 1.000,PART-1-1,422,-2.283611020E-12,-2.809275160E-12,-4.273163090E-07,4.907916490E-07,-1.047964930E-06,-2.472519840E-14 +Increment 10: Step Time = 1.000,PART-1-1,423,-2.916685990E-12,-3.072578220E-12,-6.029597440E-07,5.229595100E-07,-1.415114300E-06,-2.561898720E-13 +Increment 10: Step Time = 1.000,PART-1-1,424,-3.678817230E-12,-3.186720640E-12,-7.843669320E-07,5.242625890E-07,-1.793393490E-06,-4.611303200E-13 +Increment 10: Step Time = 1.000,PART-1-1,425,-4.528654360E-12,-3.134162420E-12,-9.609879040E-07,4.955470560E-07,-2.161632440E-06,-6.726946470E-13 +Increment 10: Step Time = 1.000,PART-1-1,426,-5.481189720E-12,-2.895519540E-12,-1.122728120E-06,4.382837910E-07,-2.499026550E-06,-9.600475800E-13 +Increment 10: Step Time = 1.000,PART-1-1,427,-6.608617730E-12,-2.435416670E-12,-1.260177440E-06,3.550615020E-07,-2.785929840E-06,-1.080221960E-12 +Increment 10: Step Time = 1.000,PART-1-1,428,-7.585756680E-12,-1.757239210E-12,-1.365057640E-06,2.500554220E-07,-3.004964360E-06,-7.862675900E-13 +Increment 10: Step Time = 1.000,PART-1-1,429,-8.114588860E-12,-9.234886080E-13,-1.430816500E-06,1.292098090E-07,-3.142344210E-06,-3.457798280E-13 +Increment 10: Step Time = 1.000,PART-1-1,430,-5.417662850E-13,-5.420976170E-13,7.750011300E-09,3.328533180E-08,-3.328533180E-08,-7.415687430E-17 +Increment 10: Step Time = 1.000,PART-1-1,431,-7.271025140E-13,-9.560194430E-13,-3.523198680E-10,8.836911290E-08,-9.432790190E-08,7.029654640E-13 +Increment 10: Step Time = 1.000,PART-1-1,432,-8.277872740E-13,-1.338493880E-12,-2.536205200E-08,1.446418740E-07,-2.070437400E-07,1.100663610E-12 +Increment 10: Step Time = 1.000,PART-1-1,433,-9.708659660E-13,-1.699902370E-12,-6.388837190E-08,1.893153150E-07,-3.636196480E-07,1.327852650E-12 +Increment 10: Step Time = 1.000,PART-1-1,434,-1.220153210E-12,-2.025230680E-12,-1.117349770E-07,2.193445850E-07,-5.529464600E-07,1.443037100E-12 +Increment 10: Step Time = 1.000,PART-1-1,435,-1.576421290E-12,-2.276456580E-12,-1.649768390E-07,2.345043410E-07,-7.621962370E-07,1.491051310E-12 +Increment 10: Step Time = 1.000,PART-1-1,436,-2.015832600E-12,-2.427233110E-12,-2.200548010E-07,2.352953890E-07,-9.784295120E-07,1.476495790E-12 +Increment 10: Step Time = 1.000,PART-1-1,437,-2.508174660E-12,-2.451969400E-12,-2.736801720E-07,2.223638660E-07,-1.188993560E-06,1.371028830E-12 +Increment 10: Step Time = 1.000,PART-1-1,438,-3.057524940E-12,-2.324597550E-12,-3.227702340E-07,1.965471060E-07,-1.381760400E-06,1.130666520E-12 +Increment 10: Step Time = 1.000,PART-1-1,439,-3.678208350E-12,-2.011801100E-12,-3.644745450E-07,1.591139240E-07,-1.545478200E-06,8.257565640E-13 +Increment 10: Step Time = 1.000,PART-1-1,440,-4.233672010E-12,-1.485534790E-12,-3.962906590E-07,1.119891730E-07,-1.670316010E-06,5.918247120E-13 +Increment 10: Step Time = 1.000,PART-1-1,441,-4.532977730E-12,-7.794752800E-13,-4.162370710E-07,5.784412240E-08,-1.748542330E-06,3.629911310E-13 +Increment 10: Step Time = 1.000,PART-1-1,442,-4.011793070E-12,4.011897580E-12,-2.328613660E-05,2.915862520E-06,2.915862520E-06,-6.569860710E-16 +Increment 10: Step Time = 1.000,PART-1-1,443,-3.165637020E-12,5.029487240E-12,-2.146583030E-05,4.732803520E-06,2.282629790E-06,-2.107114610E-12 +Increment 10: Step Time = 1.000,PART-1-1,444,-1.963604410E-12,3.925321440E-12,-1.931887710E-05,5.687964860E-06,1.828230550E-06,-2.219430150E-12 +Increment 10: Step Time = 1.000,PART-1-1,445,-1.441002920E-12,1.268823050E-12,-1.689656530E-05,6.232817210E-06,1.477433100E-06,-2.267640940E-12 +Increment 10: Step Time = 1.000,PART-1-1,446,-2.567179600E-13,-2.028637670E-12,-1.435667220E-05,6.454435150E-06,1.188895570E-06,-2.307556490E-12 +Increment 10: Step Time = 1.000,PART-1-1,447,2.562277650E-13,-5.273626590E-12,-1.179366430E-05,6.425269020E-06,9.426395880E-07,-1.677006730E-12 +Increment 10: Step Time = 1.000,PART-1-1,448,7.123855540E-13,-8.004647290E-12,-9.293547920E-06,6.180300720E-06,7.282584420E-07,-1.246746520E-12 +Increment 10: Step Time = 1.000,PART-1-1,449,8.747381620E-13,-9.971592130E-12,-6.931774810E-06,5.736695580E-06,5.403284720E-07,-8.796490010E-13 +Increment 10: Step Time = 1.000,PART-1-1,450,9.575160760E-13,-1.079214060E-11,-4.781691130E-06,5.095037070E-06,3.768609820E-07,-6.929021160E-13 +Increment 10: Step Time = 1.000,PART-1-1,451,9.529579820E-13,-1.023300110E-11,-2.919613730E-06,4.240639100E-06,2.386655350E-07,-5.416645860E-13 +Increment 10: Step Time = 1.000,PART-1-1,452,9.240144460E-13,-8.118917000E-12,-1.430816500E-06,3.142344210E-06,1.292098090E-07,-3.512839160E-13 +Increment 10: Step Time = 1.000,PART-1-1,453,7.903511290E-13,-4.531550480E-12,-4.162370710E-07,1.748542330E-06,5.784412240E-08,3.598722610E-13 +Increment 10: Step Time = 1.000,PART-1-1,454,-5.028831520E-12,3.166650970E-12,-2.146583030E-05,2.282629790E-06,4.732803520E-06,2.106288020E-12 +Increment 10: Step Time = 1.000,PART-1-1,455,-4.657900370E-12,4.658768600E-12,-2.017510810E-05,4.062933390E-06,4.062933390E-06,-1.186721880E-16 +Increment 10: Step Time = 1.000,PART-1-1,456,-3.233130130E-12,4.098318040E-12,-1.825705290E-05,5.177693770E-06,3.375005920E-06,-1.172122730E-12 +Increment 10: Step Time = 1.000,PART-1-1,457,-2.091407560E-12,2.165053510E-12,-1.604558930E-05,5.797064200E-06,2.779002440E-06,-2.126985870E-12 +Increment 10: Step Time = 1.000,PART-1-1,458,-3.524048730E-13,-6.325196990E-13,-1.367100960E-05,6.080296320E-06,2.260454040E-06,-2.501822530E-12 +Increment 10: Step Time = 1.000,PART-1-1,459,6.921121120E-13,-3.907793790E-12,-1.125118250E-05,6.096617200E-06,1.804437940E-06,-2.185984470E-12 +Increment 10: Step Time = 1.000,PART-1-1,460,1.360643800E-12,-6.979270890E-12,-8.875470480E-06,5.889813560E-06,1.400139810E-06,-1.994487260E-12 +Increment 10: Step Time = 1.000,PART-1-1,461,1.714133610E-12,-9.112602170E-12,-6.623196440E-06,5.480692830E-06,1.041797190E-06,-1.654375640E-12 +Increment 10: Step Time = 1.000,PART-1-1,462,1.788508580E-12,-1.005834130E-11,-4.568791160E-06,4.873585570E-06,7.279676880E-07,-1.367574890E-12 +Increment 10: Step Time = 1.000,PART-1-1,463,1.779443890E-12,-9.578919260E-12,-2.788287930E-06,4.057339990E-06,4.615615690E-07,-1.213401340E-12 +Increment 10: Step Time = 1.000,PART-1-1,464,1.761717830E-12,-7.587440220E-12,-1.365057640E-06,3.004964360E-06,2.500554220E-07,-8.057312410E-13 +Increment 10: Step Time = 1.000,PART-1-1,465,1.491442600E-12,-4.233708000E-12,-3.962906590E-07,1.670316010E-06,1.119891730E-07,5.943953550E-13 +Increment 10: Step Time = 1.000,PART-1-1,466,-3.924948040E-12,1.964476320E-12,-1.931887710E-05,1.828230550E-06,5.687964860E-06,2.218468030E-12 +Increment 10: Step Time = 1.000,PART-1-1,467,-4.097279370E-12,3.233998790E-12,-1.825705290E-05,3.375005920E-06,5.177693770E-06,1.171501160E-12 +Increment 10: Step Time = 1.000,PART-1-1,468,-3.218668170E-12,3.219158660E-12,-1.667437940E-05,4.490919310E-06,4.490919310E-06,-2.373951710E-16 +Increment 10: Step Time = 1.000,PART-1-1,469,-1.534470680E-12,1.674434140E-12,-1.473263180E-05,5.177444560E-06,3.787876950E-06,-8.592055560E-13 +Increment 10: Step Time = 1.000,PART-1-1,470,2.292377100E-14,-9.249483770E-13,-1.260225420E-05,5.520457760E-06,3.127888930E-06,-1.306449310E-12 +Increment 10: Step Time = 1.000,PART-1-1,471,1.355546640E-12,-3.583374700E-12,-1.039746890E-05,5.592580240E-06,2.521117950E-06,-1.420767480E-12 +Increment 10: Step Time = 1.000,PART-1-1,472,2.046316680E-12,-5.916929270E-12,-8.214096850E-06,5.436761060E-06,1.968775450E-06,-1.503721520E-12 +Increment 10: Step Time = 1.000,PART-1-1,473,2.502798750E-12,-7.815276200E-12,-6.133229360E-06,5.077402420E-06,1.471097220E-06,-1.600077280E-12 +Increment 10: Step Time = 1.000,PART-1-1,474,2.417849120E-12,-8.719416680E-12,-4.229968910E-06,4.522524700E-06,1.030790140E-06,-1.701126760E-12 +Increment 10: Step Time = 1.000,PART-1-1,475,2.455145250E-12,-8.317985190E-12,-2.578987050E-06,3.765684820E-06,6.547065250E-07,-1.714627570E-12 +Increment 10: Step Time = 1.000,PART-1-1,476,2.437419620E-12,-6.602297700E-12,-1.260177440E-06,2.785929840E-06,3.550615020E-07,-1.095471260E-12 +Increment 10: Step Time = 1.000,PART-1-1,477,2.015091650E-12,-3.676550380E-12,-3.644745450E-07,1.545478200E-06,1.591139240E-07,8.255369590E-13 +Increment 10: Step Time = 1.000,PART-1-1,478,-1.268645020E-12,1.442852350E-12,-1.689656530E-05,1.477433100E-06,6.232817210E-06,2.265832050E-12 +Increment 10: Step Time = 1.000,PART-1-1,479,-2.163365410E-12,2.092949730E-12,-1.604558930E-05,2.779002440E-06,5.797064200E-06,2.124748730E-12 +Increment 10: Step Time = 1.000,PART-1-1,480,-1.672677840E-12,1.535939890E-12,-1.473263180E-05,3.787876950E-06,5.177444560E-06,8.575517680E-13 +Increment 10: Step Time = 1.000,PART-1-1,481,-2.749146940E-13,2.766141270E-13,-1.308937680E-05,4.469407940E-06,4.469407940E-06,-7.411463640E-16 +Increment 10: Step Time = 1.000,PART-1-1,482,1.039821330E-12,-1.477851590E-12,-1.124007390E-05,4.846650880E-06,3.749067450E-06,-6.447996430E-13 +Increment 10: Step Time = 1.000,PART-1-1,483,2.192463880E-12,-3.700134380E-12,-9.298305490E-06,4.964503660E-06,3.054498850E-06,-1.104560560E-12 +Increment 10: Step Time = 1.000,PART-1-1,484,2.865435970E-12,-5.764777540E-12,-7.356377410E-06,4.860291480E-06,2.402772450E-06,-1.310244660E-12 +Increment 10: Step Time = 1.000,PART-1-1,485,3.149968570E-12,-6.973792640E-12,-5.494865950E-06,4.557342890E-06,1.804222050E-06,-1.340110210E-12 +Increment 10: Step Time = 1.000,PART-1-1,486,2.980048070E-12,-7.350194240E-12,-3.787183910E-06,4.066101610E-06,1.268287410E-06,-1.433209130E-12 +Increment 10: Step Time = 1.000,PART-1-1,487,2.942404780E-12,-6.932885260E-12,-2.304960390E-06,3.384656570E-06,8.071912700E-07,-1.555427550E-12 +Increment 10: Step Time = 1.000,PART-1-1,488,2.893724320E-12,-5.476518980E-12,-1.122728120E-06,2.499026550E-06,4.382837910E-07,-9.593215980E-13 +Increment 10: Step Time = 1.000,PART-1-1,489,2.325057250E-12,-3.055124080E-12,-3.227702340E-07,1.381760400E-06,1.965471060E-07,1.130006350E-12 +Increment 10: Step Time = 1.000,PART-1-1,490,2.029577030E-12,2.587829040E-13,-1.435667220E-05,1.188895570E-06,6.454435150E-06,2.305543340E-12 +Increment 10: Step Time = 1.000,PART-1-1,491,6.337231090E-13,3.552256690E-13,-1.367100960E-05,2.260454040E-06,6.080296320E-06,2.500862150E-12 +Increment 10: Step Time = 1.000,PART-1-1,492,9.256962600E-13,-2.015924690E-14,-1.260225420E-05,3.127888930E-06,5.520457760E-06,1.305220580E-12 +Increment 10: Step Time = 1.000,PART-1-1,493,1.479531340E-12,-1.036966840E-12,-1.124007390E-05,3.749067450E-06,4.846650880E-06,6.429153000E-13 +Increment 10: Step Time = 1.000,PART-1-1,494,2.379994420E-12,-2.377755760E-12,-9.684264110E-06,4.121603070E-06,4.121603070E-06,-8.265556610E-16 +Increment 10: Step Time = 1.000,PART-1-1,495,3.243994700E-12,-3.674489970E-12,-8.028688170E-06,4.264822560E-06,3.391833620E-06,-3.775789360E-13 +Increment 10: Step Time = 1.000,PART-1-1,496,3.552163770E-12,-4.814077090E-12,-6.358339760E-06,4.203226580E-06,2.687085950E-06,-7.818253420E-13 +Increment 10: Step Time = 1.000,PART-1-1,497,3.772046480E-12,-5.819614760E-12,-4.748332690E-06,3.955949070E-06,2.027434220E-06,-8.730670270E-13 +Increment 10: Step Time = 1.000,PART-1-1,498,3.379689760E-12,-6.261925870E-12,-3.267709420E-06,3.533567680E-06,1.429662010E-06,-9.246641000E-13 +Increment 10: Step Time = 1.000,PART-1-1,499,3.236266070E-12,-5.809222030E-12,-1.982842830E-06,2.937789990E-06,9.116487830E-07,-1.196231700E-12 +Increment 10: Step Time = 1.000,PART-1-1,500,3.134130540E-12,-4.525401750E-12,-9.609879040E-07,2.161632440E-06,4.955470560E-07,-6.688862790E-13 +Increment 10: Step Time = 1.000,PART-1-1,501,2.450638870E-12,-2.507146830E-12,-2.736801720E-07,1.188993560E-06,2.223638660E-07,1.371220520E-12 +Increment 10: Step Time = 1.000,PART-1-1,502,5.274110140E-12,-2.527845010E-13,-1.179366430E-05,9.426395880E-07,6.425269020E-06,1.674468180E-12 +Increment 10: Step Time = 1.000,PART-1-1,503,3.910349040E-12,-6.889255330E-13,-1.125118250E-05,1.804437940E-06,6.096617200E-06,2.185145510E-12 +Increment 10: Step Time = 1.000,PART-1-1,504,3.583764800E-12,-1.352489300E-12,-1.039746890E-05,2.521117950E-06,5.592580240E-06,1.420738420E-12 +Increment 10: Step Time = 1.000,PART-1-1,505,3.702015690E-12,-2.189407080E-12,-9.298305490E-06,3.054498850E-06,4.964503660E-06,1.102554250E-12 +Increment 10: Step Time = 1.000,PART-1-1,506,3.676855260E-12,-3.241111370E-12,-8.028688170E-06,3.391833620E-06,4.264822560E-06,3.758262960E-13 +Increment 10: Step Time = 1.000,PART-1-1,507,4.276028750E-12,-4.272648210E-12,-6.664941790E-06,3.538164260E-06,3.538164260E-06,-5.158303590E-16 +Increment 10: Step Time = 1.000,PART-1-1,508,4.107653890E-12,-5.057780580E-12,-5.279002380E-06,3.506307390E-06,2.819474500E-06,-1.633067730E-13 +Increment 10: Step Time = 1.000,PART-1-1,509,4.292834750E-12,-5.417916120E-12,-3.937373550E-06,3.309288100E-06,2.135708200E-06,-3.091378610E-13 +Increment 10: Step Time = 1.000,PART-1-1,510,3.575055180E-12,-5.351431100E-12,-2.701814310E-06,2.956205660E-06,1.509642060E-06,-4.520218560E-13 +Increment 10: Step Time = 1.000,PART-1-1,511,3.345097640E-12,-4.819549710E-12,-1.631377240E-06,2.451112550E-06,9.639044260E-07,-9.540214760E-13 +Increment 10: Step Time = 1.000,PART-1-1,512,3.187332340E-12,-3.676768530E-12,-7.843669320E-07,1.793393490E-06,5.242625890E-07,-4.562716310E-13 +Increment 10: Step Time = 1.000,PART-1-1,513,2.426499970E-12,-2.014473870E-12,-2.200548010E-07,9.784295120E-07,2.352953890E-07,1.479454150E-12 +Increment 10: Step Time = 1.000,PART-1-1,514,8.007160910E-12,-7.084653500E-13,-9.293547920E-06,7.282584420E-07,6.180300720E-06,1.245435610E-12 +Increment 10: Step Time = 1.000,PART-1-1,515,6.979515490E-12,-1.356574790E-12,-8.875470480E-06,1.400139810E-06,5.889813560E-06,1.995057980E-12 +Increment 10: Step Time = 1.000,PART-1-1,516,5.917673040E-12,-2.042385570E-12,-8.214096850E-06,1.968775450E-06,5.436761060E-06,1.501254740E-12 +Increment 10: Step Time = 1.000,PART-1-1,517,5.767494550E-12,-2.861856150E-12,-7.356377410E-06,2.402772450E-06,4.860291480E-06,1.307332060E-12 +Increment 10: Step Time = 1.000,PART-1-1,518,4.817403850E-12,-3.548873650E-12,-6.358339760E-06,2.687085950E-06,4.203226580E-06,7.818321730E-13 +Increment 10: Step Time = 1.000,PART-1-1,519,5.059731280E-12,-4.104139770E-12,-5.279002380E-06,2.819474500E-06,3.506307390E-06,1.641224590E-13 +Increment 10: Step Time = 1.000,PART-1-1,520,4.565687670E-12,-4.563101630E-12,-4.176552470E-06,2.805069240E-06,2.805069240E-06,-6.030166780E-16 +Increment 10: Step Time = 1.000,PART-1-1,521,4.454682280E-12,-4.783908510E-12,-3.106383700E-06,2.651346680E-06,2.129736910E-06,-1.362355190E-13 +Increment 10: Step Time = 1.000,PART-1-1,522,3.632858550E-12,-4.588234740E-12,-2.120968250E-06,2.365075030E-06,1.506862650E-06,-2.267967040E-13 +Increment 10: Step Time = 1.000,PART-1-1,523,3.289959880E-12,-3.931933340E-12,-1.270402890E-06,1.951462540E-06,9.620906670E-07,-7.036918790E-13 +Increment 10: Step Time = 1.000,PART-1-1,524,3.072833650E-12,-2.917692780E-12,-6.029597440E-07,1.415114300E-06,5.229595100E-07,-2.515946980E-13 +Increment 10: Step Time = 1.000,PART-1-1,525,2.276186400E-12,-1.578272990E-12,-1.649768390E-07,7.621962370E-07,2.345043410E-07,1.493394060E-12 +Increment 10: Step Time = 1.000,PART-1-1,526,9.971777740E-12,-8.702070100E-13,-6.931774810E-06,5.403284720E-07,5.736695580E-06,8.777472560E-13 +Increment 10: Step Time = 1.000,PART-1-1,527,9.115593700E-12,-1.710230050E-12,-6.623196440E-06,1.041797190E-06,5.480692830E-06,1.651890760E-12 +Increment 10: Step Time = 1.000,PART-1-1,528,7.817996250E-12,-2.498487740E-12,-6.133229360E-06,1.471097220E-06,5.077402420E-06,1.600465200E-12 +Increment 10: Step Time = 1.000,PART-1-1,529,6.975374270E-12,-3.145208270E-12,-5.494865950E-06,1.804222050E-06,4.557342890E-06,1.338620620E-12 +Increment 10: Step Time = 1.000,PART-1-1,530,5.824092080E-12,-3.768849380E-12,-4.748332690E-06,2.027434220E-06,3.955949070E-06,8.721384070E-13 +Increment 10: Step Time = 1.000,PART-1-1,531,5.420009930E-12,-4.289941670E-12,-3.937373550E-06,2.135708200E-06,3.309288100E-06,3.099190830E-13 +Increment 10: Step Time = 1.000,PART-1-1,532,4.787599570E-12,-4.451974380E-12,-3.106383700E-06,2.129736910E-06,2.651346680E-06,1.363172410E-13 +Increment 10: Step Time = 1.000,PART-1-1,533,4.265349360E-12,-4.262683520E-12,-2.298847450E-06,2.012960980E-06,2.012960980E-06,3.018094330E-16 +Increment 10: Step Time = 1.000,PART-1-1,534,3.498477770E-12,-3.819044040E-12,-1.556721600E-06,1.789734600E-06,1.422182320E-06,-1.663426610E-13 +Increment 10: Step Time = 1.000,PART-1-1,535,3.087178520E-12,-3.162503030E-12,-9.202426550E-07,1.465337050E-06,9.057247890E-07,-4.379328930E-13 +Increment 10: Step Time = 1.000,PART-1-1,536,2.812391810E-12,-2.286327380E-12,-4.273163090E-07,1.047964930E-06,4.907916490E-07,-2.162959790E-14 +Increment 10: Step Time = 1.000,PART-1-1,537,2.025531220E-12,-1.222214500E-12,-1.117349770E-07,5.529464600E-07,2.193445850E-07,1.444523650E-12 +Increment 10: Step Time = 1.000,PART-1-1,538,1.079274520E-11,-9.516824180E-13,-4.781691130E-06,3.768609820E-07,5.095037070E-06,6.905079810E-13 +Increment 10: Step Time = 1.000,PART-1-1,539,1.005905860E-11,-1.783273180E-12,-4.568791160E-06,7.279676880E-07,4.873585570E-06,1.364809090E-12 +Increment 10: Step Time = 1.000,PART-1-1,540,8.721025640E-12,-2.413063020E-12,-4.229968910E-06,1.030790140E-06,4.522524700E-06,1.698503640E-12 +Increment 10: Step Time = 1.000,PART-1-1,541,7.353111180E-12,-2.975666370E-12,-3.787183910E-06,1.268287410E-06,4.066101610E-06,1.431998510E-12 +Increment 10: Step Time = 1.000,PART-1-1,542,6.265025390E-12,-3.375605130E-12,-3.267709420E-06,1.429662010E-06,3.533567680E-06,9.233308560E-13 +Increment 10: Step Time = 1.000,PART-1-1,543,5.356264480E-12,-3.571658590E-12,-2.701814310E-06,1.509642060E-06,2.956205660E-06,4.531161960E-13 +Increment 10: Step Time = 1.000,PART-1-1,544,4.589107310E-12,-3.631069400E-12,-2.120968250E-06,1.506862650E-06,2.365075030E-06,2.289901940E-13 +Increment 10: Step Time = 1.000,PART-1-1,545,3.820136050E-12,-3.495749050E-12,-1.556721600E-06,1.422182320E-06,1.789734600E-06,1.665148870E-13 +Increment 10: Step Time = 1.000,PART-1-1,546,3.146803350E-12,-3.146191860E-12,-1.040156350E-06,1.257826740E-06,1.257826740E-06,2.166217280E-16 +Increment 10: Step Time = 1.000,PART-1-1,547,2.712980450E-12,-2.564124690E-12,-6.013974600E-07,1.018178640E-06,7.953950100E-07,-1.596069600E-13 +Increment 10: Step Time = 1.000,PART-1-1,548,2.421551020E-12,-1.829490340E-12,-2.683962350E-07,7.128961100E-07,4.274295120E-07,1.792254900E-13 +Increment 10: Step Time = 1.000,PART-1-1,549,1.701706810E-12,-9.726053510E-13,-6.388837190E-08,3.636196480E-07,1.893153150E-07,1.326739170E-12 +Increment 10: Step Time = 1.000,PART-1-1,550,1.023592060E-11,-9.446010600E-13,-2.919613730E-06,2.386655350E-07,4.240639100E-06,5.379869180E-13 +Increment 10: Step Time = 1.000,PART-1-1,551,9.580981840E-12,-1.772116310E-12,-2.788287930E-06,4.615615690E-07,4.057339990E-06,1.211368900E-12 +Increment 10: Step Time = 1.000,PART-1-1,552,8.319622770E-12,-2.448850580E-12,-2.578987050E-06,6.547065250E-07,3.765684820E-06,1.715034150E-12 +Increment 10: Step Time = 1.000,PART-1-1,553,6.933257790E-12,-2.937140110E-12,-2.304960390E-06,8.071912700E-07,3.384656570E-06,1.554103200E-12 +Increment 10: Step Time = 1.000,PART-1-1,554,5.810939840E-12,-3.232590190E-12,-1.982842830E-06,9.116487830E-07,2.937789990E-06,1.194721840E-12 +Increment 10: Step Time = 1.000,PART-1-1,555,4.821652630E-12,-3.341611710E-12,-1.631377240E-06,9.639044260E-07,2.451112550E-06,9.536951310E-13 +Increment 10: Step Time = 1.000,PART-1-1,556,3.933384870E-12,-3.286789030E-12,-1.270402890E-06,9.620906670E-07,1.951462540E-06,7.051198280E-13 +Increment 10: Step Time = 1.000,PART-1-1,557,3.161372860E-12,-3.084074010E-12,-9.202426550E-07,9.057247890E-07,1.465337050E-06,4.378456960E-13 +Increment 10: Step Time = 1.000,PART-1-1,558,2.565304740E-12,-2.712086410E-12,-6.013974600E-07,7.953950100E-07,1.018178640E-06,1.579476970E-13 +Increment 10: Step Time = 1.000,PART-1-1,559,2.188959520E-12,-2.189038010E-12,-3.341762350E-07,6.338974000E-07,6.338974000E-07,-1.650626760E-15 +Increment 10: Step Time = 1.000,PART-1-1,560,1.927665930E-12,-1.552701540E-12,-1.374863100E-07,4.299135130E-07,3.340076940E-07,2.485550830E-13 +Increment 10: Step Time = 1.000,PART-1-1,561,1.337560920E-12,-8.271951920E-13,-2.536205200E-08,2.070437400E-07,1.446418740E-07,1.101002750E-12 +Increment 10: Step Time = 1.000,PART-1-1,562,8.122329200E-12,-9.137562670E-13,-1.430816500E-06,1.292098090E-07,3.142344210E-06,3.440563260E-13 +Increment 10: Step Time = 1.000,PART-1-1,563,7.591945300E-12,-1.752093050E-12,-1.365057640E-06,2.500554220E-07,3.004964360E-06,8.072037500E-13 +Increment 10: Step Time = 1.000,PART-1-1,564,6.602488090E-12,-2.431203460E-12,-1.260177440E-06,3.550615020E-07,2.785929840E-06,1.099997260E-12 +Increment 10: Step Time = 1.000,PART-1-1,565,5.475322020E-12,-2.887377840E-12,-1.122728120E-06,4.382837910E-07,2.499026550E-06,9.588583180E-13 +Increment 10: Step Time = 1.000,PART-1-1,566,4.528241500E-12,-3.129654090E-12,-9.609879040E-07,4.955470560E-07,2.161632440E-06,6.660167750E-13 +Increment 10: Step Time = 1.000,PART-1-1,567,3.681070640E-12,-3.183412080E-12,-7.843669320E-07,5.242625890E-07,1.793393490E-06,4.592989400E-13 +Increment 10: Step Time = 1.000,PART-1-1,568,2.917687140E-12,-3.070282530E-12,-6.029597440E-07,5.229595100E-07,1.415114300E-06,2.550439510E-13 +Increment 10: Step Time = 1.000,PART-1-1,569,2.287250900E-12,-2.808855580E-12,-4.273163090E-07,4.907916490E-07,1.047964930E-06,2.348876060E-14 +Increment 10: Step Time = 1.000,PART-1-1,570,1.827185320E-12,-2.419839940E-12,-2.683962350E-07,4.274295120E-07,7.128961100E-07,-1.792136450E-13 +Increment 10: Step Time = 1.000,PART-1-1,571,1.552572310E-12,-1.924191060E-12,-1.374863100E-07,3.340076940E-07,4.299135130E-07,-2.510061390E-13 +Increment 10: Step Time = 1.000,PART-1-1,572,1.360165560E-12,-1.359298740E-12,-4.551087330E-08,2.163689740E-07,2.163689740E-07,-1.006393940E-15 +Increment 10: Step Time = 1.000,PART-1-1,573,9.569519660E-13,-7.265311940E-13,-3.523198680E-10,9.432790190E-08,8.836911290E-08,7.032130950E-13 +Increment 10: Step Time = 1.000,PART-1-1,574,4.536817540E-12,-7.753369340E-13,-4.162370710E-07,5.784412240E-08,1.748542330E-06,-3.569228790E-13 +Increment 10: Step Time = 1.000,PART-1-1,575,4.233411360E-12,-1.483330280E-12,-3.962906590E-07,1.119891730E-07,1.670316010E-06,-5.864615980E-13 +Increment 10: Step Time = 1.000,PART-1-1,576,3.679102160E-12,-2.009859730E-12,-3.644745450E-07,1.591139240E-07,1.545478200E-06,-8.212369590E-13 +Increment 10: Step Time = 1.000,PART-1-1,577,3.055074860E-12,-2.321922170E-12,-3.227702340E-07,1.965471060E-07,1.381760400E-06,-1.122752060E-12 +Increment 10: Step Time = 1.000,PART-1-1,578,2.505242110E-12,-2.448043500E-12,-2.736801720E-07,2.223638660E-07,1.188993560E-06,-1.368601850E-12 +Increment 10: Step Time = 1.000,PART-1-1,579,2.014351790E-12,-2.424887980E-12,-2.200548010E-07,2.352953890E-07,9.784295120E-07,-1.478013670E-12 +Increment 10: Step Time = 1.000,PART-1-1,580,1.578640760E-12,-2.275624570E-12,-1.649768390E-07,2.345043410E-07,7.621962370E-07,-1.491418210E-12 +Increment 10: Step Time = 1.000,PART-1-1,581,1.221920350E-12,-2.023853740E-12,-1.117349770E-07,2.193445850E-07,5.529464600E-07,-1.442611220E-12 +Increment 10: Step Time = 1.000,PART-1-1,582,9.729181440E-13,-1.699563120E-12,-6.388837190E-08,1.893153150E-07,3.636196480E-07,-1.326686160E-12 +Increment 10: Step Time = 1.000,PART-1-1,583,8.283531200E-13,-1.336279940E-12,-2.536205200E-08,1.446418740E-07,2.070437400E-07,-1.097490800E-12 +Increment 10: Step Time = 1.000,PART-1-1,584,7.251905240E-13,-9.556255530E-13,-3.523198680E-10,8.836911290E-08,9.432790190E-08,-7.015001640E-13 +Increment 10: Step Time = 1.000,PART-1-1,585,5.410511990E-13,-5.415084070E-13,7.750011300E-09,3.328533180E-08,3.328533180E-08,-9.262992430E-16 +Increment 10: Step Time = 1.000,PART-1-1,586,4.011793070E-12,-4.011897580E-12,-2.328613660E-05,-2.915862520E-06,-2.915862520E-06,-6.569860710E-16 +Increment 10: Step Time = 1.000,PART-1-1,587,3.165637020E-12,-5.029487240E-12,-2.146583030E-05,-4.732803520E-06,-2.282629790E-06,-2.107114610E-12 +Increment 10: Step Time = 1.000,PART-1-1,588,1.963604410E-12,-3.925321440E-12,-1.931887710E-05,-5.687964860E-06,-1.828230550E-06,-2.219430150E-12 +Increment 10: Step Time = 1.000,PART-1-1,589,1.441002920E-12,-1.268823050E-12,-1.689656530E-05,-6.232817210E-06,-1.477433100E-06,-2.267640940E-12 +Increment 10: Step Time = 1.000,PART-1-1,590,2.567179600E-13,2.028637670E-12,-1.435667220E-05,-6.454435150E-06,-1.188895570E-06,-2.307556490E-12 +Increment 10: Step Time = 1.000,PART-1-1,591,-2.562277650E-13,5.273626590E-12,-1.179366430E-05,-6.425269020E-06,-9.426395880E-07,-1.677006730E-12 +Increment 10: Step Time = 1.000,PART-1-1,592,-7.123855540E-13,8.004647290E-12,-9.293547920E-06,-6.180300720E-06,-7.282584420E-07,-1.246746520E-12 +Increment 10: Step Time = 1.000,PART-1-1,593,-8.747381620E-13,9.971592130E-12,-6.931774810E-06,-5.736695580E-06,-5.403284720E-07,-8.796490010E-13 +Increment 10: Step Time = 1.000,PART-1-1,594,-9.575160760E-13,1.079214060E-11,-4.781691130E-06,-5.095037070E-06,-3.768609820E-07,-6.929021160E-13 +Increment 10: Step Time = 1.000,PART-1-1,595,-9.529579820E-13,1.023300110E-11,-2.919613730E-06,-4.240639100E-06,-2.386655350E-07,-5.416645860E-13 +Increment 10: Step Time = 1.000,PART-1-1,596,-9.240144460E-13,8.118917000E-12,-1.430816500E-06,-3.142344210E-06,-1.292098090E-07,-3.512839160E-13 +Increment 10: Step Time = 1.000,PART-1-1,597,-7.903511290E-13,4.531550480E-12,-4.162370710E-07,-1.748542330E-06,-5.784412240E-08,3.598722610E-13 +Increment 10: Step Time = 1.000,PART-1-1,598,5.028831520E-12,-3.166650970E-12,-2.146583030E-05,-2.282629790E-06,-4.732803520E-06,2.106288020E-12 +Increment 10: Step Time = 1.000,PART-1-1,599,4.657900370E-12,-4.658768600E-12,-2.017510810E-05,-4.062933390E-06,-4.062933390E-06,-1.186721750E-16 +Increment 10: Step Time = 1.000,PART-1-1,600,3.233130130E-12,-4.098318040E-12,-1.825705290E-05,-5.177693770E-06,-3.375005920E-06,-1.172122730E-12 +Increment 10: Step Time = 1.000,PART-1-1,601,2.091407560E-12,-2.165053510E-12,-1.604558930E-05,-5.797064200E-06,-2.779002440E-06,-2.126985870E-12 +Increment 10: Step Time = 1.000,PART-1-1,602,3.524048730E-13,6.325196990E-13,-1.367100960E-05,-6.080296320E-06,-2.260454040E-06,-2.501822530E-12 +Increment 10: Step Time = 1.000,PART-1-1,603,-6.921121120E-13,3.907793790E-12,-1.125118250E-05,-6.096617200E-06,-1.804437940E-06,-2.185984470E-12 +Increment 10: Step Time = 1.000,PART-1-1,604,-1.360643800E-12,6.979270890E-12,-8.875470480E-06,-5.889813560E-06,-1.400139810E-06,-1.994487260E-12 +Increment 10: Step Time = 1.000,PART-1-1,605,-1.714133610E-12,9.112602170E-12,-6.623196440E-06,-5.480692830E-06,-1.041797190E-06,-1.654375640E-12 +Increment 10: Step Time = 1.000,PART-1-1,606,-1.788508580E-12,1.005834130E-11,-4.568791160E-06,-4.873585570E-06,-7.279676880E-07,-1.367574890E-12 +Increment 10: Step Time = 1.000,PART-1-1,607,-1.779443890E-12,9.578919260E-12,-2.788287930E-06,-4.057339990E-06,-4.615615690E-07,-1.213401340E-12 +Increment 10: Step Time = 1.000,PART-1-1,608,-1.761717830E-12,7.587440220E-12,-1.365057640E-06,-3.004964360E-06,-2.500554220E-07,-8.057312410E-13 +Increment 10: Step Time = 1.000,PART-1-1,609,-1.491442600E-12,4.233708000E-12,-3.962906590E-07,-1.670316010E-06,-1.119891730E-07,5.943953550E-13 +Increment 10: Step Time = 1.000,PART-1-1,610,3.924948040E-12,-1.964476320E-12,-1.931887710E-05,-1.828230550E-06,-5.687964860E-06,2.218468030E-12 +Increment 10: Step Time = 1.000,PART-1-1,611,4.097279370E-12,-3.233998790E-12,-1.825705290E-05,-3.375005920E-06,-5.177693770E-06,1.171501160E-12 +Increment 10: Step Time = 1.000,PART-1-1,612,3.218668170E-12,-3.219158660E-12,-1.667437940E-05,-4.490919310E-06,-4.490919310E-06,-2.373951710E-16 +Increment 10: Step Time = 1.000,PART-1-1,613,1.534470680E-12,-1.674434140E-12,-1.473263180E-05,-5.177444560E-06,-3.787876950E-06,-8.592055560E-13 +Increment 10: Step Time = 1.000,PART-1-1,614,-2.292377100E-14,9.249483770E-13,-1.260225420E-05,-5.520457760E-06,-3.127888930E-06,-1.306449310E-12 +Increment 10: Step Time = 1.000,PART-1-1,615,-1.355546640E-12,3.583374700E-12,-1.039746890E-05,-5.592580240E-06,-2.521117950E-06,-1.420767480E-12 +Increment 10: Step Time = 1.000,PART-1-1,616,-2.046316680E-12,5.916929270E-12,-8.214096850E-06,-5.436761060E-06,-1.968775450E-06,-1.503721520E-12 +Increment 10: Step Time = 1.000,PART-1-1,617,-2.502798750E-12,7.815276200E-12,-6.133229360E-06,-5.077402420E-06,-1.471097220E-06,-1.600077280E-12 +Increment 10: Step Time = 1.000,PART-1-1,618,-2.417849120E-12,8.719416680E-12,-4.229968910E-06,-4.522524700E-06,-1.030790140E-06,-1.701126760E-12 +Increment 10: Step Time = 1.000,PART-1-1,619,-2.455145250E-12,8.317985190E-12,-2.578987050E-06,-3.765684820E-06,-6.547065250E-07,-1.714627570E-12 +Increment 10: Step Time = 1.000,PART-1-1,620,-2.437419620E-12,6.602297700E-12,-1.260177440E-06,-2.785929840E-06,-3.550615020E-07,-1.095471260E-12 +Increment 10: Step Time = 1.000,PART-1-1,621,-2.015091650E-12,3.676550380E-12,-3.644745450E-07,-1.545478200E-06,-1.591139240E-07,8.255369590E-13 +Increment 10: Step Time = 1.000,PART-1-1,622,1.268645020E-12,-1.442852350E-12,-1.689656530E-05,-1.477433100E-06,-6.232817210E-06,2.265832050E-12 +Increment 10: Step Time = 1.000,PART-1-1,623,2.163365410E-12,-2.092949730E-12,-1.604558930E-05,-2.779002440E-06,-5.797064200E-06,2.124748730E-12 +Increment 10: Step Time = 1.000,PART-1-1,624,1.672677840E-12,-1.535939890E-12,-1.473263180E-05,-3.787876950E-06,-5.177444560E-06,8.575517680E-13 +Increment 10: Step Time = 1.000,PART-1-1,625,2.749146940E-13,-2.766141270E-13,-1.308937680E-05,-4.469407940E-06,-4.469407940E-06,-7.411463640E-16 +Increment 10: Step Time = 1.000,PART-1-1,626,-1.039821330E-12,1.477851590E-12,-1.124007390E-05,-4.846650880E-06,-3.749067450E-06,-6.447996430E-13 +Increment 10: Step Time = 1.000,PART-1-1,627,-2.192463880E-12,3.700134380E-12,-9.298305490E-06,-4.964503660E-06,-3.054498850E-06,-1.104560560E-12 +Increment 10: Step Time = 1.000,PART-1-1,628,-2.865435970E-12,5.764777540E-12,-7.356377410E-06,-4.860291480E-06,-2.402772450E-06,-1.310244660E-12 +Increment 10: Step Time = 1.000,PART-1-1,629,-3.149968570E-12,6.973792640E-12,-5.494865950E-06,-4.557342890E-06,-1.804222050E-06,-1.340110210E-12 +Increment 10: Step Time = 1.000,PART-1-1,630,-2.980048070E-12,7.350194240E-12,-3.787183910E-06,-4.066101610E-06,-1.268287410E-06,-1.433209130E-12 +Increment 10: Step Time = 1.000,PART-1-1,631,-2.942404780E-12,6.932885260E-12,-2.304960390E-06,-3.384656570E-06,-8.071912700E-07,-1.555427550E-12 +Increment 10: Step Time = 1.000,PART-1-1,632,-2.893724320E-12,5.476518980E-12,-1.122728120E-06,-2.499026550E-06,-4.382837910E-07,-9.593215980E-13 +Increment 10: Step Time = 1.000,PART-1-1,633,-2.325057250E-12,3.055124080E-12,-3.227702340E-07,-1.381760400E-06,-1.965471060E-07,1.130006350E-12 +Increment 10: Step Time = 1.000,PART-1-1,634,-2.029577030E-12,-2.587829040E-13,-1.435667220E-05,-1.188895570E-06,-6.454435150E-06,2.305543340E-12 +Increment 10: Step Time = 1.000,PART-1-1,635,-6.337231090E-13,-3.552256690E-13,-1.367100960E-05,-2.260454040E-06,-6.080296320E-06,2.500862150E-12 +Increment 10: Step Time = 1.000,PART-1-1,636,-9.256962600E-13,2.015924690E-14,-1.260225420E-05,-3.127888930E-06,-5.520457760E-06,1.305220580E-12 +Increment 10: Step Time = 1.000,PART-1-1,637,-1.479531340E-12,1.036966840E-12,-1.124007390E-05,-3.749067450E-06,-4.846650880E-06,6.429153000E-13 +Increment 10: Step Time = 1.000,PART-1-1,638,-2.379994420E-12,2.377755760E-12,-9.684264110E-06,-4.121603070E-06,-4.121603070E-06,-8.265556610E-16 +Increment 10: Step Time = 1.000,PART-1-1,639,-3.243994700E-12,3.674489970E-12,-8.028688170E-06,-4.264822560E-06,-3.391833620E-06,-3.775789360E-13 +Increment 10: Step Time = 1.000,PART-1-1,640,-3.552163770E-12,4.814077090E-12,-6.358339760E-06,-4.203226580E-06,-2.687085950E-06,-7.818253420E-13 +Increment 10: Step Time = 1.000,PART-1-1,641,-3.772046480E-12,5.819614760E-12,-4.748332690E-06,-3.955949070E-06,-2.027434220E-06,-8.730670270E-13 +Increment 10: Step Time = 1.000,PART-1-1,642,-3.379689760E-12,6.261925870E-12,-3.267709420E-06,-3.533567680E-06,-1.429662010E-06,-9.246641000E-13 +Increment 10: Step Time = 1.000,PART-1-1,643,-3.236266070E-12,5.809222030E-12,-1.982842830E-06,-2.937789990E-06,-9.116487830E-07,-1.196231700E-12 +Increment 10: Step Time = 1.000,PART-1-1,644,-3.134130540E-12,4.525401750E-12,-9.609879040E-07,-2.161632440E-06,-4.955470560E-07,-6.688862790E-13 +Increment 10: Step Time = 1.000,PART-1-1,645,-2.450638870E-12,2.507146830E-12,-2.736801720E-07,-1.188993560E-06,-2.223638660E-07,1.371220520E-12 +Increment 10: Step Time = 1.000,PART-1-1,646,-5.274110140E-12,2.527845010E-13,-1.179366430E-05,-9.426395880E-07,-6.425269020E-06,1.674468180E-12 +Increment 10: Step Time = 1.000,PART-1-1,647,-3.910349040E-12,6.889255330E-13,-1.125118250E-05,-1.804437940E-06,-6.096617200E-06,2.185145510E-12 +Increment 10: Step Time = 1.000,PART-1-1,648,-3.583764800E-12,1.352489300E-12,-1.039746890E-05,-2.521117950E-06,-5.592580240E-06,1.420738420E-12 +Increment 10: Step Time = 1.000,PART-1-1,649,-3.702015690E-12,2.189407080E-12,-9.298305490E-06,-3.054498850E-06,-4.964503660E-06,1.102554250E-12 +Increment 10: Step Time = 1.000,PART-1-1,650,-3.676855260E-12,3.241111370E-12,-8.028688170E-06,-3.391833620E-06,-4.264822560E-06,3.758262960E-13 +Increment 10: Step Time = 1.000,PART-1-1,651,-4.276028750E-12,4.272648210E-12,-6.664941790E-06,-3.538164260E-06,-3.538164260E-06,-5.158303590E-16 +Increment 10: Step Time = 1.000,PART-1-1,652,-4.107653890E-12,5.057780580E-12,-5.279002380E-06,-3.506307390E-06,-2.819474500E-06,-1.633067730E-13 +Increment 10: Step Time = 1.000,PART-1-1,653,-4.292834750E-12,5.417916120E-12,-3.937373550E-06,-3.309288100E-06,-2.135708200E-06,-3.091378610E-13 +Increment 10: Step Time = 1.000,PART-1-1,654,-3.575055180E-12,5.351431100E-12,-2.701814310E-06,-2.956205660E-06,-1.509642060E-06,-4.520218560E-13 +Increment 10: Step Time = 1.000,PART-1-1,655,-3.345097640E-12,4.819549710E-12,-1.631377240E-06,-2.451112550E-06,-9.639044260E-07,-9.540214760E-13 +Increment 10: Step Time = 1.000,PART-1-1,656,-3.187332340E-12,3.676768530E-12,-7.843669320E-07,-1.793393490E-06,-5.242625890E-07,-4.562716310E-13 +Increment 10: Step Time = 1.000,PART-1-1,657,-2.426499970E-12,2.014473870E-12,-2.200548010E-07,-9.784295120E-07,-2.352953890E-07,1.479454150E-12 +Increment 10: Step Time = 1.000,PART-1-1,658,-8.007160910E-12,7.084653500E-13,-9.293547920E-06,-7.282584420E-07,-6.180300720E-06,1.245435610E-12 +Increment 10: Step Time = 1.000,PART-1-1,659,-6.979515490E-12,1.356574790E-12,-8.875470480E-06,-1.400139810E-06,-5.889813560E-06,1.995057980E-12 +Increment 10: Step Time = 1.000,PART-1-1,660,-5.917673040E-12,2.042385570E-12,-8.214096850E-06,-1.968775450E-06,-5.436761060E-06,1.501254740E-12 +Increment 10: Step Time = 1.000,PART-1-1,661,-5.767494550E-12,2.861856150E-12,-7.356377410E-06,-2.402772450E-06,-4.860291480E-06,1.307332060E-12 +Increment 10: Step Time = 1.000,PART-1-1,662,-4.817403850E-12,3.548873650E-12,-6.358339760E-06,-2.687085950E-06,-4.203226580E-06,7.818321730E-13 +Increment 10: Step Time = 1.000,PART-1-1,663,-5.059731280E-12,4.104139770E-12,-5.279002380E-06,-2.819474500E-06,-3.506307390E-06,1.641224590E-13 +Increment 10: Step Time = 1.000,PART-1-1,664,-4.565687670E-12,4.563101630E-12,-4.176552470E-06,-2.805069240E-06,-2.805069240E-06,-6.030166780E-16 +Increment 10: Step Time = 1.000,PART-1-1,665,-4.454682280E-12,4.783908510E-12,-3.106383700E-06,-2.651346680E-06,-2.129736910E-06,-1.362355190E-13 +Increment 10: Step Time = 1.000,PART-1-1,666,-3.632858550E-12,4.588234740E-12,-2.120968250E-06,-2.365075030E-06,-1.506862650E-06,-2.267967040E-13 +Increment 10: Step Time = 1.000,PART-1-1,667,-3.289959880E-12,3.931933340E-12,-1.270402890E-06,-1.951462540E-06,-9.620906670E-07,-7.036918790E-13 +Increment 10: Step Time = 1.000,PART-1-1,668,-3.072833650E-12,2.917692780E-12,-6.029597440E-07,-1.415114300E-06,-5.229595100E-07,-2.515946980E-13 +Increment 10: Step Time = 1.000,PART-1-1,669,-2.276186400E-12,1.578272990E-12,-1.649768390E-07,-7.621962370E-07,-2.345043410E-07,1.493394060E-12 +Increment 10: Step Time = 1.000,PART-1-1,670,-9.971777740E-12,8.702070100E-13,-6.931774810E-06,-5.403284720E-07,-5.736695580E-06,8.777472560E-13 +Increment 10: Step Time = 1.000,PART-1-1,671,-9.115593700E-12,1.710230050E-12,-6.623196440E-06,-1.041797190E-06,-5.480692830E-06,1.651890760E-12 +Increment 10: Step Time = 1.000,PART-1-1,672,-7.817996250E-12,2.498487740E-12,-6.133229360E-06,-1.471097220E-06,-5.077402420E-06,1.600465200E-12 +Increment 10: Step Time = 1.000,PART-1-1,673,-6.975374270E-12,3.145208270E-12,-5.494865950E-06,-1.804222050E-06,-4.557342890E-06,1.338620620E-12 +Increment 10: Step Time = 1.000,PART-1-1,674,-5.824092080E-12,3.768849380E-12,-4.748332690E-06,-2.027434220E-06,-3.955949070E-06,8.721384070E-13 +Increment 10: Step Time = 1.000,PART-1-1,675,-5.420009930E-12,4.289941670E-12,-3.937373550E-06,-2.135708200E-06,-3.309288100E-06,3.099190830E-13 +Increment 10: Step Time = 1.000,PART-1-1,676,-4.787599570E-12,4.451974380E-12,-3.106383700E-06,-2.129736910E-06,-2.651346680E-06,1.363172410E-13 +Increment 10: Step Time = 1.000,PART-1-1,677,-4.265349360E-12,4.262683520E-12,-2.298847450E-06,-2.012960980E-06,-2.012960980E-06,3.018094330E-16 +Increment 10: Step Time = 1.000,PART-1-1,678,-3.498477770E-12,3.819044040E-12,-1.556721600E-06,-1.789734600E-06,-1.422182320E-06,-1.663426610E-13 +Increment 10: Step Time = 1.000,PART-1-1,679,-3.087178520E-12,3.162503030E-12,-9.202426550E-07,-1.465337050E-06,-9.057247890E-07,-4.379328930E-13 +Increment 10: Step Time = 1.000,PART-1-1,680,-2.812391810E-12,2.286327380E-12,-4.273163090E-07,-1.047964930E-06,-4.907916490E-07,-2.162959790E-14 +Increment 10: Step Time = 1.000,PART-1-1,681,-2.025531220E-12,1.222214500E-12,-1.117349770E-07,-5.529464600E-07,-2.193445850E-07,1.444523650E-12 +Increment 10: Step Time = 1.000,PART-1-1,682,-1.079274520E-11,9.516824180E-13,-4.781691130E-06,-3.768609820E-07,-5.095037070E-06,6.905079810E-13 +Increment 10: Step Time = 1.000,PART-1-1,683,-1.005905860E-11,1.783273180E-12,-4.568791160E-06,-7.279676880E-07,-4.873585570E-06,1.364809090E-12 +Increment 10: Step Time = 1.000,PART-1-1,684,-8.721025640E-12,2.413063020E-12,-4.229968910E-06,-1.030790140E-06,-4.522524700E-06,1.698503640E-12 +Increment 10: Step Time = 1.000,PART-1-1,685,-7.353111180E-12,2.975666370E-12,-3.787183910E-06,-1.268287410E-06,-4.066101610E-06,1.431998510E-12 +Increment 10: Step Time = 1.000,PART-1-1,686,-6.265025390E-12,3.375605130E-12,-3.267709420E-06,-1.429662010E-06,-3.533567680E-06,9.233308560E-13 +Increment 10: Step Time = 1.000,PART-1-1,687,-5.356264480E-12,3.571658590E-12,-2.701814310E-06,-1.509642060E-06,-2.956205660E-06,4.531161960E-13 +Increment 10: Step Time = 1.000,PART-1-1,688,-4.589107310E-12,3.631069400E-12,-2.120968250E-06,-1.506862650E-06,-2.365075030E-06,2.289901940E-13 +Increment 10: Step Time = 1.000,PART-1-1,689,-3.820136050E-12,3.495749050E-12,-1.556721600E-06,-1.422182320E-06,-1.789734600E-06,1.665148870E-13 +Increment 10: Step Time = 1.000,PART-1-1,690,-3.146803350E-12,3.146191860E-12,-1.040156350E-06,-1.257826740E-06,-1.257826740E-06,2.166217150E-16 +Increment 10: Step Time = 1.000,PART-1-1,691,-2.712980450E-12,2.564124690E-12,-6.013974600E-07,-1.018178640E-06,-7.953950100E-07,-1.596069600E-13 +Increment 10: Step Time = 1.000,PART-1-1,692,-2.421551020E-12,1.829490340E-12,-2.683962350E-07,-7.128961100E-07,-4.274295120E-07,1.792254900E-13 +Increment 10: Step Time = 1.000,PART-1-1,693,-1.701706810E-12,9.726053510E-13,-6.388837190E-08,-3.636196480E-07,-1.893153150E-07,1.326739170E-12 +Increment 10: Step Time = 1.000,PART-1-1,694,-1.023592060E-11,9.446010600E-13,-2.919613730E-06,-2.386655350E-07,-4.240639100E-06,5.379869180E-13 +Increment 10: Step Time = 1.000,PART-1-1,695,-9.580981840E-12,1.772116310E-12,-2.788287930E-06,-4.615615690E-07,-4.057339990E-06,1.211368900E-12 +Increment 10: Step Time = 1.000,PART-1-1,696,-8.319622770E-12,2.448850580E-12,-2.578987050E-06,-6.547065250E-07,-3.765684820E-06,1.715034150E-12 +Increment 10: Step Time = 1.000,PART-1-1,697,-6.933257790E-12,2.937140110E-12,-2.304960390E-06,-8.071912700E-07,-3.384656570E-06,1.554103200E-12 +Increment 10: Step Time = 1.000,PART-1-1,698,-5.810939840E-12,3.232590190E-12,-1.982842830E-06,-9.116487830E-07,-2.937789990E-06,1.194721840E-12 +Increment 10: Step Time = 1.000,PART-1-1,699,-4.821652630E-12,3.341611710E-12,-1.631377240E-06,-9.639044260E-07,-2.451112550E-06,9.536951310E-13 +Increment 10: Step Time = 1.000,PART-1-1,700,-3.933384870E-12,3.286789030E-12,-1.270402890E-06,-9.620906670E-07,-1.951462540E-06,7.051198280E-13 +Increment 10: Step Time = 1.000,PART-1-1,701,-3.161372860E-12,3.084074010E-12,-9.202426550E-07,-9.057247890E-07,-1.465337050E-06,4.378456960E-13 +Increment 10: Step Time = 1.000,PART-1-1,702,-2.565304740E-12,2.712086410E-12,-6.013974600E-07,-7.953950100E-07,-1.018178640E-06,1.579476970E-13 +Increment 10: Step Time = 1.000,PART-1-1,703,-2.188959520E-12,2.189038010E-12,-3.341762350E-07,-6.338974000E-07,-6.338974000E-07,-1.650626760E-15 +Increment 10: Step Time = 1.000,PART-1-1,704,-1.927665930E-12,1.552701540E-12,-1.374863100E-07,-4.299135130E-07,-3.340076940E-07,2.485550830E-13 +Increment 10: Step Time = 1.000,PART-1-1,705,-1.337560920E-12,8.271951920E-13,-2.536205200E-08,-2.070437400E-07,-1.446418740E-07,1.101002750E-12 +Increment 10: Step Time = 1.000,PART-1-1,706,-8.122329200E-12,9.137562670E-13,-1.430816500E-06,-1.292098090E-07,-3.142344210E-06,3.440563260E-13 +Increment 10: Step Time = 1.000,PART-1-1,707,-7.591945300E-12,1.752093050E-12,-1.365057640E-06,-2.500554220E-07,-3.004964360E-06,8.072037500E-13 +Increment 10: Step Time = 1.000,PART-1-1,708,-6.602488090E-12,2.431203460E-12,-1.260177440E-06,-3.550615020E-07,-2.785929840E-06,1.099997260E-12 +Increment 10: Step Time = 1.000,PART-1-1,709,-5.475322020E-12,2.887377840E-12,-1.122728120E-06,-4.382837910E-07,-2.499026550E-06,9.588583180E-13 +Increment 10: Step Time = 1.000,PART-1-1,710,-4.528241500E-12,3.129654090E-12,-9.609879040E-07,-4.955470560E-07,-2.161632440E-06,6.660167750E-13 +Increment 10: Step Time = 1.000,PART-1-1,711,-3.681070640E-12,3.183412080E-12,-7.843669320E-07,-5.242625890E-07,-1.793393490E-06,4.592989400E-13 +Increment 10: Step Time = 1.000,PART-1-1,712,-2.917687140E-12,3.070282530E-12,-6.029597440E-07,-5.229595100E-07,-1.415114300E-06,2.550439510E-13 +Increment 10: Step Time = 1.000,PART-1-1,713,-2.287250900E-12,2.808855580E-12,-4.273163090E-07,-4.907916490E-07,-1.047964930E-06,2.348876060E-14 +Increment 10: Step Time = 1.000,PART-1-1,714,-1.827185320E-12,2.419839940E-12,-2.683962350E-07,-4.274295120E-07,-7.128961100E-07,-1.792136450E-13 +Increment 10: Step Time = 1.000,PART-1-1,715,-1.552572310E-12,1.924191060E-12,-1.374863100E-07,-3.340076940E-07,-4.299135130E-07,-2.510061390E-13 +Increment 10: Step Time = 1.000,PART-1-1,716,-1.360165560E-12,1.359298740E-12,-4.551087330E-08,-2.163689740E-07,-2.163689740E-07,-1.006393940E-15 +Increment 10: Step Time = 1.000,PART-1-1,717,-9.569519660E-13,7.265311940E-13,-3.523198680E-10,-9.432790190E-08,-8.836911290E-08,7.032130950E-13 +Increment 10: Step Time = 1.000,PART-1-1,718,-4.536817540E-12,7.753369340E-13,-4.162370710E-07,-5.784412240E-08,-1.748542330E-06,-3.569228790E-13 +Increment 10: Step Time = 1.000,PART-1-1,719,-4.233411360E-12,1.483330280E-12,-3.962906590E-07,-1.119891730E-07,-1.670316010E-06,-5.864615980E-13 +Increment 10: Step Time = 1.000,PART-1-1,720,-3.679102160E-12,2.009859730E-12,-3.644745450E-07,-1.591139240E-07,-1.545478200E-06,-8.212369590E-13 +Increment 10: Step Time = 1.000,PART-1-1,721,-3.055074860E-12,2.321922170E-12,-3.227702340E-07,-1.965471060E-07,-1.381760400E-06,-1.122752060E-12 +Increment 10: Step Time = 1.000,PART-1-1,722,-2.505242110E-12,2.448043500E-12,-2.736801720E-07,-2.223638660E-07,-1.188993560E-06,-1.368601850E-12 +Increment 10: Step Time = 1.000,PART-1-1,723,-2.014351790E-12,2.424887980E-12,-2.200548010E-07,-2.352953890E-07,-9.784295120E-07,-1.478013670E-12 +Increment 10: Step Time = 1.000,PART-1-1,724,-1.578640760E-12,2.275624570E-12,-1.649768390E-07,-2.345043410E-07,-7.621962370E-07,-1.491418210E-12 +Increment 10: Step Time = 1.000,PART-1-1,725,-1.221920350E-12,2.023853740E-12,-1.117349770E-07,-2.193445850E-07,-5.529464600E-07,-1.442611220E-12 +Increment 10: Step Time = 1.000,PART-1-1,726,-9.729181440E-13,1.699563120E-12,-6.388837190E-08,-1.893153150E-07,-3.636196480E-07,-1.326686160E-12 +Increment 10: Step Time = 1.000,PART-1-1,727,-8.283531200E-13,1.336279940E-12,-2.536205200E-08,-1.446418740E-07,-2.070437400E-07,-1.097490800E-12 +Increment 10: Step Time = 1.000,PART-1-1,728,-7.251905240E-13,9.556255530E-13,-3.523198680E-10,-8.836911290E-08,-9.432790190E-08,-7.015001640E-13 +Increment 10: Step Time = 1.000,PART-1-1,729,-5.410511990E-13,5.415084070E-13,7.750011300E-09,-3.328533180E-08,-3.328533180E-08,-9.262992430E-16 diff --git a/reference/shellNL-meshfine/shellNL-meshfine reactions.csv b/reference/shellNL-meshfine/shellNL-meshfine reactions.csv new file mode 100644 index 0000000..166973e --- /dev/null +++ b/reference/shellNL-meshfine/shellNL-meshfine reactions.csv @@ -0,0 +1,730 @@ +Frame,Part Instance Name, Node Label, RF-RF1, RF-RF2, RF-RF3, RM-RM1, RM-RM2, RM-RM3 +Increment 10: Step Time = 1.000,PART-1-1,1,-5.470385080E-04,-5.388274190E-01,2.785061280E+03,4.715575200E+03,1.049329510E-10,-8.952283680E-06 +Increment 10: Step Time = 1.000,PART-1-1,2,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,3,-5.382804870E-01,1.326051190E-05,2.785061280E+03,-3.069544620E-12,-4.715575200E+03,-1.668353550E-06 +Increment 10: Step Time = 1.000,PART-1-1,4,-1.528376990E-02,-1.530735100E-02,-1.984290770E+02,1.192524430E+01,-1.192524430E+01,-2.556832990E-22 +Increment 10: Step Time = 1.000,PART-1-1,5,5.470385080E-04,5.388274190E-01,2.785061280E+03,-4.715575200E+03,-1.048192640E-10,-8.952283680E-06 +Increment 10: Step Time = 1.000,PART-1-1,6,5.382804870E-01,-1.326051190E-05,2.785061280E+03,2.842170940E-12,4.715575200E+03,-1.668353550E-06 +Increment 10: Step Time = 1.000,PART-1-1,7,1.528376990E-02,1.530735100E-02,-1.984290770E+02,-1.192524430E+01,1.192524430E+01,-2.159786300E-22 +Increment 10: Step Time = 1.000,PART-1-1,8,-1.532454230E-02,1.530595120E-02,-1.984290770E+02,-1.192524430E+01,-1.192524430E+01,-9.779558880E-22 +Increment 10: Step Time = 1.000,PART-1-1,9,1.532454230E-02,-1.530595120E-02,-1.984290770E+02,1.192524430E+01,1.192524430E+01,-9.996910880E-22 +Increment 10: Step Time = 1.000,PART-1-1,10,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,11,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,12,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,13,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,14,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,15,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,16,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,17,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,18,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,19,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,20,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,21,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,22,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,23,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,24,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,25,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,26,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,27,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,28,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,29,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,30,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,31,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,32,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,33,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,34,-5.303245780E-01,-3.558175870E-03,2.727705810E+03,6.148467250E+01,-4.643274410E+03,-5.051664190E-04 +Increment 10: Step Time = 1.000,PART-1-1,35,-4.942933920E-01,-5.756861060E-03,2.559506350E+03,1.190654600E+02,-4.430960450E+03,-9.611358980E-04 +Increment 10: Step Time = 1.000,PART-1-1,36,-4.342209400E-01,-8.487849500E-03,2.291541500E+03,1.692261200E+02,-4.091941160E+03,-1.299336790E-03 +Increment 10: Step Time = 1.000,PART-1-1,37,-3.648218510E-01,-9.409521710E-03,1.940705320E+03,2.091169130E+02,-3.647008060E+03,-1.497546090E-03 +Increment 10: Step Time = 1.000,PART-1-1,38,-3.000069560E-01,-9.107947350E-03,1.527972050E+03,2.366528020E+02,-3.122762940E+03,-1.572773210E-03 +Increment 10: Step Time = 1.000,PART-1-1,39,-2.417625040E-01,-8.502867070E-03,1.077026370E+03,2.504168240E+02,-2.549949460E+03,-1.547077790E-03 +Increment 10: Step Time = 1.000,PART-1-1,40,-1.908301860E-01,-7.532419640E-03,6.140667720E+02,2.494237520E+02,-1.962192020E+03,-1.439193150E-03 +Increment 10: Step Time = 1.000,PART-1-1,41,-1.497779340E-01,-6.093745120E-03,1.695617370E+02,2.328747860E+02,-1.395328860E+03,-1.268640160E-03 +Increment 10: Step Time = 1.000,PART-1-1,42,-1.207142320E-01,-4.532227290E-03,-2.174030760E+02,2.001373440E+02,-8.870581670E+02,-1.055214320E-03 +Increment 10: Step Time = 1.000,PART-1-1,43,-1.027152690E-01,-3.194966120E-03,-4.921354680E+02,1.515825960E+02,-4.756381230E+02,-8.241637840E-04 +Increment 10: Step Time = 1.000,PART-1-1,44,-8.877001700E-02,-2.803751270E-03,-5.813466190E+02,9.087918850E+01,-1.940177460E+02,-5.851722670E-04 +Increment 10: Step Time = 1.000,PART-1-1,45,-6.317187100E-02,-4.380240570E-03,-4.105167540E+02,3.537723920E+01,-5.370405960E+01,-3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,46,-4.393070940E-03,-6.312924620E-02,-4.105167540E+02,5.370405960E+01,-3.537723920E+01,3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,47,-2.809530120E-03,-8.875388650E-02,-5.813466190E+02,1.940177460E+02,-9.087918850E+01,5.835441410E-04 +Increment 10: Step Time = 1.000,PART-1-1,48,-3.179328750E-03,-1.027502640E-01,-4.921354680E+02,4.756381230E+02,-1.515825960E+02,8.230783280E-04 +Increment 10: Step Time = 1.000,PART-1-1,49,-4.502866420E-03,-1.206976620E-01,-2.174030760E+02,8.870581670E+02,-2.001373440E+02,1.054942960E-03 +Increment 10: Step Time = 1.000,PART-1-1,50,-6.150956730E-03,-1.498091820E-01,1.695617370E+02,1.395328860E+03,-2.328747860E+02,1.267826070E-03 +Increment 10: Step Time = 1.000,PART-1-1,51,-7.539764050E-03,-1.909552370E-01,6.140667720E+02,1.962192020E+03,-2.494237520E+02,1.438379050E-03 +Increment 10: Step Time = 1.000,PART-1-1,52,-8.482775650E-03,-2.417865250E-01,1.077026370E+03,2.549949460E+03,-2.504168240E+02,1.545720970E-03 +Increment 10: Step Time = 1.000,PART-1-1,53,-9.072730320E-03,-3.000506460E-01,1.527972050E+03,3.122762940E+03,-2.366528020E+02,1.570331050E-03 +Increment 10: Step Time = 1.000,PART-1-1,54,-9.371605700E-03,-3.648609520E-01,1.940705320E+03,3.647008060E+03,-2.091169130E+02,1.494425580E-03 +Increment 10: Step Time = 1.000,PART-1-1,55,-8.441661480E-03,-4.342569110E-01,2.291541500E+03,4.091941160E+03,-1.692261200E+02,1.294995080E-03 +Increment 10: Step Time = 1.000,PART-1-1,56,-5.800476300E-03,-4.946944710E-01,2.559506350E+03,4.430960450E+03,-1.190654600E+02,9.515706920E-04 +Increment 10: Step Time = 1.000,PART-1-1,57,-3.596818540E-03,-5.301014780E-01,2.727705810E+03,4.643274410E+03,-6.148467250E+01,4.936339100E-04 +Increment 10: Step Time = 1.000,PART-1-1,58,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,59,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,60,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,61,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,62,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,63,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,64,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,65,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,66,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,67,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,68,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,69,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,70,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,71,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,72,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,73,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,74,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,75,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,76,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,77,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,78,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,79,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,80,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,81,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,82,5.303245780E-01,3.558175870E-03,2.727705810E+03,-6.148467250E+01,4.643274410E+03,-5.051664190E-04 +Increment 10: Step Time = 1.000,PART-1-1,83,4.942933920E-01,5.756861060E-03,2.559506350E+03,-1.190654600E+02,4.430960450E+03,-9.611358980E-04 +Increment 10: Step Time = 1.000,PART-1-1,84,4.342209400E-01,8.487849500E-03,2.291541500E+03,-1.692261200E+02,4.091941160E+03,-1.299336790E-03 +Increment 10: Step Time = 1.000,PART-1-1,85,3.648218510E-01,9.409521710E-03,1.940705320E+03,-2.091169130E+02,3.647008060E+03,-1.497546090E-03 +Increment 10: Step Time = 1.000,PART-1-1,86,3.000069560E-01,9.107947350E-03,1.527972050E+03,-2.366528020E+02,3.122762940E+03,-1.572773210E-03 +Increment 10: Step Time = 1.000,PART-1-1,87,2.417625040E-01,8.502867070E-03,1.077026370E+03,-2.504168240E+02,2.549949460E+03,-1.547077790E-03 +Increment 10: Step Time = 1.000,PART-1-1,88,1.908301860E-01,7.532419640E-03,6.140667720E+02,-2.494237520E+02,1.962192020E+03,-1.439193150E-03 +Increment 10: Step Time = 1.000,PART-1-1,89,1.497779340E-01,6.093745120E-03,1.695617370E+02,-2.328747860E+02,1.395328860E+03,-1.268640160E-03 +Increment 10: Step Time = 1.000,PART-1-1,90,1.207142320E-01,4.532227290E-03,-2.174030760E+02,-2.001373440E+02,8.870581670E+02,-1.055214320E-03 +Increment 10: Step Time = 1.000,PART-1-1,91,1.027152690E-01,3.194966120E-03,-4.921354680E+02,-1.515825960E+02,4.756381230E+02,-8.241637840E-04 +Increment 10: Step Time = 1.000,PART-1-1,92,8.877001700E-02,2.803751270E-03,-5.813466190E+02,-9.087918850E+01,1.940177460E+02,-5.851722670E-04 +Increment 10: Step Time = 1.000,PART-1-1,93,6.317187100E-02,4.380240570E-03,-4.105167540E+02,-3.537723920E+01,5.370405960E+01,-3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,94,4.393070940E-03,6.312924620E-02,-4.105167540E+02,-5.370405960E+01,3.537723920E+01,3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,95,2.809530120E-03,8.875388650E-02,-5.813466190E+02,-1.940177460E+02,9.087918850E+01,5.835441410E-04 +Increment 10: Step Time = 1.000,PART-1-1,96,3.179328750E-03,1.027502640E-01,-4.921354680E+02,-4.756381230E+02,1.515825960E+02,8.230783280E-04 +Increment 10: Step Time = 1.000,PART-1-1,97,4.502866420E-03,1.206976620E-01,-2.174030760E+02,-8.870581670E+02,2.001373440E+02,1.054942960E-03 +Increment 10: Step Time = 1.000,PART-1-1,98,6.150956730E-03,1.498091820E-01,1.695617370E+02,-1.395328860E+03,2.328747860E+02,1.267826070E-03 +Increment 10: Step Time = 1.000,PART-1-1,99,7.539764050E-03,1.909552370E-01,6.140667720E+02,-1.962192020E+03,2.494237520E+02,1.438379050E-03 +Increment 10: Step Time = 1.000,PART-1-1,100,8.482775650E-03,2.417865250E-01,1.077026370E+03,-2.549949460E+03,2.504168240E+02,1.545720970E-03 +Increment 10: Step Time = 1.000,PART-1-1,101,9.072730320E-03,3.000506460E-01,1.527972050E+03,-3.122762940E+03,2.366528020E+02,1.570331050E-03 +Increment 10: Step Time = 1.000,PART-1-1,102,9.371605700E-03,3.648609520E-01,1.940705320E+03,-3.647008060E+03,2.091169130E+02,1.494425580E-03 +Increment 10: Step Time = 1.000,PART-1-1,103,8.441661480E-03,4.342569110E-01,2.291541500E+03,-4.091941160E+03,1.692261200E+02,1.294995080E-03 +Increment 10: Step Time = 1.000,PART-1-1,104,5.800476300E-03,4.946944710E-01,2.559506350E+03,-4.430960450E+03,1.190654600E+02,9.515706920E-04 +Increment 10: Step Time = 1.000,PART-1-1,105,3.596818540E-03,5.301014780E-01,2.727705810E+03,-4.643274410E+03,6.148467250E+01,4.936339100E-04 +Increment 10: Step Time = 1.000,PART-1-1,106,-2.958313560E-03,5.296384690E-01,2.727705810E+03,-4.643274410E+03,-6.148467250E+01,-5.118145490E-04 +Increment 10: Step Time = 1.000,PART-1-1,107,-5.812485700E-03,4.943474830E-01,2.559506350E+03,-4.430960450E+03,-1.190654600E+02,-9.647313270E-04 +Increment 10: Step Time = 1.000,PART-1-1,108,-8.533021440E-03,4.340166450E-01,2.291541500E+03,-4.091941160E+03,-1.692261200E+02,-1.301371840E-03 +Increment 10: Step Time = 1.000,PART-1-1,109,-9.459299970E-03,3.645806910E-01,1.940705320E+03,-3.647008060E+03,-2.091169130E+02,-1.497817460E-03 +Increment 10: Step Time = 1.000,PART-1-1,110,-9.059552100E-03,2.998881040E-01,1.527972050E+03,-3.122762940E+03,-2.366528020E+02,-1.571959230E-03 +Increment 10: Step Time = 1.000,PART-1-1,111,-8.505400270E-03,2.417539060E-01,1.077026370E+03,-2.549949460E+03,-2.504168240E+02,-1.546535060E-03 +Increment 10: Step Time = 1.000,PART-1-1,112,-7.515818350E-03,1.909034100E-01,6.140667720E+02,-1.962192020E+03,-2.494237520E+02,-1.439193150E-03 +Increment 10: Step Time = 1.000,PART-1-1,113,-6.144734100E-03,1.497954730E-01,1.695617370E+02,-1.395328860E+03,-2.328747860E+02,-1.268911520E-03 +Increment 10: Step Time = 1.000,PART-1-1,114,-4.489525690E-03,1.206891020E-01,-2.174030760E+02,-8.870581670E+02,-2.001373440E+02,-1.056299780E-03 +Increment 10: Step Time = 1.000,PART-1-1,115,-3.208294050E-03,1.027374190E-01,-4.921354680E+02,-4.756381230E+02,-1.515825960E+02,-8.236210560E-04 +Increment 10: Step Time = 1.000,PART-1-1,116,-2.792988210E-03,8.874440940E-02,-5.813466190E+02,-1.940177460E+02,-9.087918850E+01,-5.857149370E-04 +Increment 10: Step Time = 1.000,PART-1-1,117,-4.367525220E-03,6.316252050E-02,-4.105167540E+02,-5.370405960E+01,-3.537723920E+01,-3.300959650E-04 +Increment 10: Step Time = 1.000,PART-1-1,118,-6.315818430E-02,4.336129410E-03,-4.105167540E+02,-3.537723920E+01,-5.370405960E+01,3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,119,-8.877412230E-02,2.862153810E-03,-5.813466190E+02,-9.087918850E+01,-1.940177460E+02,5.851722670E-04 +Increment 10: Step Time = 1.000,PART-1-1,120,-1.027888210E-01,3.176482630E-03,-4.921354680E+02,-1.515825960E+02,-4.756381230E+02,8.228070220E-04 +Increment 10: Step Time = 1.000,PART-1-1,121,-1.208073200E-01,4.514494450E-03,-2.174030760E+02,-2.001373440E+02,-8.870581670E+02,1.054942960E-03 +Increment 10: Step Time = 1.000,PART-1-1,122,-1.498637500E-01,6.087103390E-03,1.695617370E+02,-2.328747860E+02,-1.395328860E+03,1.267826070E-03 +Increment 10: Step Time = 1.000,PART-1-1,123,-1.909286980E-01,7.586815390E-03,6.140667720E+02,-2.494237520E+02,-1.962192020E+03,1.438650420E-03 +Increment 10: Step Time = 1.000,PART-1-1,124,-2.417526840E-01,8.440055880E-03,1.077026370E+03,-2.504168240E+02,-2.549949460E+03,1.545449600E-03 +Increment 10: Step Time = 1.000,PART-1-1,125,-2.998522820E-01,9.117646140E-03,1.527972050E+03,-2.366528020E+02,-3.122762940E+03,1.570331050E-03 +Increment 10: Step Time = 1.000,PART-1-1,126,-3.647396270E-01,9.417652150E-03,1.940705320E+03,-2.091169130E+02,-3.647008060E+03,1.495918030E-03 +Increment 10: Step Time = 1.000,PART-1-1,127,-4.342092570E-01,8.487521670E-03,2.291541500E+03,-1.692261200E+02,-4.091941160E+03,1.298251330E-03 +Increment 10: Step Time = 1.000,PART-1-1,128,-4.944034520E-01,5.767230410E-03,2.559506350E+03,-1.190654600E+02,-4.430960450E+03,9.597791360E-04 +Increment 10: Step Time = 1.000,PART-1-1,129,-5.305147770E-01,3.531780560E-03,2.727705810E+03,-6.148467250E+01,-4.643274410E+03,5.026224530E-04 +Increment 10: Step Time = 1.000,PART-1-1,130,2.958313560E-03,-5.296384690E-01,2.727705810E+03,4.643274410E+03,6.148467250E+01,-5.118145490E-04 +Increment 10: Step Time = 1.000,PART-1-1,131,5.812485700E-03,-4.943474830E-01,2.559506350E+03,4.430960450E+03,1.190654600E+02,-9.647313270E-04 +Increment 10: Step Time = 1.000,PART-1-1,132,8.533021440E-03,-4.340166450E-01,2.291541500E+03,4.091941160E+03,1.692261200E+02,-1.301371840E-03 +Increment 10: Step Time = 1.000,PART-1-1,133,9.459299970E-03,-3.645806910E-01,1.940705320E+03,3.647008060E+03,2.091169130E+02,-1.497817460E-03 +Increment 10: Step Time = 1.000,PART-1-1,134,9.059552100E-03,-2.998881040E-01,1.527972050E+03,3.122762940E+03,2.366528020E+02,-1.571959230E-03 +Increment 10: Step Time = 1.000,PART-1-1,135,8.505400270E-03,-2.417539060E-01,1.077026370E+03,2.549949460E+03,2.504168240E+02,-1.546535060E-03 +Increment 10: Step Time = 1.000,PART-1-1,136,7.515818350E-03,-1.909034100E-01,6.140667720E+02,1.962192020E+03,2.494237520E+02,-1.439193150E-03 +Increment 10: Step Time = 1.000,PART-1-1,137,6.144734100E-03,-1.497954730E-01,1.695617370E+02,1.395328860E+03,2.328747860E+02,-1.268911520E-03 +Increment 10: Step Time = 1.000,PART-1-1,138,4.489525690E-03,-1.206891020E-01,-2.174030760E+02,8.870581670E+02,2.001373440E+02,-1.056299780E-03 +Increment 10: Step Time = 1.000,PART-1-1,139,3.208294050E-03,-1.027374190E-01,-4.921354680E+02,4.756381230E+02,1.515825960E+02,-8.236210560E-04 +Increment 10: Step Time = 1.000,PART-1-1,140,2.792988210E-03,-8.874440940E-02,-5.813466190E+02,1.940177460E+02,9.087918850E+01,-5.857149370E-04 +Increment 10: Step Time = 1.000,PART-1-1,141,4.367525220E-03,-6.316252050E-02,-4.105167540E+02,5.370405960E+01,3.537723920E+01,-3.300959650E-04 +Increment 10: Step Time = 1.000,PART-1-1,142,6.315818430E-02,-4.336129410E-03,-4.105167540E+02,3.537723920E+01,5.370405960E+01,3.306386640E-04 +Increment 10: Step Time = 1.000,PART-1-1,143,8.877412230E-02,-2.862153810E-03,-5.813466190E+02,9.087918850E+01,1.940177460E+02,5.851722670E-04 +Increment 10: Step Time = 1.000,PART-1-1,144,1.027888210E-01,-3.176482630E-03,-4.921354680E+02,1.515825960E+02,4.756381230E+02,8.228070220E-04 +Increment 10: Step Time = 1.000,PART-1-1,145,1.208073200E-01,-4.514494450E-03,-2.174030760E+02,2.001373440E+02,8.870581670E+02,1.054942960E-03 +Increment 10: Step Time = 1.000,PART-1-1,146,1.498637500E-01,-6.087103390E-03,1.695617370E+02,2.328747860E+02,1.395328860E+03,1.267826070E-03 +Increment 10: Step Time = 1.000,PART-1-1,147,1.909286980E-01,-7.586815390E-03,6.140667720E+02,2.494237520E+02,1.962192020E+03,1.438650420E-03 +Increment 10: Step Time = 1.000,PART-1-1,148,2.417526840E-01,-8.440055880E-03,1.077026370E+03,2.504168240E+02,2.549949460E+03,1.545449600E-03 +Increment 10: Step Time = 1.000,PART-1-1,149,2.998522820E-01,-9.117646140E-03,1.527972050E+03,2.366528020E+02,3.122762940E+03,1.570331050E-03 +Increment 10: Step Time = 1.000,PART-1-1,150,3.647396270E-01,-9.417652150E-03,1.940705320E+03,2.091169130E+02,3.647008060E+03,1.495918030E-03 +Increment 10: Step Time = 1.000,PART-1-1,151,4.342092570E-01,-8.487521670E-03,2.291541500E+03,1.692261200E+02,4.091941160E+03,1.298251330E-03 +Increment 10: Step Time = 1.000,PART-1-1,152,4.944034520E-01,-5.767230410E-03,2.559506350E+03,1.190654600E+02,4.430960450E+03,9.597791360E-04 +Increment 10: Step Time = 1.000,PART-1-1,153,5.305147770E-01,-3.531780560E-03,2.727705810E+03,6.148467250E+01,4.643274410E+03,5.026224530E-04 +Increment 10: Step Time = 1.000,PART-1-1,154,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,155,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,156,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,157,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,158,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,159,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,160,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,161,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,162,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,163,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,164,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,165,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,166,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,167,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,168,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,169,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,170,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,171,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,172,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,173,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,174,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,175,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,176,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,177,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,178,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,179,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,180,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,181,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,182,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,183,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,184,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,185,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,186,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,187,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,188,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,189,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,190,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,191,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,192,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,193,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,194,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,195,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,196,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,197,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,198,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,199,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,200,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,201,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,202,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,203,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,204,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,205,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,206,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,207,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,208,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,209,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,210,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,211,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,212,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,213,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,214,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,215,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,216,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,217,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,218,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,219,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,220,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,221,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,222,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,223,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,224,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,225,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,226,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,227,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,228,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,229,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,230,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,231,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,232,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,233,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,234,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,235,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,236,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,237,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,238,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,239,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,240,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,241,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,242,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,243,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,244,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,245,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,246,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,247,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,248,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,249,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,250,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,251,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,252,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,253,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,254,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,255,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,256,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,257,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,258,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,259,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,260,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,261,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,262,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,263,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,264,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,265,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,266,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,267,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,268,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,269,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,270,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,271,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,272,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,273,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,274,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,275,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,276,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,277,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,278,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,279,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,280,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,281,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,282,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,283,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,284,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,285,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,286,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,287,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,288,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,289,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,290,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,291,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,292,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,293,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,294,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,295,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,296,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,297,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,298,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,299,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,300,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,301,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,302,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,303,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,304,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,305,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,306,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,307,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,308,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,309,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,310,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,311,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,312,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,313,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,314,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,315,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,316,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,317,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,318,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,319,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,320,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,321,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,322,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,323,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,324,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,325,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,326,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,327,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,328,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,329,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,330,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,331,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,332,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,333,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,334,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,335,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,336,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,337,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,338,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,339,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,340,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,341,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,342,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,343,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,344,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,345,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,346,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,347,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,348,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,349,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,350,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,351,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,352,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,353,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,354,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,355,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,356,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,357,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,358,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,359,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,360,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,361,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,362,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,363,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,364,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,365,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,366,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,367,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,368,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,369,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,370,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,371,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,372,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,373,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,374,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,375,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,376,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,377,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,378,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,379,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,380,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,381,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,382,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,383,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,384,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,385,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,386,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,387,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,388,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,389,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,390,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,391,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,392,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,393,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,394,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,395,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,396,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,397,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,398,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,399,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,400,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,401,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,402,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,403,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,404,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,405,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,406,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,407,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,408,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,409,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,410,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,411,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,412,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,413,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,414,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,415,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,416,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,417,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,418,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,419,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,420,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,421,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,422,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,423,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,424,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,425,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,426,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,427,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,428,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,429,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,430,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,431,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,432,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,433,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,434,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,435,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,436,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,437,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,438,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,439,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,440,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,441,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,442,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,443,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,444,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,445,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,446,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,447,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,448,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,449,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,450,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,451,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,452,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,453,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,454,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,455,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,456,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,457,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,458,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,459,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,460,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,461,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,462,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,463,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,464,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,465,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,466,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,467,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,468,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,469,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,470,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,471,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,472,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,473,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,474,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,475,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,476,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,477,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,478,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,479,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,480,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,481,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,482,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,483,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,484,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,485,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,486,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,487,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,488,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,489,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,490,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,491,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,492,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,493,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,494,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,495,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,496,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,497,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,498,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,499,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,500,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,501,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,502,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,503,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,504,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,505,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,506,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,507,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,508,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,509,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,510,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,511,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,512,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,513,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,514,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,515,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,516,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,517,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,518,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,519,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,520,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,521,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,522,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,523,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,524,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,525,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,526,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,527,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,528,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,529,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,530,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,531,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,532,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,533,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,534,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,535,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,536,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,537,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,538,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,539,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,540,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,541,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,542,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,543,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,544,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,545,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,546,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,547,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,548,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,549,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,550,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,551,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,552,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,553,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,554,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,555,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,556,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,557,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,558,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,559,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,560,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,561,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,562,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,563,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,564,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,565,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,566,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,567,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,568,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,569,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,570,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,571,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,572,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,573,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,574,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,575,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,576,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,577,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,578,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,579,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,580,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,581,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,582,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,583,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,584,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,585,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,586,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,587,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,588,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,589,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,590,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,591,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,592,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,593,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,594,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,595,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,596,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,597,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,598,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,599,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,600,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,601,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,602,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,603,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,604,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,605,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,606,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,607,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,608,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,609,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,610,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,611,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,612,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,613,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,614,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,615,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,616,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,617,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,618,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,619,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,620,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,621,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,622,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,623,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,624,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,625,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,626,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,627,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,628,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,629,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,630,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,631,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,632,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,633,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,634,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,635,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,636,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,637,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,638,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,639,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,640,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,641,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,642,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,643,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,644,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,645,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,646,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,647,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,648,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,649,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,650,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,651,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,652,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,653,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,654,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,655,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,656,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,657,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,658,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,659,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,660,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,661,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,662,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,663,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,664,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,665,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,666,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,667,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,668,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,669,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,670,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,671,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,672,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,673,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,674,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,675,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,676,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,677,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,678,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,679,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,680,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,681,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,682,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,683,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,684,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,685,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,686,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,687,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,688,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,689,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,690,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,691,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,692,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,693,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,694,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,695,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,696,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,697,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,698,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,699,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,700,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,701,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,702,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,703,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,704,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,705,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,706,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,707,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,708,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,709,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,710,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,711,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,712,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,713,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,714,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,715,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,716,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,717,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,718,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,719,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,720,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,721,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,722,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,723,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,724,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,725,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,726,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,727,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,728,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,729,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00,0.000000000E+00 diff --git a/reference/shellNL-meshfine/shellNL-meshfine stresses.csv b/reference/shellNL-meshfine/shellNL-meshfine stresses.csv new file mode 100644 index 0000000..eb8ba83 --- /dev/null +++ b/reference/shellNL-meshfine/shellNL-meshfine stresses.csv @@ -0,0 +1,5409 @@ +Frame,Part Instance Name, Element Label, Node Label,Section Point, S-S11, S-S22, S-S33, S-S12 +Increment 10: Step Time = 1.000,PART-1-1,1,1,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.988435940E+04,2.662812500E+05,0.000000000E+00,2.868652340E-03 +Increment 10: Step Time = 1.000,PART-1-1,1,ss,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.988268750E+04,-2.662755620E+05,0.000000000E+00,2.975463870E-03 +Increment 10: Step Time = 1.000,PART-1-1,1,10,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,1,10,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,1,57,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868357030E+04,-2.622785310E+05,0.000000000E+00,-3.036812260E+03 +Increment 10: Step Time = 1.000,PART-1-1,1,57,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,3.036820070E+03 +Increment 10: Step Time = 1.000,PART-1-1,1,154,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,1,154,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,2,10,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,2,10,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,2,11,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,2,11,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,2,154,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,2,154,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,2,155,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,2,155,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,3,11,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,3,11,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,3,12,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,3,12,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,3,155,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,3,155,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,3,156,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,3,156,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,4,12,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,4,12,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,4,13,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,4,13,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,4,156,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,4,156,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,4,157,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,4,157,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,5,13,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,5,13,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,5,14,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,5,14,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,5,157,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,5,157,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,5,158,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,5,158,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,6,14,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,6,14,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,6,15,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,6,15,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,6,158,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,6,158,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,6,159,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,6,159,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,7,15,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,7,15,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,7,16,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,7,16,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,7,159,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,7,159,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,7,160,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,7,160,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,8,16,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,8,16,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,8,17,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,8,17,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,8,160,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,8,160,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,8,161,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,8,161,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,9,17,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,9,17,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,9,18,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,9,18,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,9,161,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,9,161,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,9,162,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,9,162,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,10,18,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,10,18,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,10,19,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,10,19,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,10,162,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,10,162,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,10,163,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,10,163,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,11,19,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,11,19,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,11,20,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,11,20,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,11,163,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,11,163,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,11,164,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,11,164,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,12,20,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,12,20,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,12,21,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,12,21,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,12,164,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,12,164,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,12,165,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,12,165,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,13,2,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.034600000E+05,7.034600000E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,13,2,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.034501250E+05,-7.034501250E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,13,21,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,13,21,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,13,22,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,13,22,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,13,165,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,13,165,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,14,56,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447500E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,56,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,57,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,3.036820070E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,57,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868357030E+04,-2.622785310E+05,0.000000000E+00,-3.036812260E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,154,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,154,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,14,166,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,14,166,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,15,154,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,15,154,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,15,155,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,15,155,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,15,166,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,15,166,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,15,167,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,15,167,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,155,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,16,155,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,16,156,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,156,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,167,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,167,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,168,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,16,168,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,156,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,156,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,157,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,157,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,168,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,168,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,169,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,17,169,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,157,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,157,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,158,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,158,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,169,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,169,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,170,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,18,170,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,158,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,158,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,159,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,159,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,170,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,170,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,171,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,19,171,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,159,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,159,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,160,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,160,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,171,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,171,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,172,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,20,172,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,160,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,160,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,161,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,161,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,172,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,172,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,173,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,21,173,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,161,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,161,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,162,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,162,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,173,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,173,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,174,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,22,174,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,162,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,162,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,163,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,163,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,174,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,174,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,175,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,23,175,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,163,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,163,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,164,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,164,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,175,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,175,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,176,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,24,176,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,164,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,164,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,165,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,165,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,176,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,176,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,177,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,25,177,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,26,22,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,26,22,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,26,23,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,26,23,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,26,165,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,26,165,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,26,177,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,26,177,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,27,55,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954719530E+04,2.318239690E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,27,55,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,27,56,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447500E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,27,56,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,27,166,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,27,166,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,27,178,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,27,178,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,166,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,166,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,167,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,167,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,178,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,178,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,179,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,28,179,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,167,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,167,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,168,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,168,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,179,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,179,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,180,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,29,180,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,168,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,168,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,169,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,169,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,180,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,180,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,181,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,30,181,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,169,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,169,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,170,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,170,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,181,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,181,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,182,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,31,182,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,170,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,170,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,171,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,171,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,182,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,182,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,183,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,32,183,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,171,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,171,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,172,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,172,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,183,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,183,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,184,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,33,184,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,172,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,172,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,173,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,173,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,184,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,184,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,185,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,34,185,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,173,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,173,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,174,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,174,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,185,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,185,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,186,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,35,186,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,174,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,174,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,175,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,175,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,186,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,186,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,187,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,36,187,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,175,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,175,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,176,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,176,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,187,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,187,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,188,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,37,188,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,176,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,176,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,177,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,177,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,188,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,188,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,189,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,38,189,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,39,23,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,39,23,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,39,24,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,39,24,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,39,177,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,39,177,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,39,189,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,39,189,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,54,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621720E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,54,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659380E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,55,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954719530E+04,2.318239690E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,40,55,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,40,178,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,178,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,190,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,40,190,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,178,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,178,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,179,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,179,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,190,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,190,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,191,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,41,191,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,179,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,179,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,180,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,180,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,191,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,191,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,192,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,42,192,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,180,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,180,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,181,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,181,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,192,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,192,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,193,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,43,193,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,181,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,181,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,182,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,182,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,193,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,193,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,194,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,44,194,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,182,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,182,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,183,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,183,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,194,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,194,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,195,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,45,195,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,183,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,183,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,184,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,184,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,195,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,195,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,196,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,46,196,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,184,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,184,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,185,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,185,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,196,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,196,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,197,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,47,197,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,185,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,185,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,186,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,186,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,197,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,197,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,198,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,48,198,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,186,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,186,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,187,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,187,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,198,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,198,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,199,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,49,199,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,187,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,187,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,188,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,188,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,199,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,199,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,200,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,50,200,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,188,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,188,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,189,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,189,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,200,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,200,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,201,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,51,201,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,52,24,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,52,24,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,52,25,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,52,25,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,52,189,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,52,189,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,52,201,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,52,201,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,53,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474690E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,53,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505780E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,54,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659380E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,54,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621720E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,190,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,190,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,202,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,53,202,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,190,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,190,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,191,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,191,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,202,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,202,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,203,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,54,203,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,191,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,191,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,192,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,192,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,203,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,203,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,204,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,55,204,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,192,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,192,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,193,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,193,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,204,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,204,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,205,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,56,205,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,193,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,193,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,194,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,194,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,205,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,205,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,206,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,57,206,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,194,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,194,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,195,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,195,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,206,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,206,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,207,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,58,207,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,195,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,195,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,196,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,196,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,207,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,207,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,208,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,59,208,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,196,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,196,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,197,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,197,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,208,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,208,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,209,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,60,209,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,197,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,197,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,198,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,198,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,209,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,209,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,210,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,61,210,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,198,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,198,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,199,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,199,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,210,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,210,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,211,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,62,211,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,199,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,199,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,200,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,200,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,211,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,211,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,212,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,63,212,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,200,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,200,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,201,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,201,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,212,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,212,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,213,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,64,213,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,65,25,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,65,25,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,65,26,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,65,26,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,65,201,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,65,201,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,65,213,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,65,213,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,52,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402895310E+04,-1.467631720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,52,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402970310E+04,1.467656720E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,53,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505780E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,53,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474690E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,202,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,202,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,214,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,66,214,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,202,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,202,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,203,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,203,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,214,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,214,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,215,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,67,215,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,203,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,203,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,204,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,204,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,215,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,215,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,216,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,68,216,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,204,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,204,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,205,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,205,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,216,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,216,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,217,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,69,217,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,205,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,205,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,206,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,206,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,217,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,217,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,218,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,70,218,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,206,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,206,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,207,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,207,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,218,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,218,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,219,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,71,219,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,207,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,207,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,208,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,208,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,219,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,219,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,220,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,72,220,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,208,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,208,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,209,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,209,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,220,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,220,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,221,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,73,221,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,209,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,209,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,210,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,210,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,221,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,221,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,222,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,74,222,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,210,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,210,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,211,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,211,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,222,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,222,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,223,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,75,223,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,211,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,211,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,212,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,212,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,223,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,223,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,224,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,76,224,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,212,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,212,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,213,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,213,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,224,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,224,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,225,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,77,225,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,78,26,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,78,26,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,78,27,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,78,27,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,78,213,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,78,213,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,78,225,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,78,225,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,51,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429853120E+04,-1.143284300E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,51,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912890E+04,1.143303980E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,52,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402970310E+04,1.467656720E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,52,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402895310E+04,-1.467631720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,214,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,214,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,226,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,79,226,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,214,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,214,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,215,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,215,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,226,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,226,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,227,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,80,227,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,215,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,215,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,216,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,216,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,227,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,227,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,228,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,81,228,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,216,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,216,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,217,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,217,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,228,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,228,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,229,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,82,229,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,217,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,217,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,218,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,218,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,229,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,229,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,230,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,83,230,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,218,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,218,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,219,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,219,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,230,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,230,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,231,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,84,231,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,219,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,219,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,220,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,220,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,231,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,231,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,232,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,85,232,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,220,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,220,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,221,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,221,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,232,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,232,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,233,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,86,233,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,221,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,221,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,222,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,222,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,233,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,233,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,234,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,87,234,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,222,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,222,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,223,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,223,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,234,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,234,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,235,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,88,235,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,223,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,223,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,224,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,224,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,235,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,235,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,236,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,89,236,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,224,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,224,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,225,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,225,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,236,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,236,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,237,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,90,237,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,91,27,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,91,27,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,91,28,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,91,28,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,91,225,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,91,225,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,91,237,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,91,237,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,50,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282620E+04,8.294273440E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,50,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,51,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429853120E+04,-1.143284300E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,51,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912890E+04,1.143303980E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,226,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,226,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,238,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,92,238,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,226,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,226,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,227,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,227,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,238,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,238,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,239,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,93,239,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,227,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,227,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,228,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,228,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,239,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,239,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,240,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,94,240,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,228,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,228,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,229,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,229,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,240,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,240,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,241,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,95,241,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,229,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,229,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,230,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,230,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,241,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,241,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,242,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,96,242,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,230,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,230,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,231,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,231,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,242,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,242,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,243,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,97,243,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,231,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,231,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,232,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,232,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,243,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,243,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,244,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,98,244,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,232,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,232,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,233,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,233,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,244,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,244,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,245,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,99,245,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,233,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,233,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,234,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,234,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,245,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,245,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,246,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,100,246,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,234,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,234,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,235,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,235,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,246,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,246,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,247,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,101,247,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,235,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,235,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,236,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,236,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,247,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,247,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,248,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,102,248,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,236,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,236,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,237,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,237,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,248,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,248,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,249,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,103,249,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,104,28,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,104,28,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,104,29,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,104,29,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,104,237,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,104,237,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,104,249,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,104,249,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,49,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307230E+04,5.454356250E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,105,49,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,105,50,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,50,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282620E+04,8.294273440E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,238,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,238,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,250,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,105,250,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,238,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,238,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,239,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,239,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,250,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,250,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,251,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,106,251,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,239,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,239,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,240,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,240,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,251,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,251,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,252,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,107,252,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,240,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,240,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,241,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,241,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,252,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,252,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,253,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,108,253,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,241,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,241,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,242,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,242,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,253,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,253,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,254,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,109,254,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,242,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,242,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,243,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,243,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,254,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,254,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,255,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,110,255,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,243,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,243,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,244,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,244,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,255,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,255,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,256,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,111,256,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,244,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,244,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,245,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,245,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,256,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,256,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,257,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,112,257,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,245,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,245,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,246,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,246,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,257,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,257,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,258,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,113,258,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,246,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,246,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,247,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,247,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,258,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,258,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,259,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,114,259,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,247,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,247,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,248,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,248,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,259,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,259,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,260,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,115,260,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,248,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,248,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,249,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,249,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,260,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,260,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,261,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,116,261,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,117,29,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,117,29,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,117,30,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,117,30,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,117,249,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,117,249,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,117,261,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,117,261,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,118,48,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317128910E+03,3.105709380E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,118,48,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105602930E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,118,49,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,118,49,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307230E+04,5.454356250E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,118,250,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,118,250,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,118,262,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,118,262,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,250,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,250,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,251,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,251,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,262,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,262,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,263,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,119,263,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,251,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,251,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,252,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,252,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,263,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,263,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,264,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,120,264,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,252,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,252,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,253,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,253,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,264,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,264,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,265,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,121,265,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,253,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,253,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,254,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,254,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,265,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,265,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,266,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,122,266,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,254,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,254,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,255,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,255,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,266,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,266,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,267,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,123,267,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,255,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,255,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,256,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,256,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,267,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,267,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,268,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,124,268,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,256,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,256,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,257,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,257,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,268,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,268,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,269,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,125,269,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,257,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,257,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,258,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,258,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,269,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,269,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,270,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,126,270,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,258,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,258,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,259,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,259,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,270,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,270,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,271,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,127,271,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,259,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,259,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,260,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,260,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,271,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,271,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,272,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,128,272,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,260,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,260,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,261,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,261,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,272,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,272,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,273,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,129,273,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,130,30,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,130,30,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,130,31,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,130,31,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,130,261,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,130,261,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,130,273,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,130,273,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,131,47,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244892580E+03,1.414965230E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,131,47,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,131,48,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317128910E+03,3.105709380E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,131,48,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105602930E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,131,262,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,131,262,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,131,274,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,131,274,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,262,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,262,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,263,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,263,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,274,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,274,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,275,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,132,275,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,263,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,263,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,264,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,264,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,275,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,275,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,276,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,133,276,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,264,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,264,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,265,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,265,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,276,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,276,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,277,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,134,277,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,265,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,265,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,266,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,266,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,277,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,277,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,278,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,135,278,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,266,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,266,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,267,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,267,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,278,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,278,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,279,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,136,279,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,267,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,267,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,268,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,268,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,279,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,279,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,280,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,137,280,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,268,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,268,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,269,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,269,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,280,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,280,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,281,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,138,281,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,269,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,269,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,270,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,270,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,281,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,281,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,282,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,139,282,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,270,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,270,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,271,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,271,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,282,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,282,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,283,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,140,283,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,271,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,271,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,272,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,272,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,283,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,283,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,284,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,141,284,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,272,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,272,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,273,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,273,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,284,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,284,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,142,285,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,142,285,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,143,31,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,143,31,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,143,32,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,143,32,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,143,273,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,143,273,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,143,285,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,143,285,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,46,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497933720E+03,4.993160640E+03,0.000000000E+00,1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,46,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745850E+03,-4.992438480E+03,0.000000000E+00,-1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,47,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244892580E+03,1.414965230E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,47,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,274,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,144,274,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,144,286,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,144,286,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,145,274,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,145,274,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,145,275,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,145,275,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,145,286,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,145,286,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,145,287,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,145,287,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,275,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,275,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,276,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,276,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,287,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,287,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,288,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,146,288,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,276,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,276,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,277,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,277,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,288,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,288,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,289,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,147,289,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,277,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,277,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,278,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,278,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,289,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,289,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,290,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,148,290,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,278,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,278,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,279,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,279,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,290,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,290,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,291,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,149,291,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,279,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,279,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,280,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,280,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,291,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,291,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,292,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,150,292,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,280,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,280,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,281,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,281,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,292,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,292,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,293,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,151,293,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,281,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,281,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,282,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,282,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,293,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,293,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,294,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,152,294,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,282,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,282,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,283,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,283,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,294,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,294,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,295,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,153,295,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,283,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,283,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,284,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,284,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,295,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,295,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,296,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,154,296,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,155,284,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,155,284,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,155,285,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,155,285,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,155,296,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,155,296,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,155,297,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,155,297,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,156,32,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,156,32,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,156,33,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,156,33,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,156,285,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,156,285,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,156,297,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,156,297,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,4,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.054687500E-02,6.103515620E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,157,4,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.030273440E-02,6.103515620E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,157,45,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437990E+03,-1.497745730E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,45,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933720E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,46,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497933720E+03,4.993160640E+03,0.000000000E+00,1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,46,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745850E+03,-4.992438480E+03,0.000000000E+00,-1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,286,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,157,286,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,44,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965530E+04,4.244893550E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,44,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871390E+04,-4.244618160E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,45,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933720E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,45,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437990E+03,-1.497745730E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,286,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,286,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,158,287,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,158,287,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,159,43,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105709180E+04,9.317128910E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,159,43,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316805660E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,159,44,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871390E+04,-4.244618160E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,159,44,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965530E+04,4.244893550E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,159,287,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,159,287,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,159,288,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,159,288,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,160,42,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,160,42,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269340E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,160,43,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105709180E+04,9.317128910E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,160,43,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316805660E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,160,288,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,160,288,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,160,289,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,160,289,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,41,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,41,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235350E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,42,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269340E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,161,42,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,161,289,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,289,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,290,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,161,290,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,40,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143303980E+05,3.429912890E+04,0.000000000E+00,1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,40,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852730E+04,0.000000000E+00,-1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,41,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235350E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,41,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,290,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,290,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,291,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,162,291,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,39,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402969920E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,39,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631720E+05,-4.402894530E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,40,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143303980E+05,3.429912890E+04,0.000000000E+00,1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,40,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852730E+04,0.000000000E+00,-1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,291,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,291,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,292,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,163,292,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,38,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,38,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474530E+05,-5.350424220E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,39,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631720E+05,-4.402894530E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,39,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402969920E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,292,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,292,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,293,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,164,293,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,37,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217979300E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,37,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,38,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474530E+05,-5.350424220E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,38,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,293,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,293,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,294,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,165,294,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,36,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239840E+05,6.954719530E+04,0.000000000E+00,8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,166,36,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,-8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,166,37,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,37,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217979300E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,294,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,294,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,295,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,166,295,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,167,35,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,167,35,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505500000E+05,7.516500000E+04,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,167,36,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,-8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,167,36,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239840E+05,6.954719530E+04,0.000000000E+00,8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,167,295,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,167,295,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,167,296,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,167,296,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,168,34,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622840940E+05,7.868521880E+04,0.000000000E+00,3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,168,34,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785310E+05,-7.868357030E+04,0.000000000E+00,-3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,168,35,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,168,35,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505500000E+05,7.516500000E+04,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,168,296,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,168,296,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,168,297,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,168,297,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,169,3,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.662755620E+05,-7.988268750E+04,0.000000000E+00,6.103515620E-05 +Increment 10: Step Time = 1.000,PART-1-1,169,3,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.662812500E+05,7.988435940E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,169,33,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,169,33,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,169,34,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785310E+05,-7.868357030E+04,0.000000000E+00,-3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,169,34,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622840940E+05,7.868521880E+04,0.000000000E+00,3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,169,297,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,169,297,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,170,5,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.988268750E+04,-2.662755620E+05,0.000000000E+00,2.975463870E-03 +Increment 10: Step Time = 1.000,PART-1-1,170,5,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.988435940E+04,2.662812500E+05,0.000000000E+00,2.868652340E-03 +Increment 10: Step Time = 1.000,PART-1-1,170,58,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,170,58,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,170,105,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868357030E+04,-2.622785310E+05,0.000000000E+00,-3.036812260E+03 +Increment 10: Step Time = 1.000,PART-1-1,170,105,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,3.036820070E+03 +Increment 10: Step Time = 1.000,PART-1-1,170,298,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,170,298,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,171,58,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,171,58,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,171,59,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,171,59,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,171,298,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,171,298,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,171,299,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,171,299,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,172,59,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,172,59,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,172,60,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,172,60,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,172,299,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,172,299,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,172,300,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,172,300,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,173,60,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,173,60,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,173,61,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,173,61,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,173,300,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,173,300,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,173,301,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,173,301,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,174,61,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,174,61,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,174,62,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,174,62,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,174,301,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,174,301,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,174,302,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,174,302,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,175,62,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,175,62,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,175,63,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,175,63,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,175,302,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,175,302,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,175,303,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,175,303,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,176,63,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,176,63,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,176,64,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,176,64,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,176,303,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,176,303,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,176,304,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,176,304,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,177,64,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,177,64,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,177,65,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,177,65,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,177,304,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,177,304,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,177,305,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,177,305,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,178,65,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,178,65,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,178,66,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,178,66,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,178,305,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,178,305,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,178,306,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,178,306,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,179,66,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,179,66,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,179,67,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,179,67,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,179,306,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,179,306,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,179,307,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,179,307,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,180,67,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,180,67,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,180,68,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,180,68,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,180,307,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,180,307,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,180,308,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,180,308,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,181,68,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,181,68,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,181,69,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,181,69,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,181,308,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,181,308,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,181,309,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,181,309,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,182,2,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.034600000E+05,7.034600000E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,182,2,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.034501250E+05,-7.034501250E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,182,69,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,182,69,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,182,70,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,182,70,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,182,309,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,182,309,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,183,104,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447500E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,104,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,105,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,3.036820070E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,105,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868357030E+04,-2.622785310E+05,0.000000000E+00,-3.036812260E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,298,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,298,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,183,310,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,183,310,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,184,298,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312890E+04,-2.331532500E+05,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,184,298,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397660E+04,2.331588440E+05,0.000000000E+00,6.144696290E+03 +Increment 10: Step Time = 1.000,PART-1-1,184,299,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,184,299,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,184,310,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,184,310,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,184,311,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,184,311,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,299,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731765620E+04,-1.812781720E+05,0.000000000E+00,-9.581825200E+03 +Increment 10: Step Time = 1.000,PART-1-1,185,299,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837500E+04,1.812838120E+05,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,185,300,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,300,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,311,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,311,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,312,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,185,312,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,300,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318842770E+03,1.360697190E+05,0.000000000E+00,1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,300,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318113280E+03,-1.360640000E+05,0.000000000E+00,-1.295406250E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,301,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,301,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,312,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,312,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,313,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,186,313,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,301,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590230E+04,9.582790620E+04,0.000000000E+00,1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,301,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669530E+04,-9.582207030E+04,0.000000000E+00,-1.571908200E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,302,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,302,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,313,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,313,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,314,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,187,314,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,302,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681640E+04,-5.795133200E+04,0.000000000E+00,-1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,302,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591800E+04,5.795732810E+04,0.000000000E+00,1.824933980E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,303,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,303,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,314,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,314,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,315,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,188,315,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,303,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014296090E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,303,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675590E+04,0.000000000E+00,-2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,304,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,304,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,315,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,315,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,316,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,189,316,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,304,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003658980E+04,0.000000000E+00,2.371783400E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,304,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,305,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,305,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,316,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,316,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,317,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,190,317,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,305,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654690E+05,6.529733590E+04,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,305,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629840E+05,-6.529089060E+04,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,306,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,306,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,317,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,317,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,318,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,191,318,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,306,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095230E+05,0.000000000E+00,3.229937890E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,306,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,307,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,307,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,318,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,318,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,319,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,192,319,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,307,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,307,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,308,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,308,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,319,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,319,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,320,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,193,320,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,308,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,5.207908590E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,308,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,-5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,309,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,309,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,320,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,320,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,321,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,194,321,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,195,70,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,195,70,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,195,71,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,195,71,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,195,309,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447190E+05,-4.614446880E+05,0.000000000E+00,6.955395310E+04 +Increment 10: Step Time = 1.000,PART-1-1,195,309,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,-6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,195,321,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,195,321,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,196,103,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954719530E+04,2.318239690E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,196,103,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,196,104,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447500E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,196,104,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,196,310,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,196,310,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,196,322,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,196,322,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,310,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001602730E+04,-2.230911410E+05,0.000000000E+00,-1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,310,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689060E+04,2.230963440E+05,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,311,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,311,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,322,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,322,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,323,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,197,323,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,311,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676953120E+04,1.739477500E+05,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,311,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878910E+04,-1.739425000E+05,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,312,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,312,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,323,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,323,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,324,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,198,324,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,312,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084052150E+04,-1.307830620E+05,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,312,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129590E+04,1.307883120E+05,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,313,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,313,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,324,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,324,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,325,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,199,325,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,313,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880470E+04,9.204071090E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,313,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968750E+04,-9.203545310E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,314,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,314,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,325,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,325,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,326,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,200,326,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,314,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741800E+04,0.000000000E+00,3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,314,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298440E+04,-5.527219530E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,315,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,315,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,326,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,326,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,327,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,201,327,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,315,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918112500E+04,-1.828012300E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,315,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,316,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,316,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,327,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,327,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,328,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,202,328,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,316,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991640E+05,-2.122693160E+04,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,316,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,317,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,317,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,328,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,328,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,329,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,203,329,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,317,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,317,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609662500E+04,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,318,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,318,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,329,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,329,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,330,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,204,330,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,318,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,318,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,-5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,319,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,319,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,330,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,330,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,331,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,205,331,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,319,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,319,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221880E+05,1.899734530E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,320,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,320,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,331,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,331,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,332,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,206,332,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,320,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,320,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718120E+05,0.000000000E+00,-7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,321,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,321,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,332,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,332,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,333,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,207,333,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,208,71,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,208,71,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,208,72,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,208,72,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,208,321,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892500E+05,0.000000000E+00,5.207909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,208,321,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953120E+05,0.000000000E+00,-5.207864840E+04 +Increment 10: Step Time = 1.000,PART-1-1,208,333,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,208,333,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,102,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621720E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,102,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659380E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,103,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954719530E+04,2.318239690E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,209,103,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,209,322,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,322,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,334,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,209,334,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,322,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202340E+04,2.070444530E+05,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,322,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,-1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,323,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,323,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,334,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,334,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,335,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,210,335,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,323,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583789840E+04,1.622826560E+05,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,323,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713670E+04,-1.622780470E+05,0.000000000E+00,-2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,324,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,324,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,335,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,335,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,336,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,211,336,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,324,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315157030E+04,1.224702580E+05,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,324,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315074800E+04,-1.224656720E+05,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,325,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,325,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,336,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,336,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,337,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,212,337,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,325,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100986130E+04,8.622389840E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,325,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078120E+04,-8.621940620E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,326,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,326,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,337,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,337,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,338,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,213,338,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,326,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141095310E+04,0.000000000E+00,-4.885993750E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,326,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141537500E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,327,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,327,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,338,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,338,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,339,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,214,339,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,327,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526560E+04,1.608139060E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,327,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360660940E+04,-1.607683590E+04,0.000000000E+00,-5.458783590E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,328,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,328,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,339,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,339,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,340,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,215,340,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,328,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042190E+04,-2.184676170E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,328,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145120E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,329,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,329,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,340,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,340,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,341,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,216,341,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,329,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463130080E+04,0.000000000E+00,-6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,329,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851950E+05,-6.462668360E+04,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,330,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,330,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,341,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,341,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,342,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,217,342,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,330,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,330,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,331,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,331,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,342,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,342,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,343,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,218,343,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,331,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352500E+05,-1.757352500E+05,0.000000000E+00,7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,331,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,-7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,332,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,332,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,343,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,343,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,344,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,219,344,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,332,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,-6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,332,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,333,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,333,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,344,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,344,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,345,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,220,345,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,221,72,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,221,72,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,221,73,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,221,73,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,221,333,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420620E+05,2.868780940E+05,0.000000000E+00,-3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,221,333,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352340E+05,-2.868733750E+05,0.000000000E+00,3.986019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,221,345,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,221,345,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,101,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474690E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,101,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505780E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,102,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659380E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,102,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621720E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,334,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,334,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,346,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,222,346,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,334,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,334,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389450E+04,-1.860019530E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,335,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,335,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,346,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,346,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,347,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,223,347,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,335,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,335,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834770E+04,-1.470543750E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,336,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,336,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,347,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,347,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,348,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,224,348,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,336,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598895410E+04,1.117513750E+05,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,336,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810550E+04,-1.117475470E+05,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,337,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,337,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,348,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,348,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,349,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,225,349,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,337,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529471190E+03,7.897884380E+04,0.000000000E+00,5.213228520E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,337,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530411620E+03,-7.897491410E+04,0.000000000E+00,-5.213209770E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,338,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,338,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,349,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,349,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,350,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,226,350,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,338,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544920E+04,4.704863280E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,338,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658590E+04,-4.704462890E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,339,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,339,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,350,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,350,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,351,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,227,351,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,339,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317290E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,339,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697750E+04,0.000000000E+00,6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,340,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,340,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,351,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,351,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,352,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,228,352,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,340,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,340,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594340E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,341,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,341,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,352,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,352,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,353,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,229,353,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,341,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566678910E+04,-5.948885940E+04,0.000000000E+00,7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,341,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,342,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,342,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,353,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,353,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,354,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,230,354,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,342,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,7.499019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,342,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,-7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,343,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,343,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,354,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,354,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,355,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,231,355,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,343,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518910E+05,1.499468280E+05,0.000000000E+00,-7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,343,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,7.063085160E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,344,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,344,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,355,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,355,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,356,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,232,356,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,344,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,-5.696029690E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,344,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771950E+05,-1.935900940E+05,0.000000000E+00,5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,345,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,345,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,356,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,356,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,357,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,233,357,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,234,73,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,234,73,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,234,74,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,234,74,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,234,345,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,234,345,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161250E+05,2.256726250E+05,0.000000000E+00,-3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,234,357,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,234,357,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,100,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402895310E+04,-1.467631720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,100,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402970310E+04,1.467656720E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,101,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505780E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,101,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474690E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,346,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,346,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,358,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,235,358,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,346,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,346,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521410E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,347,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,347,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,358,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,358,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,359,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,236,359,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,347,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,347,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289908980E+04,-1.292236250E+05,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,348,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,348,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,359,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,359,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,360,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,237,360,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,348,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,348,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,349,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,349,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,360,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,360,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,361,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,238,361,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,349,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807491700E+03,7.093299220E+04,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,349,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806475100E+03,-7.092996880E+04,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,350,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,350,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,361,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,361,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,362,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,239,362,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,350,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793559570E+03,4.276745700E+04,0.000000000E+00,6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,350,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794718750E+03,-4.276448440E+04,0.000000000E+00,-6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,351,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,351,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,362,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,362,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,363,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,240,363,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,351,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813770E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,351,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211520E+04,1.379129300E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,352,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,352,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,363,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,363,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,364,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,241,364,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,352,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256840E+04,0.000000000E+00,7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,352,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257030E+04,1.700585160E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,353,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,353,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,364,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,364,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,365,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,242,365,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,353,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028457030E+04,-5.028456640E+04,0.000000000E+00,7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,353,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769530E+04,5.028769530E+04,0.000000000E+00,-7.637753910E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,354,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,354,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,365,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,365,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,366,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,243,366,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,354,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,354,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,-7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,355,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,355,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,366,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,366,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,367,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,244,367,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,355,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668750E+04,-1.209851950E+05,0.000000000E+00,6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,355,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879450E+05,0.000000000E+00,-6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,356,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,356,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,367,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,367,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,368,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,245,368,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,356,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609100780E+04,-1.521631250E+05,0.000000000E+00,5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,356,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,-5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,357,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,357,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,368,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,368,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,369,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,246,369,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,247,74,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,247,74,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,247,75,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,247,75,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,247,357,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,247,357,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,-2.734049220E+04 +Increment 10: Step Time = 1.000,PART-1-1,247,369,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,247,369,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,99,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429853120E+04,-1.143284300E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,99,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912890E+04,1.143303980E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,100,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402970310E+04,1.467656720E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,100,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402895310E+04,-1.467631720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,358,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,358,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,370,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,248,370,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,358,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,358,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944039060E+04,-1.342300780E+05,0.000000000E+00,-2.496532420E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,359,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,359,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,370,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,370,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,371,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,249,371,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,359,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098357030E+05,0.000000000E+00,3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,359,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107901170E+04,-1.098331720E+05,0.000000000E+00,-3.872208590E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,360,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,360,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,371,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,371,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,372,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,250,372,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,360,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968750E+04,-8.607474220E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,360,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,361,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,361,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,372,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,372,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,373,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,251,373,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,361,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944730E+04,6.262745310E+04,0.000000000E+00,6.143286720E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,361,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837790E+04,-6.262491020E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,362,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,362,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,373,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,373,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,374,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,252,374,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,362,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705256350E+03,3.895711330E+04,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,362,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703931150E+03,-3.895451170E+04,0.000000000E+00,-6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,363,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,363,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,374,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,374,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,375,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,253,375,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,363,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698104250E+03,1.451236820E+04,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,363,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699984380E+03,-1.450980660E+04,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,364,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,364,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,375,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,375,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,376,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,254,376,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,364,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998140E+04,-1.115998140E+04,0.000000000E+00,7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,364,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240720E+04,1.116240620E+04,0.000000000E+00,-7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,365,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,365,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,376,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,376,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,377,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,255,377,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,365,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256640E+04,-3.811031640E+04,0.000000000E+00,7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,365,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585160E+04,3.811257030E+04,0.000000000E+00,-7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,366,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,366,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,377,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,377,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,378,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,256,378,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,366,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230470E+04,-6.560952340E+04,0.000000000E+00,7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,366,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,-7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,367,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,367,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,378,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,378,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,379,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,257,379,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,367,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184676170E+04,-9.187042970E+04,0.000000000E+00,6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,367,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,-6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,368,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,368,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,379,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,379,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,380,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,258,380,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,368,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217580E+04,1.141009060E+05,0.000000000E+00,-4.444114840E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,368,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693360E+04,-1.140991640E+05,0.000000000E+00,4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,369,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,369,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,380,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,380,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,381,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,259,381,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,260,75,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,260,75,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,260,76,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,260,76,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,260,369,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,-2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,260,369,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659180E+04,-1.291639690E+05,0.000000000E+00,2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,260,381,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,260,381,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,98,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282620E+04,8.294273440E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,98,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,99,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429853120E+04,-1.143284300E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,99,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912890E+04,1.143303980E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,370,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,370,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,382,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,261,382,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,370,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303678910E+04,1.064934530E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,370,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914770E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,371,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,371,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,382,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,382,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,383,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,262,383,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,371,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926924020E+04,8.994906250E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,371,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926839060E+04,-8.994707810E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,372,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,372,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,383,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,383,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,384,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,263,384,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,372,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,372,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,373,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,373,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,384,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,384,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,385,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,264,385,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,373,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,373,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,-6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,374,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,374,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,385,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,385,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,386,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,265,386,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,374,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234770E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,374,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041800E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,375,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,375,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,386,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,386,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,387,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,266,387,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,375,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,-7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,375,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341020E+04,1.639341020E+04,0.000000000E+00,7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,376,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,376,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,387,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,387,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,388,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,267,388,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,376,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104250E+03,0.000000000E+00,7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,376,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984130E+03,0.000000000E+00,-7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,377,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,377,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,388,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,388,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,389,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,268,389,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,377,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,377,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,-7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,378,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,378,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,389,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,389,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,390,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,269,390,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,378,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317380E+04,4.471293360E+04,0.000000000E+00,-6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,378,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,379,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,379,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,390,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,390,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,391,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,270,391,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,379,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683200E+04,6.360661330E+04,0.000000000E+00,-5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,379,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138870E+04,-6.360526170E+04,0.000000000E+00,5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,380,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,380,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,391,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,391,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,392,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,271,392,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,380,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828527150E+04,-7.917984380E+04,0.000000000E+00,3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,380,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012110E+04,7.918112500E+04,0.000000000E+00,-3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,381,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,381,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,392,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,392,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,393,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,272,393,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,273,76,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,273,76,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,273,77,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,273,77,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,273,381,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,-2.081669730E+04 +Increment 10: Step Time = 1.000,PART-1-1,273,381,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014296090E+04,-8.951697660E+04,0.000000000E+00,2.081690040E+04 +Increment 10: Step Time = 1.000,PART-1-1,273,393,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,273,393,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,97,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307230E+04,5.454356250E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,274,97,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,274,98,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,98,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282620E+04,8.294273440E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,382,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,382,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,394,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,274,394,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,382,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799410E+04,-7.961334380E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,382,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878320E+04,7.961489060E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,383,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,383,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,394,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,394,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,395,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,275,395,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,383,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310550E+04,-7.057793750E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,383,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769396880E+04,7.057949220E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,384,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,384,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,395,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,395,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,396,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,276,396,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,384,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246680E+04,5.938417970E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,384,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,385,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,385,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,396,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,396,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,397,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,277,397,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,385,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981250E+04,4.667593750E+04,0.000000000E+00,5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,385,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099866020E+04,-4.667430470E+04,0.000000000E+00,-5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,386,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,386,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,397,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,397,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,398,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,278,398,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,386,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,6.453121880E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,386,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,-6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,387,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,387,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,398,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,398,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,399,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,279,399,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,387,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910511910E+04,0.000000000E+00,-6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,387,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910667970E+04,0.000000000E+00,6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,388,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,388,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,399,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,399,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,400,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,280,400,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,388,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256350E+03,0.000000000E+00,6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,388,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703931150E+03,0.000000000E+00,-6.862875000E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,389,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,389,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,400,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,400,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,401,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,281,401,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,389,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793560550E+03,0.000000000E+00,6.576900780E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,389,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448440E+04,9.794719730E+03,0.000000000E+00,-6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,390,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,390,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,401,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,401,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,402,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,282,402,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,390,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544920E+04,0.000000000E+00,5.921857420E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,390,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462890E+04,2.385658400E+04,0.000000000E+00,-5.921819530E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,391,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,391,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,402,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,402,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,403,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,283,403,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,391,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141096090E+04,3.661205470E+04,0.000000000E+00,-4.885993360E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,391,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537500E+04,-3.661103120E+04,0.000000000E+00,4.886017190E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,392,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,392,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,403,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,403,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,404,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,284,404,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,392,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527742190E+04,-4.694208200E+04,0.000000000E+00,3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,392,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527219920E+04,4.694298440E+04,0.000000000E+00,-3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,393,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,393,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,404,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,404,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,405,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,285,405,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,286,77,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,286,77,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,286,78,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,286,78,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,286,393,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795133200E+04,5.371682030E+04,0.000000000E+00,-1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,286,393,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,286,405,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,286,405,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,287,96,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317128910E+03,3.105709380E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,287,96,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105602930E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,287,97,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,287,97,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307230E+04,5.454356250E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,287,394,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,287,394,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,287,406,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,287,406,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,394,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,394,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324410E+04,5.514863670E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,395,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,395,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,406,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,406,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,407,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,288,407,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,395,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894530E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,395,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,396,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,396,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,407,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,407,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,408,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,289,408,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,396,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654300E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,396,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750780E+04,-4.698530860E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,397,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,397,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,408,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,408,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,409,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,290,409,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,397,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097270E+04,3.939097660E+04,0.000000000E+00,5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,397,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976560E+04,0.000000000E+00,-5.220282810E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,398,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,398,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,409,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,409,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,410,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,291,410,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,398,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667594140E+04,3.099981450E+04,0.000000000E+00,5.813026170E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,398,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865820E+04,0.000000000E+00,-5.813019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,399,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,399,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,410,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,410,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,411,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,292,411,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,399,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815620E+04,-2.230631840E+04,0.000000000E+00,-6.127050390E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,399,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,400,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,400,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,411,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,411,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,412,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,293,412,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,400,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,400,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491410E+04,-1.351837700E+04,0.000000000E+00,-6.143269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,401,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,401,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,412,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,412,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,413,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,294,413,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,401,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807492190E+03,0.000000000E+00,5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,401,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474610E+03,0.000000000E+00,-5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,402,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,402,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,413,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,413,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,414,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,295,414,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,402,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897884380E+04,-3.529470700E+03,0.000000000E+00,5.213228120E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,402,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897490620E+04,3.530412110E+03,0.000000000E+00,-5.213209380E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,403,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,403,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,414,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,414,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,415,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,296,415,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,403,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621941410E+04,1.101077930E+04,0.000000000E+00,-4.262664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,403,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622389840E+04,-1.100986230E+04,0.000000000E+00,4.262678120E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,404,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,404,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,415,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,415,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,416,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,297,416,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,404,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880470E+04,0.000000000E+00,3.025972270E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,404,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203544530E+04,1.701968750E+04,0.000000000E+00,-3.025955470E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,405,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,405,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,416,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,416,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,417,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,298,417,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,299,78,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,299,78,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,299,79,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,299,79,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,299,405,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093669530E+04,0.000000000E+00,-1.571908110E+04 +Increment 10: Step Time = 1.000,PART-1-1,299,405,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590230E+04,0.000000000E+00,1.571920700E+04 +Increment 10: Step Time = 1.000,PART-1-1,299,417,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,299,417,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,300,95,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244892580E+03,1.414965230E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,300,95,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,300,96,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317128910E+03,3.105709380E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,300,96,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105602930E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,300,406,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,300,406,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,300,418,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,300,418,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,406,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,406,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,-1.583661430E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,407,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,407,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,418,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,418,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,419,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,301,419,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,407,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,407,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329490E+04,-3.676236330E+04,0.000000000E+00,-2.587679690E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,408,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,408,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,419,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,419,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,420,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,302,420,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,408,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496480E+04,3.563496480E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,408,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394530E+04,-3.563394140E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,409,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,409,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,420,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,420,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,421,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,303,421,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,409,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530470E+04,-3.264750780E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,409,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,410,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,410,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,421,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,421,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,422,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,304,422,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,410,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,410,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,411,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,411,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,422,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,422,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,423,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,305,423,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,411,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,411,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,-5.170407030E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,412,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,412,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,423,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,423,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,424,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,306,424,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,412,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968750E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,412,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238059180E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,413,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,413,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,424,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,424,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,425,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,307,425,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,413,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937067970E+04,1.911549800E+04,0.000000000E+00,4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,413,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936755470E+04,-1.911462110E+04,0.000000000E+00,-4.902605860E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,414,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,414,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,425,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,425,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,426,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,308,426,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,414,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895510E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,414,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810450E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,415,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,415,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,426,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,426,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,427,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,309,427,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,415,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702580E+05,1.315156930E+04,0.000000000E+00,3.539585940E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,415,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656720E+05,-1.315074900E+04,0.000000000E+00,-3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,416,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,416,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,427,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,427,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,428,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,310,428,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,416,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129490E+04,0.000000000E+00,2.501280860E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,416,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830620E+05,-1.084051950E+04,0.000000000E+00,-2.501269140E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,417,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,417,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,428,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,428,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,311,429,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,311,429,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,312,79,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,312,79,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,312,80,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,312,80,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,312,417,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318842770E+03,0.000000000E+00,1.295413180E+04 +Increment 10: Step Time = 1.000,PART-1-1,312,417,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318113280E+03,0.000000000E+00,-1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,312,429,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,312,429,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,94,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497933720E+03,4.993160640E+03,0.000000000E+00,1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,94,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745850E+03,-4.992438480E+03,0.000000000E+00,-1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,95,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244892580E+03,1.414965230E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,95,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,418,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,313,418,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,313,430,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,313,430,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,314,418,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366600E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,314,418,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,314,419,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,314,419,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,314,430,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,314,430,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,314,431,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,314,431,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,419,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924410E+04,2.336924610E+04,0.000000000E+00,1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,419,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,-1.793107810E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,420,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,420,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,431,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,431,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,432,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,315,432,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,420,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341020E+04,2.543420700E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,420,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236330E+04,-2.543329690E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,421,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,421,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,432,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,432,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,433,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,316,433,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,421,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,421,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,422,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,422,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,433,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,433,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,434,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,317,434,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,422,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057793750E+04,-2.769310160E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,422,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057950000E+04,2.769397070E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,423,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,423,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,434,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,434,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,435,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,318,435,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,423,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,423,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926924020E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,424,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,424,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,435,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,435,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,436,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,319,436,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,424,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,424,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,425,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,425,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,436,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,436,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,437,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,320,437,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,425,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267500E+05,3.289991410E+04,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,425,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,426,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,426,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,437,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,437,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,438,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,321,438,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,426,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834380E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,426,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581720E+05,3.452914060E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,427,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,427,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,438,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,438,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,439,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,322,439,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,427,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713280E+04,0.000000000E+00,-2.629015040E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,427,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826560E+05,3.583790230E+04,0.000000000E+00,2.629019340E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,428,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,428,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,439,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,439,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,440,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,323,440,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,324,428,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952730E+04,0.000000000E+00,1.853218550E+04 +Increment 10: Step Time = 1.000,PART-1-1,324,428,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,-1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,324,429,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,324,429,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,324,440,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,324,440,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,324,441,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,324,441,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,325,80,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,325,80,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,325,81,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,325,81,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,325,429,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781720E+05,-3.731765620E+04,0.000000000E+00,-9.581826170E+03 +Increment 10: Step Time = 1.000,PART-1-1,325,429,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837500E+04,0.000000000E+00,9.581859380E+03 +Increment 10: Step Time = 1.000,PART-1-1,325,441,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,325,441,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,7,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.054687500E-02,6.103515620E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,326,7,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.030273440E-02,6.103515620E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,326,93,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437990E+03,-1.497745730E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,93,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933720E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,94,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497933720E+03,4.993160640E+03,0.000000000E+00,1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,94,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745850E+03,-4.992438480E+03,0.000000000E+00,-1.747479980E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,430,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,326,430,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,92,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965530E+04,4.244893550E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,92,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871390E+04,-4.244618160E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,93,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933720E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,93,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437990E+03,-1.497745730E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,430,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,-4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,430,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,4.952214840E+03 +Increment 10: Step Time = 1.000,PART-1-1,327,431,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,327,431,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,328,91,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105709180E+04,9.317128910E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,328,91,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316805660E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,328,92,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871390E+04,-4.244618160E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,328,92,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965530E+04,4.244893550E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,328,431,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272460E+04,-1.321968650E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,328,431,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039650E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,328,432,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,328,432,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,329,90,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,329,90,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269340E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,329,91,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105709180E+04,9.317128910E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,329,91,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316805660E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,329,432,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,-1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,329,432,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,1.583661230E+04 +Increment 10: Step Time = 1.000,PART-1-1,329,433,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,329,433,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,89,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,89,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235350E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,90,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269340E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,330,90,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,330,433,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,433,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,434,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,330,434,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,88,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143303980E+05,3.429912890E+04,0.000000000E+00,1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,88,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852730E+04,0.000000000E+00,-1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,89,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235350E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,89,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,434,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,434,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961488280E+04,2.696878120E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,435,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,331,435,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,87,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402969920E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,87,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631720E+05,-4.402894530E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,88,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143303980E+05,3.429912890E+04,0.000000000E+00,1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,88,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852730E+04,0.000000000E+00,-1.231147660E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,435,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,435,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303679300E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,436,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,332,436,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,86,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,86,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474530E+05,-5.350424220E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,87,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631720E+05,-4.402894530E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,87,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402969920E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,436,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300940E+05,-3.944038670E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,436,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,437,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,333,437,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,85,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217979300E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,85,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,86,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474530E+05,-5.350424220E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,86,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,437,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,437,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573105080E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,438,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,334,438,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,84,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239840E+05,6.954719530E+04,0.000000000E+00,8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,335,84,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,-8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,335,85,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,85,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217979300E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,438,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,-2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,438,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,2.086266990E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,439,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,335,439,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,336,83,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,336,83,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505500000E+05,7.516500000E+04,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,336,84,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,-8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,336,84,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239840E+05,6.954719530E+04,0.000000000E+00,8.353480470E+03 +Increment 10: Step Time = 1.000,PART-1-1,336,439,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444380E+05,5.634202340E+04,0.000000000E+00,1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,336,439,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,-1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,336,440,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,336,440,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,337,82,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622840940E+05,7.868521880E+04,0.000000000E+00,3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,337,82,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785310E+05,-7.868357030E+04,0.000000000E+00,-3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,337,83,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,337,83,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505500000E+05,7.516500000E+04,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,337,440,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689060E+04,0.000000000E+00,1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,337,440,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911410E+05,-6.001602340E+04,0.000000000E+00,-1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,337,441,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,337,441,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,338,6,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.662755620E+05,-7.988268750E+04,0.000000000E+00,6.103515620E-05 +Increment 10: Step Time = 1.000,PART-1-1,338,6,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.662812500E+05,7.988435940E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,338,81,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,338,81,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,338,82,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785310E+05,-7.868357030E+04,0.000000000E+00,-3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,338,82,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622840940E+05,7.868521880E+04,0.000000000E+00,3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,338,441,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532660E+05,-6.230312890E+04,0.000000000E+00,-6.144679690E+03 +Increment 10: Step Time = 1.000,PART-1-1,338,441,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397660E+04,0.000000000E+00,6.144695310E+03 +Increment 10: Step Time = 1.000,PART-1-1,339,2,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.034600000E+05,7.034600000E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,339,2,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.034501250E+05,-7.034501250E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,339,22,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,339,22,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,339,69,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,339,69,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,339,442,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,339,442,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,340,68,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,340,68,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,340,69,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,340,69,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,340,442,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,340,442,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,340,443,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,340,443,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,341,67,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,341,67,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,341,68,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,341,68,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,341,443,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,341,443,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,341,444,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,341,444,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,342,66,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,342,66,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,342,67,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,342,67,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,342,444,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,342,444,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,342,445,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,342,445,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,343,65,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,343,65,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,343,66,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,343,66,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,343,445,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,343,445,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,343,446,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,343,446,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,344,64,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,344,64,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,344,65,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,344,65,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,344,446,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,344,446,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,344,447,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,344,447,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,345,63,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,345,63,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,345,64,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,345,64,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,345,447,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,345,447,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,345,448,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,345,448,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,346,62,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,346,62,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,346,63,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,346,63,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,346,448,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,346,448,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,346,449,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,346,449,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,347,61,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,347,61,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,347,62,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,347,62,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,347,449,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,347,449,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,347,450,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,347,450,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,348,60,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,348,60,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,348,61,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,348,61,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,348,450,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,348,450,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,348,451,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,348,451,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,349,59,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,349,59,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,349,60,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,349,60,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,349,451,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,349,451,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,349,452,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,349,452,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,350,58,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,350,58,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,350,59,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,350,59,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,350,452,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,350,452,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,350,453,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,350,453,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,351,5,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.988268750E+04,-2.662755620E+05,0.000000000E+00,2.975463870E-03 +Increment 10: Step Time = 1.000,PART-1-1,351,5,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.988435940E+04,2.662812500E+05,0.000000000E+00,2.868652340E-03 +Increment 10: Step Time = 1.000,PART-1-1,351,58,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,351,58,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,351,106,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,-3.036816890E+03 +Increment 10: Step Time = 1.000,PART-1-1,351,106,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868356250E+04,-2.622785310E+05,0.000000000E+00,3.036814940E+03 +Increment 10: Step Time = 1.000,PART-1-1,351,453,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,351,453,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,352,22,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,352,22,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,352,23,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,352,23,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,352,442,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,352,442,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,352,454,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,352,454,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,442,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,442,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,443,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,443,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,454,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,454,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,455,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,353,455,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,443,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,443,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,444,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,444,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,455,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,455,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,456,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,354,456,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,444,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,444,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,445,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,445,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,456,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,456,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,457,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,355,457,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,445,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,445,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,446,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,446,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,457,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,457,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,458,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,356,458,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,446,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,446,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,447,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,447,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,458,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,458,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,459,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,357,459,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,447,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,447,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,448,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,448,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,459,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,459,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,460,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,358,460,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,448,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,448,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,449,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,449,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,460,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,460,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,461,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,359,461,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,449,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,449,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,450,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,450,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,461,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,461,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,462,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,360,462,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,450,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,450,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,451,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,451,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,462,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,462,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,463,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,361,463,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,451,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,451,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,452,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,362,452,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,362,463,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,463,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,464,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,362,464,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,363,452,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,363,452,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,363,453,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,363,453,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,363,464,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,363,464,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,363,465,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,363,465,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,364,106,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868356250E+04,-2.622785310E+05,0.000000000E+00,3.036814940E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,106,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,-3.036816890E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,107,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447810E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,107,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,453,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,453,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,364,465,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,364,465,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,365,23,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,365,23,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,365,24,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,365,24,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,365,454,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,365,454,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,365,466,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,365,466,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,454,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,454,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,455,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,455,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,466,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,466,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,467,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,366,467,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,455,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,455,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,456,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,456,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,467,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,467,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,468,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,367,468,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,456,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,456,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,457,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,457,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,468,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,468,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,469,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,368,469,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,457,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,457,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,458,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,458,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,469,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,469,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,470,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,369,470,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,458,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,458,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,459,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,459,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,470,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,470,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,471,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,370,471,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,459,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,459,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,460,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,460,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,471,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,471,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,472,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,371,472,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,460,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,460,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,461,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,461,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,472,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,472,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,473,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,372,473,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,461,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,461,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,462,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,462,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,473,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,473,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,474,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,373,474,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,462,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,462,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,463,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,463,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,474,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,474,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,475,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,374,475,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,463,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,463,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,464,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,464,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,475,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,475,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,476,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,375,476,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,464,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,464,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,465,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,465,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,476,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,476,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,477,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,376,477,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,377,107,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447810E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,377,107,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,377,108,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954720310E+04,2.318239690E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,377,108,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,377,465,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,377,465,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,377,477,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,377,477,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,378,24,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,378,24,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,378,25,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,378,25,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,378,466,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,378,466,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,378,478,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,378,478,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,466,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,466,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,467,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,467,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,478,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,478,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,479,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,379,479,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,467,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,467,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,468,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,468,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,479,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,479,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,480,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,380,480,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,468,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,468,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,469,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,469,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,480,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,480,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,481,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,381,481,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,469,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,469,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,470,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,470,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,481,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,481,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,482,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,382,482,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,470,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,470,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,471,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,471,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,482,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,482,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,483,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,383,483,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,471,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,471,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,472,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,472,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,483,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,483,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,484,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,384,484,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,472,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,472,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,473,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,473,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,484,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,484,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,485,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,385,485,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,473,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,473,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,474,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,474,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,485,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,485,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,486,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,386,486,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,474,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,474,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,475,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,475,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,486,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,486,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,487,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,387,487,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,475,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,475,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,476,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,476,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,487,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,487,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,488,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,388,488,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,476,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,476,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,477,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,477,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,488,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,488,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,489,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,389,489,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,108,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,390,108,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954720310E+04,2.318239690E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,390,109,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621560E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,109,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659220E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,477,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,477,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,489,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,390,489,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,391,25,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,391,25,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,391,26,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,391,26,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,391,478,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,391,478,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,391,490,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,391,490,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,478,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,478,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,479,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,479,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,490,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,490,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,491,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,392,491,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,479,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,479,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,480,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,480,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,491,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,491,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,492,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,393,492,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,480,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,480,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,481,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,481,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,492,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,492,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,493,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,394,493,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,481,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,481,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,482,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,482,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,493,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,493,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,494,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,395,494,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,482,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,482,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,483,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,483,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,494,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,494,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,495,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,396,495,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,483,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,483,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,484,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,484,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,495,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,495,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,496,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,397,496,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,484,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,484,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,485,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,485,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,496,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,496,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,497,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,398,497,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,485,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,485,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,486,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,486,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,497,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,497,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,498,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,399,498,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,486,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,486,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,487,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,487,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,498,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,498,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,499,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,400,499,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,487,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,487,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,488,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,488,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,499,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,499,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,500,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,401,500,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,488,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,488,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,489,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,489,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,500,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,500,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,501,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,402,501,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,109,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621560E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,109,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659220E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,110,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474530E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,110,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505940E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,489,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,489,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,501,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,403,501,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,404,26,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,404,26,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,404,27,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,404,27,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,404,490,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,404,490,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,404,502,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,404,502,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,490,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,490,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,491,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,491,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,502,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,502,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,503,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,405,503,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,491,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,491,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,492,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,492,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,503,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,503,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,504,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,406,504,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,492,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,492,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,493,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,493,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,504,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,504,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,505,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,407,505,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,493,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,493,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,494,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,494,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,505,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,505,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,506,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,408,506,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,494,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,494,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,495,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,495,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,506,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,506,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,507,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,409,507,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,495,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,495,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,496,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,496,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,507,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,507,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,508,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,410,508,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,496,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,496,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,497,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,497,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,508,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,508,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,509,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,411,509,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,497,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,497,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,498,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,498,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,509,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,509,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,510,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,412,510,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,498,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,498,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,499,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,499,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,510,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,510,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,511,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,413,511,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,499,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,499,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,500,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,500,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,511,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,511,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,512,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,414,512,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,500,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,500,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,501,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,501,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,512,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,512,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,513,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,415,513,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,110,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474530E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,110,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505940E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,111,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402969920E+04,1.467656720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,111,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402894920E+04,-1.467631560E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,501,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,501,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,513,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,416,513,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,417,27,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,417,27,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,417,28,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,417,28,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,417,502,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,417,502,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,417,514,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,417,514,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,502,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,502,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,503,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,503,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,514,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,514,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,515,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,418,515,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,503,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,503,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,504,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,504,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,515,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,515,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,516,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,419,516,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,504,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,504,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,505,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,505,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,516,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,516,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,517,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,420,517,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,505,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,505,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,506,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,506,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,517,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,517,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,518,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,421,518,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,506,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,506,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,507,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,507,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,518,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,518,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,519,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,422,519,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,507,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,507,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,508,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,508,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,519,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,519,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,520,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,423,520,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,508,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,508,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,509,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,509,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,520,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,520,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,521,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,424,521,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,509,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,509,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,510,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,510,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,521,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,521,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,522,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,425,522,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,510,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,510,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,511,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,511,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,522,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,522,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,523,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,426,523,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,511,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,511,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,512,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,512,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,523,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,523,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,524,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,427,524,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,512,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,512,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,513,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,513,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,524,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,524,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,525,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,428,525,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,111,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402894920E+04,-1.467631560E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,111,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402969920E+04,1.467656720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,112,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429852340E+04,-1.143284380E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,112,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912500E+04,1.143304060E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,513,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,513,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,525,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,429,525,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,430,28,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,430,28,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,430,29,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,430,29,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,430,514,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,430,514,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,430,526,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,430,526,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,514,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,514,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,515,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,515,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,526,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,526,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,527,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,431,527,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,515,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,515,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,516,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,516,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,527,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,527,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,528,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,432,528,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,516,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,516,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,517,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,517,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,528,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,528,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,529,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,433,529,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,517,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,517,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,518,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,518,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,529,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,529,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,530,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,434,530,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,518,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,518,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,519,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,519,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,530,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,530,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,531,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,435,531,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,519,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,519,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,520,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,520,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,531,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,531,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,532,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,436,532,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,520,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,520,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,521,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,521,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,532,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,532,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,533,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,437,533,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,521,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,521,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,522,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,522,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,533,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,533,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,534,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,438,534,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,522,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,522,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,523,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,523,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,534,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,534,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,535,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,439,535,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,523,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,523,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,524,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,524,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,535,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,535,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,536,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,440,536,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,524,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,524,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,525,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,525,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,536,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,536,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,537,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,441,537,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,112,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429852340E+04,-1.143284380E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,112,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912500E+04,1.143304060E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,113,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,113,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282420E+04,8.294273440E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,525,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,525,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,537,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,442,537,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,443,29,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,443,29,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,443,30,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,443,30,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,443,526,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,443,526,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,443,538,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,443,538,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,526,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,526,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,527,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,527,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,538,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,538,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,539,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,444,539,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,527,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,527,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,528,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,528,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,539,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,539,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,540,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,445,540,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,528,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,528,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,529,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,529,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,540,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,540,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,541,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,446,541,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,529,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,529,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,530,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,530,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,541,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,541,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,542,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,447,542,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,530,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,530,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,531,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,531,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,542,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,542,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,543,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,448,543,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,531,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,531,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,532,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,532,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,543,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,543,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,544,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,449,544,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,532,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,532,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,533,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,533,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,544,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,544,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,545,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,450,545,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,533,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,533,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,534,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,534,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,545,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,545,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,546,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,451,546,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,534,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,534,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,535,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,535,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,546,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,546,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,547,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,452,547,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,535,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,535,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,536,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,536,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,547,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,547,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,548,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,453,548,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,536,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,536,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,537,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,537,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,548,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,548,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,549,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,454,549,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,113,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,113,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282420E+04,8.294273440E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,114,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,455,114,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307320E+04,5.454356250E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,455,537,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,537,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,549,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,455,549,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,456,30,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,456,30,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,456,31,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,456,31,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,456,538,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,456,538,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,456,550,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,456,550,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,538,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,538,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,539,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,539,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,550,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,550,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,551,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,457,551,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,539,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,539,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,540,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,540,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,551,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,551,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,552,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,458,552,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,540,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,540,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,541,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,541,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,552,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,552,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,553,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,459,553,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,541,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,541,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,542,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,542,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,553,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,553,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,554,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,460,554,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,542,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,542,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,543,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,543,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,554,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,554,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,555,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,461,555,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,543,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,543,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,544,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,544,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,555,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,555,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,556,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,462,556,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,544,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,544,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,545,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,545,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,556,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,556,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,557,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,463,557,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,545,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,545,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,546,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,546,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,557,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,557,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,558,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,464,558,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,546,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,546,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,547,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,547,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,558,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,558,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,559,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,465,559,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,547,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,547,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,548,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,548,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,559,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,559,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,560,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,466,560,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,548,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,548,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,549,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,549,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,560,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,560,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,561,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,467,561,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,468,114,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,468,114,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307320E+04,5.454356250E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,468,115,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105603120E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,468,115,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317127930E+03,3.105708980E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,468,549,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,468,549,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,468,561,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,468,561,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,469,31,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,469,31,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,469,32,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,469,32,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,469,550,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,469,550,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,469,562,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,469,562,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,470,550,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,470,550,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,470,551,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,470,551,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,470,562,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,470,562,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,470,563,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,470,563,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,551,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,551,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,552,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,552,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,563,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,563,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,564,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,471,564,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,552,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,552,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,553,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,553,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,564,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,564,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,565,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,472,565,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,553,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,553,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,554,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,554,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,565,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,565,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,566,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,473,566,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,554,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,554,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,555,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,555,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,566,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,566,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,567,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,474,567,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,555,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,555,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,556,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,556,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,567,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,567,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,568,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,475,568,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,556,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,556,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,557,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,557,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,568,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,568,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,569,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,476,569,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,557,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,557,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,558,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,558,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,569,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,569,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,570,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,477,570,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,558,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,558,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,559,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,559,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,570,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,570,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,571,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,478,571,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,559,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,559,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,560,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,560,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,571,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,571,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,572,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,479,572,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,560,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,560,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,561,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,561,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,572,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,572,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,573,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,480,573,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,481,115,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105603120E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,481,115,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317127930E+03,3.105708980E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,481,116,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,481,116,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244893550E+03,1.414965330E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,481,561,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,481,561,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,481,573,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,481,573,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,482,32,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,482,32,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,482,33,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,482,33,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,482,562,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,482,562,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,482,574,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,482,574,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,483,562,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,483,562,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,483,563,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,483,563,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,483,574,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,483,574,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,483,575,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,483,575,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,563,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,563,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,564,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,564,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,575,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,575,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,576,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,484,576,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,564,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,564,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,565,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,565,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,576,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,576,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,577,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,485,577,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,565,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,565,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,566,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,566,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,577,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,577,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,578,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,486,578,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,566,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,566,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,567,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,567,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,578,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,578,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,579,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,487,579,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,567,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,567,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,568,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,568,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,579,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,579,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,580,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,488,580,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,568,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,568,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,569,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,569,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,580,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,580,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,581,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,489,581,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,569,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,569,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,570,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,570,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,581,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,581,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,582,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,490,582,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,570,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,570,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,571,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,571,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,582,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,582,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,583,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,491,583,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,571,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,571,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,572,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,572,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,583,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,583,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,584,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,492,584,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,572,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,572,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,573,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,573,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,584,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,584,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,493,585,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,493,585,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,116,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,116,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244893550E+03,1.414965330E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,117,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745120E+03,-4.992437990E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,117,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497934330E+03,4.993160640E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,573,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,494,573,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,494,585,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,494,585,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,495,3,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.662812500E+05,7.988435940E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,495,3,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.662755620E+05,-7.988268750E+04,0.000000000E+00,6.103515620E-05 +Increment 10: Step Time = 1.000,PART-1-1,495,33,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,495,33,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,495,129,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622841250E+05,7.868521880E+04,0.000000000E+00,-3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,495,129,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785620E+05,-7.868357030E+04,0.000000000E+00,3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,495,574,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,495,574,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,128,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505499690E+05,7.516499220E+04,0.000000000E+00,-5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,128,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,129,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622841250E+05,7.868521880E+04,0.000000000E+00,-3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,129,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785620E+05,-7.868357030E+04,0.000000000E+00,3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,574,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,574,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,496,575,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,496,575,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,497,127,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239690E+05,6.954720310E+04,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,497,127,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,497,128,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,497,128,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505499690E+05,7.516499220E+04,0.000000000E+00,-5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,497,575,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,497,575,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,497,576,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,497,576,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,126,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217978120E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,126,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,127,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239690E+05,6.954720310E+04,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,498,127,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,498,576,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,576,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,577,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,498,577,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,125,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,125,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474690E+05,-5.350423830E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,126,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,126,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217978120E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,577,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,577,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,578,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,499,578,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,124,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402970310E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,124,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631560E+05,-4.402894530E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,125,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474690E+05,-5.350423830E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,125,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,578,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,578,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,579,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,500,579,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,123,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143304060E+05,3.429912500E+04,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,123,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852340E+04,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,124,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402970310E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,124,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631560E+05,-4.402894530E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,579,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,579,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,580,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,501,580,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,122,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,122,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235550E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,123,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852340E+04,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,123,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143304060E+05,3.429912500E+04,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,580,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,580,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,581,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,502,581,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,121,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,503,121,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269430E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,503,122,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235550E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,122,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,581,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,581,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,582,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,503,582,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,504,120,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105708980E+04,9.317128910E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,504,120,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316806640E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,504,121,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269430E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,504,121,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,504,582,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,504,582,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,504,583,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,504,583,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,505,119,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871680E+04,-4.244618160E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,505,119,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965430E+04,4.244893070E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,505,120,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316806640E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,505,120,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105708980E+04,9.317128910E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,505,583,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,505,583,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,505,584,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,505,584,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,506,118,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933960E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,506,118,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437500E+03,-1.497745730E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,506,119,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871680E+04,-4.244618160E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,506,119,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965430E+04,4.244893070E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,506,584,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,506,584,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,506,585,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,506,585,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,8,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.103515620E-02,6.079101560E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,507,8,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.152343750E-02,6.079101560E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,507,117,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745120E+03,-4.992437990E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,117,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497934330E+03,4.993160640E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,118,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437500E+03,-1.497745730E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,118,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933960E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,585,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,507,585,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,508,2,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.034600000E+05,7.034600000E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,508,2,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.034501250E+05,-7.034501250E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,508,21,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,508,21,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,508,70,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,508,70,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,508,586,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,508,586,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,509,20,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,509,20,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,509,21,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.489661880E+05,5.031626560E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,509,21,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.489592500E+05,-5.031536880E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,509,586,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,509,586,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,509,587,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,509,587,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,510,19,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,510,19,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,510,20,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.937704380E+05,-2.739777190E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,510,20,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.937765620E+05,2.739857810E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,510,587,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,510,587,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,510,588,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,510,588,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,511,18,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,511,18,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,511,19,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.063875000E+05,1.894432340E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,511,19,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.063829690E+05,-1.894352810E+05,0.000000000E+00,2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,511,588,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,511,588,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,511,589,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,511,589,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,512,17,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,512,17,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,512,18,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.372747810E+05,-1.186864060E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,512,18,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.372786090E+05,1.186939840E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,512,589,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,512,589,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,512,590,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,512,590,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,513,16,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,513,16,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,513,17,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.817381560E+05,-6.484688280E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,513,17,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.817405940E+05,6.485407810E+04,0.000000000E+00,-2.441406250E-04 +Increment 10: Step Time = 1.000,PART-1-1,513,590,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,513,590,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,513,591,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,513,591,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,514,15,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,514,15,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,514,16,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.344999690E+05,1.943270310E+04,0.000000000E+00,8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,514,16,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.344982190E+05,-1.942590040E+04,0.000000000E+00,3.662109380E-04 +Increment 10: Step Time = 1.000,PART-1-1,514,591,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,514,591,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,514,592,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,514,592,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,515,14,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,515,14,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,515,15,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.315167190E+04,-2.085066600E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,515,15,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.315053120E+04,2.085715040E+04,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,515,592,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,515,592,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,515,593,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,515,593,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,516,13,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,516,13,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,516,14,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.607884380E+04,5.892156640E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,516,14,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.607975390E+04,-5.891532810E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,516,593,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,516,593,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,516,594,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,516,594,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,517,12,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,517,12,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,517,13,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.229891020E+04,9.714382030E+04,0.000000000E+00,-3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,517,13,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.229966020E+04,-9.713778120E+04,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,517,594,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,517,594,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,517,595,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,517,595,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,518,11,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,518,11,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,518,12,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.785408200E+03,-1.378757500E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,518,12,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.786115230E+03,1.378816250E+05,0.000000000E+00,-1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,518,595,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,518,595,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,518,596,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,518,596,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,519,10,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,519,10,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,519,11,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.749862500E+04,1.837875940E+05,0.000000000E+00,1.098632810E-03 +Increment 10: Step Time = 1.000,PART-1-1,519,11,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.749791410E+04,-1.837818120E+05,0.000000000E+00,1.220703120E-03 +Increment 10: Step Time = 1.000,PART-1-1,519,596,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,519,596,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,519,597,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,519,597,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,520,1,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.988268750E+04,-2.662755620E+05,0.000000000E+00,2.975463870E-03 +Increment 10: Step Time = 1.000,PART-1-1,520,1,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.988435940E+04,2.662812500E+05,0.000000000E+00,2.868652340E-03 +Increment 10: Step Time = 1.000,PART-1-1,520,10,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.308002730E+04,2.365872660E+05,0.000000000E+00,2.410888670E-03 +Increment 10: Step Time = 1.000,PART-1-1,520,10,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.307917970E+04,-2.365815470E+05,0.000000000E+00,2.471923830E-03 +Increment 10: Step Time = 1.000,PART-1-1,520,130,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,-3.036816890E+03 +Increment 10: Step Time = 1.000,PART-1-1,520,130,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868356250E+04,-2.622785310E+05,0.000000000E+00,3.036814940E+03 +Increment 10: Step Time = 1.000,PART-1-1,520,597,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,520,597,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,521,70,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.031536880E+05,-5.489592500E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,521,70,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.031626560E+05,5.489661880E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,521,71,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,521,71,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,521,586,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,521,586,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,521,598,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,521,598,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,586,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.614520620E+05,4.614520620E+05,0.000000000E+00,6.955343750E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,586,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.614447500E+05,-4.614447190E+05,0.000000000E+00,-6.955394530E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,587,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,587,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,598,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,598,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,599,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,522,599,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,587,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.670892810E+05,-2.993200000E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,587,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.670953440E+05,2.993273750E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,588,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,588,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,599,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,599,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,600,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,523,600,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,588,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.868733750E+05,-1.884352340E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,588,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.868780620E+05,1.884420470E+05,0.000000000E+00,3.985980860E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,589,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,589,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,600,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,600,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,601,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,524,601,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,589,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.256689220E+05,-1.200095310E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,589,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.256726250E+05,1.200161170E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,590,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,590,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,601,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,601,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,602,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,525,602,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,590,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.738654840E+05,6.529733590E+04,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,590,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.738629690E+05,-6.529089060E+04,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,591,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,591,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,602,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,602,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,603,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,526,603,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,591,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.291639690E+05,-2.003659180E+04,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,591,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.291656720E+05,2.004295510E+04,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,592,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,592,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,603,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,603,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,604,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,527,604,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,592,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.951698440E+04,2.014295900E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,592,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.951818750E+04,-2.013675780E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,593,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,593,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,604,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,604,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,605,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,528,605,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,593,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.371591410E+04,5.795732420E+04,0.000000000E+00,-1.824933790E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,593,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.371681250E+04,-5.795133200E+04,0.000000000E+00,1.824916800E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,594,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,594,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,605,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,605,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,606,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,529,606,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,594,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.093590620E+04,9.582790620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,594,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.093669140E+04,-9.582207810E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,595,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,595,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,606,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,606,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,607,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,530,607,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,595,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.318848630E+03,1.360697030E+05,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,595,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.318108400E+03,-1.360640000E+05,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,596,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,531,596,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,531,607,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,607,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,608,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,531,608,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,532,596,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.731837890E+04,1.812838280E+05,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,532,596,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.731766020E+04,-1.812781720E+05,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,532,597,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,532,597,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,532,608,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,532,608,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,532,609,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,532,609,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,533,130,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.868356250E+04,-2.622785310E+05,0.000000000E+00,3.036814940E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,130,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.868521880E+04,2.622841250E+05,0.000000000E+00,-3.036816890E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,131,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447810E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,131,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,597,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.230397270E+04,2.331588440E+05,0.000000000E+00,-6.144693360E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,597,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.230312500E+04,-2.331532660E+05,0.000000000E+00,6.144682130E+03 +Increment 10: Step Time = 1.000,PART-1-1,533,609,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,533,609,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,534,71,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.739777190E+05,-3.937704060E+05,0.000000000E+00,9.765625000E-04 +Increment 10: Step Time = 1.000,PART-1-1,534,71,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.739858120E+05,3.937765620E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,534,72,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,534,72,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,534,598,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,534,598,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,534,610,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,534,610,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,598,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.993200000E+05,-3.670892810E+05,0.000000000E+00,-5.207908980E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,598,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.993273750E+05,3.670953440E+05,0.000000000E+00,5.207864450E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,599,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,599,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,610,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,610,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,611,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,535,611,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,599,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.822657190E+05,-2.822656880E+05,0.000000000E+00,-7.128470310E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,599,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.822718440E+05,2.822718440E+05,0.000000000E+00,7.128407810E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,600,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,600,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,611,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,611,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,612,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,536,612,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,600,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.387221720E+05,1.899734530E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,600,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.387171250E+05,-1.899672660E+05,0.000000000E+00,-6.512589060E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,601,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,601,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,612,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,612,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,613,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,537,613,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,601,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.935900940E+05,-1.196771880E+05,0.000000000E+00,-5.696073050E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,601,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.935936250E+05,1.196831720E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,602,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,602,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,613,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,613,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,614,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,538,614,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,602,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.521631250E+05,-6.609101560E+04,0.000000000E+00,-5.009940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,602,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.521657810E+05,6.609663280E+04,0.000000000E+00,5.009903910E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,603,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,603,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,614,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,614,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,615,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,539,615,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,603,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.141008980E+05,2.123217380E+04,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,603,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.140991720E+05,-2.122693160E+04,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,604,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,604,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,615,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,615,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,616,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,540,616,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,604,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-7.917984380E+04,1.828526950E+04,0.000000000E+00,-3.953737500E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,604,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",7.918111720E+04,-1.828012500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,605,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,605,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,616,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,616,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,617,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,541,617,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,605,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.694208200E+04,5.527741410E+04,0.000000000E+00,-3.495106640E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,605,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.694298830E+04,-5.527220310E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,606,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,606,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,617,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,617,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,618,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,542,618,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,606,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.701880860E+04,9.204070310E+04,0.000000000E+00,-3.025971880E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,606,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.701968550E+04,-9.203545310E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,607,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,607,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,618,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,618,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,619,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,543,619,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,607,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.084129980E+04,1.307883280E+05,0.000000000E+00,-2.501280470E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,607,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.084051760E+04,-1.307830550E+05,0.000000000E+00,2.501269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,608,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,608,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,619,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,619,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,620,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,544,620,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,608,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676952730E+04,1.739477500E+05,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,608,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676878520E+04,-1.739425000E+05,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,609,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,609,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,620,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,620,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,621,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,545,621,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,546,131,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.516344530E+04,-2.505447810E+05,0.000000000E+00,5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,546,131,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.516499220E+04,2.505499690E+05,0.000000000E+00,-5.879431640E+03 +Increment 10: Step Time = 1.000,PART-1-1,546,132,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954720310E+04,2.318239690E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,546,132,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,546,609,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.001689450E+04,2.230963440E+05,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,546,609,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.001601560E+04,-2.230911250E+05,0.000000000E+00,1.189437700E+04 +Increment 10: Step Time = 1.000,PART-1-1,546,621,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,546,621,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,547,72,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.894352810E+05,-3.063829690E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,547,72,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.894432340E+05,3.063875310E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,547,73,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,547,73,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,547,610,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,547,610,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,547,622,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,547,622,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,610,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.884352190E+05,-2.868733750E+05,0.000000000E+00,-3.986019920E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,610,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.884420470E+05,2.868780940E+05,0.000000000E+00,3.985981250E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,611,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,611,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,622,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,622,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,623,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,548,623,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,611,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.899672500E+05,-2.387171250E+05,0.000000000E+00,-6.512589450E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,611,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.899734530E+05,2.387221720E+05,0.000000000E+00,6.512535940E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,612,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,612,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,623,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,623,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,624,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,549,624,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,612,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.757352340E+05,-1.757352500E+05,0.000000000E+00,-7.296571090E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,612,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.757403120E+05,1.757403280E+05,0.000000000E+00,7.296507810E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,613,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,613,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,624,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,624,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,625,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,550,625,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,613,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.499432340E+05,-1.152471410E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,613,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.499468120E+05,1.152518830E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,614,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,614,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,625,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,625,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,626,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,551,626,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,614,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.209879450E+05,6.463129690E+04,0.000000000E+00,6.563536720E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,614,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.209851880E+05,-6.462668360E+04,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,615,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,615,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,626,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,626,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,627,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,552,627,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,615,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.187042970E+04,-2.184676170E+04,0.000000000E+00,-6.014492970E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,615,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.187234380E+04,2.185145310E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,616,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,616,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,627,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,627,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,628,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,553,628,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,616,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.360526170E+04,1.608139060E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,616,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.360661330E+04,-1.607683300E+04,0.000000000E+00,5.458783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,617,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,617,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,628,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,628,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,629,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,554,629,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,617,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.661205470E+04,-5.141094920E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,617,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.661103120E+04,5.141538280E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,618,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,618,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,629,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,629,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,630,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,555,630,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,618,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.100985640E+04,8.622390620E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,618,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.101078520E+04,-8.621940620E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,619,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,619,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,630,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,630,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,631,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,556,631,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,619,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.315156450E+04,1.224702580E+05,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,619,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.315075290E+04,-1.224656720E+05,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,620,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,620,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,631,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,631,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,632,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,557,632,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,620,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.583713280E+04,-1.622780620E+05,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,620,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.583790620E+04,1.622826410E+05,0.000000000E+00,-2.629019530E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,621,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,621,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,632,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,632,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,633,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,558,633,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,132,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.954583590E+04,-2.318194380E+05,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,559,132,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.954720310E+04,2.318239690E+05,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,559,133,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621560E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,133,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659220E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,621,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.634112500E+04,-2.070399060E+05,0.000000000E+00,1.689494140E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,621,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.634202730E+04,2.070444690E+05,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,633,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,559,633,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,560,73,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.186864060E+05,-2.372747810E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,560,73,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.186939840E+05,2.372785940E+05,0.000000000E+00,-8.544921880E-04 +Increment 10: Step Time = 1.000,PART-1-1,560,74,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,560,74,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,560,622,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,560,622,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,560,634,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,560,634,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,622,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.200095310E+05,-2.256689220E+05,0.000000000E+00,-3.229938090E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,622,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.200161090E+05,2.256726090E+05,0.000000000E+00,3.229909380E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,623,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,623,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,634,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,634,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,635,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,561,635,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,623,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.196771880E+05,-1.935900940E+05,0.000000000E+00,-5.696073440E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,623,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.196831720E+05,1.935936250E+05,0.000000000E+00,5.696030080E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,624,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,624,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,635,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,635,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,636,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,562,636,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,624,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.152471410E+05,-1.499432340E+05,0.000000000E+00,-7.063085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,624,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.152518830E+05,1.499468280E+05,0.000000000E+00,7.063022660E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,625,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,625,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,636,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,636,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,637,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,563,637,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,625,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.032285620E+05,-1.032285620E+05,0.000000000E+00,-7.499018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,625,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.032323830E+05,1.032323830E+05,0.000000000E+00,7.498940620E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,626,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,626,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,637,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,637,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,638,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,564,638,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,626,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-8.566679690E+04,-5.948885550E+04,0.000000000E+00,-7.386167970E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,626,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",8.566967190E+04,5.949264450E+04,0.000000000E+00,7.386093750E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,627,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,627,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,638,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,638,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,639,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,565,639,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,627,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.561161720E+04,2.061594530E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,627,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.560952340E+04,-2.061230660E+04,0.000000000E+00,-7.019419530E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,628,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,628,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,639,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,639,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,640,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,566,640,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,628,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-4.471139060E+04,1.437697950E+04,0.000000000E+00,-6.520028520E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,628,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",4.471292970E+04,-1.437317190E+04,0.000000000E+00,6.519982030E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,629,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,629,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,640,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,640,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,641,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,567,641,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,629,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.385544730E+04,4.704863670E+04,0.000000000E+00,-5.921855860E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,629,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.385658790E+04,-4.704462500E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,630,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,630,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,641,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,641,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,642,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,568,642,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,630,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.529465330E+03,7.897883590E+04,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,630,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.530417720E+03,-7.897491410E+04,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,631,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,631,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,642,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,642,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,643,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,569,643,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,631,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.598810740E+04,-1.117475390E+05,0.000000000E+00,4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,631,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.598894920E+04,1.117513750E+05,0.000000000E+00,-4.351984770E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,632,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,632,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,643,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,643,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,644,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,570,644,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,632,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.452834380E+04,-1.470543750E+05,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,632,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.452914060E+04,1.470581720E+05,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,633,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,633,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,644,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,644,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,645,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,571,645,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,133,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.217864060E+04,-2.072621560E+05,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,133,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.217978910E+04,2.072659220E+05,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,134,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474530E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,134,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505940E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,633,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.148480470E+04,1.860057660E+05,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,633,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.148389060E+04,-1.860019530E+05,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,645,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,572,645,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,573,74,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.484688670E+04,-1.817381720E+05,0.000000000E+00,1.220703120E-04 +Increment 10: Step Time = 1.000,PART-1-1,573,74,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.485407810E+04,1.817405940E+05,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,573,75,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,573,75,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,573,634,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,573,634,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,573,646,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,573,646,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,634,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.529733590E+04,1.738654840E+05,0.000000000E+00,2.734049410E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,634,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.529089060E+04,-1.738629840E+05,0.000000000E+00,-2.734072270E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,635,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,635,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,646,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,646,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,647,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,574,647,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,635,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.609101560E+04,-1.521631250E+05,0.000000000E+00,-5.009940230E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,635,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.609663280E+04,1.521657810E+05,0.000000000E+00,5.009904300E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,636,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,636,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,647,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,647,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,648,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,575,648,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,636,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-6.462668360E+04,-1.209852030E+05,0.000000000E+00,-6.563586720E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,636,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.463129690E+04,1.209879380E+05,0.000000000E+00,6.563537500E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,637,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,637,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,648,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,648,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,649,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,576,649,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,637,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.948885940E+04,-8.566679690E+04,0.000000000E+00,-7.386167190E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,637,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.949264060E+04,8.566967190E+04,0.000000000E+00,7.386094530E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,638,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,638,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,649,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,649,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,650,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,577,650,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,638,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-5.028456250E+04,-5.028456640E+04,0.000000000E+00,-7.637831250E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,638,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",5.028769140E+04,5.028769530E+04,0.000000000E+00,7.637754690E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,639,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,639,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,650,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,650,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,651,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,578,651,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,639,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.811257420E+04,1.700585350E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,639,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.811031640E+04,-1.700256640E+04,0.000000000E+00,-7.509777340E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,640,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,640,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,651,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,651,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,652,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,579,652,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,640,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.430211330E+04,1.379129300E+04,0.000000000E+00,-7.135778120E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,640,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.430390620E+04,-1.378813480E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,641,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,641,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,652,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,652,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,653,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,580,653,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,641,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-9.793557620E+03,4.276745310E+04,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,641,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",9.794720700E+03,-4.276448440E+04,0.000000000E+00,6.576860160E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,642,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,642,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,653,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,653,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,654,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,581,654,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,642,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.807494140E+03,7.093299220E+04,0.000000000E+00,-5.842424220E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,642,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.806473630E+03,-7.092996880E+04,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,643,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,643,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,654,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,654,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,655,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,582,655,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,643,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.911549800E+04,9.937067970E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,643,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.911462110E+04,-9.936755470E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,644,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,644,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,655,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,655,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,656,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,583,656,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,644,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.289991020E+04,1.292267500E+05,0.000000000E+00,-3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,644,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.289909380E+04,-1.292236250E+05,0.000000000E+00,3.661659770E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,645,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,645,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,656,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,656,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,657,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,584,657,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,134,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.350423830E+04,-1.783474530E+05,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,134,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.350517970E+04,1.783505940E+05,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,135,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402969920E+04,1.467656720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,135,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402894920E+04,-1.467631560E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,645,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.573104690E+04,1.612521560E+05,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,645,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.573016410E+04,-1.612490310E+05,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,657,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,585,657,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,586,75,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.942589840E+04,-1.344982190E+05,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,586,75,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.943270310E+04,1.344999690E+05,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,586,76,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,586,76,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,586,646,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,586,646,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,586,658,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,586,658,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,646,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.003659380E+04,-1.291639690E+05,0.000000000E+00,-2.371783200E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,646,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.004295510E+04,1.291656720E+05,0.000000000E+00,2.371759770E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,647,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,647,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,658,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,658,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,659,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,587,659,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,647,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.122693160E+04,-1.140991640E+05,0.000000000E+00,-4.444149610E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,647,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.123217380E+04,1.141009060E+05,0.000000000E+00,4.444115230E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,648,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,648,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,659,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,659,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,660,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,588,660,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,648,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.185145510E+04,9.187234380E+04,0.000000000E+00,6.014449220E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,648,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.184675980E+04,-9.187042970E+04,0.000000000E+00,-6.014492580E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,649,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,649,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,660,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,660,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,661,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,589,661,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,649,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-2.061230660E+04,-6.560952340E+04,0.000000000E+00,-7.019420310E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,649,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",2.061594340E+04,6.561161720E+04,0.000000000E+00,7.019357810E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,650,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,650,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,661,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,661,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,662,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,590,662,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,650,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.700256840E+04,-3.811031640E+04,0.000000000E+00,-7.509776560E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,650,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.700585350E+04,3.811257420E+04,0.000000000E+00,7.509720310E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,651,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,651,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,662,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,662,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,663,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,591,663,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,651,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-1.115998050E+04,-1.115998140E+04,0.000000000E+00,-7.588100000E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,651,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",1.116240620E+04,1.116240620E+04,0.000000000E+00,7.588054690E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,652,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,652,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,663,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,663,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,664,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,592,664,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,652,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",-3.698103030E+03,1.451236820E+04,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,652,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",3.699985840E+03,-1.450980570E+04,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,653,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,653,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,664,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,664,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,665,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,593,665,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,653,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.705257810E+03,3.895711720E+04,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,653,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.703929690E+03,-3.895450780E+04,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,654,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,654,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,665,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,665,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,666,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,594,666,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,654,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.351944820E+04,6.262745310E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,654,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.351837600E+04,-6.262490620E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,655,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,655,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,666,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,666,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,667,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,595,667,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,655,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.238059180E+04,8.607724220E+04,0.000000000E+00,-5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,655,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.237968950E+04,-8.607474220E+04,0.000000000E+00,5.175731250E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,656,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,656,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,667,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,667,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,668,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,596,668,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,656,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.107900980E+04,-1.098331720E+05,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,656,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.107984380E+04,1.098356950E+05,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,657,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,657,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,668,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,668,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,669,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,597,669,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,135,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.402894920E+04,-1.467631560E+05,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,135,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.402969920E+04,1.467656720E+05,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,136,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429852340E+04,-1.143284380E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,136,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912500E+04,1.143304060E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,657,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.944038670E+04,-1.342300780E+05,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,657,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.944124610E+04,1.342325940E+05,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,669,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,598,669,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,599,76,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.085715040E+04,-9.315053120E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,599,76,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.085066800E+04,9.315167190E+04,0.000000000E+00,1.342773440E-03 +Increment 10: Step Time = 1.000,PART-1-1,599,77,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,599,77,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,599,658,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,599,658,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,599,670,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,599,670,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,658,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.014295900E+04,-8.951697660E+04,0.000000000E+00,-2.081689840E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,658,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.013675780E+04,8.951818750E+04,0.000000000E+00,2.081669530E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,659,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,659,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,670,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,670,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,671,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,600,671,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,659,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.828526950E+04,-7.917984380E+04,0.000000000E+00,-3.953737110E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,659,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.828012300E+04,7.918112500E+04,0.000000000E+00,3.953708980E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,660,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,660,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,671,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,671,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,672,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,601,672,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,660,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.608138960E+04,-6.360526170E+04,0.000000000E+00,-5.458817190E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,660,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.607683400E+04,6.360661330E+04,0.000000000E+00,5.458782810E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,661,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,661,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,672,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,672,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,673,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,602,673,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,661,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.437697950E+04,-4.471139060E+04,0.000000000E+00,-6.520028910E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,661,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.437317090E+04,4.471292970E+04,0.000000000E+00,6.519981640E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,662,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,662,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,673,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,673,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,674,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,603,674,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,662,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.379129300E+04,-2.430211520E+04,0.000000000E+00,-7.135778910E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,662,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378813570E+04,2.430390620E+04,0.000000000E+00,7.135733590E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,663,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,663,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,674,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,674,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,675,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,604,675,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,663,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.450980660E+04,3.699984860E+03,0.000000000E+00,7.351590620E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,663,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.451236820E+04,-3.698104000E+03,0.000000000E+00,-7.351628120E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,664,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,664,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,675,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,675,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,676,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,605,676,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,664,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.639341210E+04,1.639341020E+04,0.000000000E+00,-7.227010160E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,664,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.639153520E+04,-1.639153320E+04,0.000000000E+00,7.226978120E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,665,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,665,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,676,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,676,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,677,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,606,677,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,665,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.910668160E+04,3.576234380E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,665,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.910511910E+04,-3.576041410E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,666,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,666,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,677,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,677,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,678,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,607,678,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,666,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230631840E+04,-5.445815230E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,666,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230742580E+04,5.446016410E+04,0.000000000E+00,-6.127066410E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,667,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,667,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,678,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,678,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,679,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,608,679,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,667,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.573713670E+04,-7.255510940E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,667,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.573805660E+04,7.255712500E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,668,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,668,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,679,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,679,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,680,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,609,680,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,668,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.926923830E+04,8.994906250E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,668,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.926838870E+04,-8.994707810E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,669,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,669,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,680,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,680,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,681,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,610,681,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,136,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.429852340E+04,-1.143284380E+05,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,136,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.429912500E+04,1.143304060E+05,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,137,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,137,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282420E+04,8.294273440E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,669,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.303596880E+04,-1.064914690E+05,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,669,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.303679300E+04,1.064934530E+05,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,681,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,611,681,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,612,77,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.892156250E+04,-5.607884380E+04,0.000000000E+00,7.324218750E-04 +Increment 10: Step Time = 1.000,PART-1-1,612,77,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.891532030E+04,5.607975000E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,612,78,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,612,78,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,612,670,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,612,670,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,612,682,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,612,682,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,670,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.795732810E+04,-5.371591410E+04,0.000000000E+00,-1.824933590E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,670,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.795132810E+04,5.371681250E+04,0.000000000E+00,1.824916600E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,671,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,671,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,682,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,682,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,683,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,613,683,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,671,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.527220310E+04,4.694298830E+04,0.000000000E+00,3.495085940E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,671,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.527741410E+04,-4.694208200E+04,0.000000000E+00,-3.495107030E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,672,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,672,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,683,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,683,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,684,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,614,684,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,672,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.141537890E+04,-3.661103120E+04,0.000000000E+00,-4.886015620E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,672,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.141095310E+04,3.661205470E+04,0.000000000E+00,4.885994530E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,673,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,673,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,684,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,684,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,685,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,615,685,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,673,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.704863280E+04,-2.385544730E+04,0.000000000E+00,-5.921856250E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,673,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.704462500E+04,2.385658590E+04,0.000000000E+00,5.921820700E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,674,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,674,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,685,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,685,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,686,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,616,686,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,674,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.276745700E+04,-9.793557620E+03,0.000000000E+00,-6.576901560E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,674,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.276448050E+04,9.794720700E+03,0.000000000E+00,6.576860940E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,675,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,675,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,686,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,686,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,687,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,617,687,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,675,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.895450780E+04,-4.703930660E+03,0.000000000E+00,6.862875780E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,675,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.895711330E+04,4.705256840E+03,0.000000000E+00,-6.862907810E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,676,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,676,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,687,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,687,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,688,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,618,688,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,676,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.576234770E+04,1.910668160E+04,0.000000000E+00,-6.810664060E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,676,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.576041410E+04,-1.910512110E+04,0.000000000E+00,6.810637500E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,677,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,677,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,688,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,688,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,689,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,619,689,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,677,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.315105470E+04,3.315105470E+04,0.000000000E+00,-6.453122270E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,677,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.314938280E+04,-3.314938280E+04,0.000000000E+00,6.453102730E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,678,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,678,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,689,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,689,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,690,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,620,690,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,678,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.099981450E+04,4.667593750E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,678,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.099865620E+04,-4.667430470E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,679,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,679,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,690,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,690,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,691,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,621,691,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,679,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.919151950E+04,-5.938260160E+04,0.000000000E+00,4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,679,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.919246480E+04,5.938417580E+04,0.000000000E+00,-4.894771480E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,680,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,680,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,691,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,691,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,692,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,622,692,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,680,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.769397070E+04,7.057950000E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,680,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.769310350E+04,-7.057793750E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,681,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,681,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,692,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,692,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,693,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,623,693,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,137,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.488235550E+04,-8.294118750E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,137,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.488282420E+04,8.294273440E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,138,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,624,138,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307320E+04,5.454356250E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,624,681,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.696799220E+04,-7.961334380E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,681,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.696878120E+04,7.961489060E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,693,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,624,693,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,625,78,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.714381250E+04,-2.229891020E+04,0.000000000E+00,-4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,625,78,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.713778120E+04,2.229966210E+04,0.000000000E+00,-6.713867190E-04 +Increment 10: Step Time = 1.000,PART-1-1,625,79,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,625,79,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,625,682,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,625,682,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,625,694,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,625,694,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,682,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.582790620E+04,-2.093590620E+04,0.000000000E+00,-1.571920800E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,682,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.582207810E+04,2.093668950E+04,0.000000000E+00,1.571907910E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,683,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,683,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,694,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,694,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,695,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,626,695,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,683,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.203545310E+04,1.701968360E+04,0.000000000E+00,3.025955860E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,683,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.204070310E+04,-1.701880860E+04,0.000000000E+00,-3.025971680E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,684,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,684,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,695,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,695,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,696,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,627,696,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,684,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.622390620E+04,-1.100985640E+04,0.000000000E+00,-4.262676560E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,684,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.621940620E+04,1.101078520E+04,0.000000000E+00,4.262665230E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,685,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,685,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,696,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,696,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,697,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,628,697,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,685,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.897883590E+04,-3.529465330E+03,0.000000000E+00,-5.213227340E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,685,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.897491410E+04,3.530417480E+03,0.000000000E+00,5.213210940E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,686,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,686,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,697,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,697,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,698,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,629,698,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,686,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.093299220E+04,4.807493650E+03,0.000000000E+00,-5.842424610E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,686,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.092996880E+04,-4.806474120E+03,0.000000000E+00,5.842405470E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,687,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,687,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,698,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,698,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,699,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,630,699,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,687,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-6.262491020E+04,-1.351837600E+04,0.000000000E+00,6.143269530E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,687,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.262745310E+04,1.351944820E+04,0.000000000E+00,-6.143287110E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,688,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,688,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,699,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,699,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,700,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,631,700,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,688,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.446016410E+04,2.230742580E+04,0.000000000E+00,-6.127066020E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,688,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.445815230E+04,-2.230631840E+04,0.000000000E+00,6.127050780E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,689,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,689,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,700,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,700,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,701,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,632,701,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,689,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.667593750E+04,3.099981450E+04,0.000000000E+00,-5.813025780E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,689,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.667430470E+04,-3.099865620E+04,0.000000000E+00,5.813018750E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,690,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,690,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,701,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,701,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,702,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,633,702,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,690,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.939097660E+04,3.939097660E+04,0.000000000E+00,-5.220285940E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,690,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.938976950E+04,-3.938976950E+04,0.000000000E+00,5.220283200E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,691,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,691,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,702,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,702,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,703,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,634,703,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,691,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.264750590E+04,-4.698530860E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,691,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.264849220E+04,4.698654690E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,692,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,692,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,703,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,703,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,704,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,635,704,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,692,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.648593360E+04,-5.261894140E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,692,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.648682030E+04,5.262017970E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,693,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,693,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,704,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,704,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,705,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,636,705,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,637,138,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.636269430E+04,-5.454232810E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,637,138,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.636307320E+04,5.454356250E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,637,139,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105603120E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,637,139,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317127930E+03,3.105708980E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,637,693,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.164324610E+04,5.514863670E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,637,693,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.164248830E+04,-5.514739840E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,637,705,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,637,705,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,638,79,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.378757500E+05,-8.785407230E+03,0.000000000E+00,-4.272460940E-04 +Increment 10: Step Time = 1.000,PART-1-1,638,79,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.378816250E+05,8.786115230E+03,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,638,80,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,638,80,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,638,694,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,638,694,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,638,706,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,638,706,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,639,694,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.360640000E+05,-9.318108400E+03,0.000000000E+00,1.295406350E+04 +Increment 10: Step Time = 1.000,PART-1-1,639,694,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.360697030E+05,9.318846680E+03,0.000000000E+00,-1.295413280E+04 +Increment 10: Step Time = 1.000,PART-1-1,639,695,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,639,695,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,639,706,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,639,706,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,639,707,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,639,707,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,695,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.307883280E+05,1.084129980E+04,0.000000000E+00,-2.501280660E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,695,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.307830550E+05,-1.084051760E+04,0.000000000E+00,2.501269340E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,696,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,696,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,707,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,707,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,708,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,640,708,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,696,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.224702500E+05,1.315156540E+04,0.000000000E+00,-3.539585550E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,696,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.224656800E+05,-1.315075290E+04,0.000000000E+00,3.539578910E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,697,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,697,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,708,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,708,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,709,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,641,709,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,697,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.117475470E+05,-1.598810840E+04,0.000000000E+00,4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,697,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.117513750E+05,1.598895020E+04,0.000000000E+00,-4.351984380E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,698,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,698,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,709,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,709,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,710,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,642,710,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,698,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.937068750E+04,1.911549800E+04,0.000000000E+00,-4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,698,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.936754690E+04,-1.911462110E+04,0.000000000E+00,4.902606250E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,699,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,699,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,710,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,710,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,711,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,643,711,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,699,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.607723440E+04,2.238058980E+04,0.000000000E+00,-5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,699,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.607473440E+04,-2.237968950E+04,0.000000000E+00,5.175730860E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,700,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,700,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,711,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,711,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,712,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,644,712,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,700,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.255510940E+04,-2.573713870E+04,0.000000000E+00,5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,700,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.255712500E+04,2.573805860E+04,0.000000000E+00,-5.170406640E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,701,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,701,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,712,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,712,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,713,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,645,713,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,701,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.938417970E+04,2.919246480E+04,0.000000000E+00,-4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,701,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.938260160E+04,-2.919151760E+04,0.000000000E+00,4.894771090E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,702,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,702,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,713,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,713,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,714,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,646,714,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,702,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.698530860E+04,-3.264750780E+04,0.000000000E+00,4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,702,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.698654300E+04,3.264849220E+04,0.000000000E+00,-4.362322660E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,703,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,703,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,714,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,714,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,715,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,647,715,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,703,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.563496090E+04,3.563496480E+04,0.000000000E+00,-3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,703,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.563394140E+04,-3.563394530E+04,0.000000000E+00,3.591898440E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,704,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,704,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,715,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,715,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,716,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,648,716,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,704,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.543420900E+04,3.676341020E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,704,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.543329690E+04,-3.676236330E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,705,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,705,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,716,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,716,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,717,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,649,717,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,650,139,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-9.316806640E+03,-3.105603120E+04,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,650,139,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",9.317127930E+03,3.105708980E+04,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,650,140,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,650,140,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244893550E+03,1.414965330E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,650,705,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.724438280E+04,3.451533200E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,650,705,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.724365620E+04,-3.451427340E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,650,717,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,650,717,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,651,80,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.837818120E+05,-3.749791020E+04,0.000000000E+00,6.103515620E-04 +Increment 10: Step Time = 1.000,PART-1-1,651,80,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.837875940E+05,3.749862110E+04,0.000000000E+00,4.882812500E-04 +Increment 10: Step Time = 1.000,PART-1-1,651,81,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,651,81,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,651,706,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,651,706,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,651,718,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,651,718,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,652,706,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.812781880E+05,-3.731766020E+04,0.000000000E+00,9.581827150E+03 +Increment 10: Step Time = 1.000,PART-1-1,652,706,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.812838280E+05,3.731837890E+04,0.000000000E+00,-9.581857420E+03 +Increment 10: Step Time = 1.000,PART-1-1,652,707,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,652,707,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,652,718,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,652,718,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,652,719,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,652,719,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,707,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.739477500E+05,3.676952340E+04,0.000000000E+00,-1.853218360E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,707,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.739425000E+05,-3.676878910E+04,0.000000000E+00,1.853211720E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,708,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,708,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,719,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,719,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,720,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,653,720,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,708,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.622826410E+05,3.583789840E+04,0.000000000E+00,-2.629019140E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,708,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.622780620E+05,-3.583713670E+04,0.000000000E+00,2.629014840E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,709,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,709,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,720,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,720,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,721,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,654,721,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,709,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.470543750E+05,-3.452834770E+04,0.000000000E+00,3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,709,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.470581880E+05,3.452914060E+04,0.000000000E+00,-3.241722270E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,710,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,710,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,721,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,721,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,722,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,655,722,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,710,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.292236250E+05,-3.289909380E+04,0.000000000E+00,3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,710,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.292267580E+05,3.289991020E+04,0.000000000E+00,-3.661659380E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,711,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,711,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,722,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,722,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,723,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,656,723,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,711,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.098331720E+05,-3.107900980E+04,0.000000000E+00,3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,711,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.098357030E+05,3.107984380E+04,0.000000000E+00,-3.872208980E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,712,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,712,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,723,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,723,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,724,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,657,724,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,712,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.994906250E+04,2.926923830E+04,0.000000000E+00,-3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,712,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.994707810E+04,-2.926839260E+04,0.000000000E+00,3.866663670E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,713,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,713,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,724,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,724,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,725,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,658,725,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,713,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.057949220E+04,2.769397070E+04,0.000000000E+00,-3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,713,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.057794530E+04,-2.769310350E+04,0.000000000E+00,3.645070310E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,714,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,714,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,725,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,725,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,726,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,659,726,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,714,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.261894530E+04,-2.648593360E+04,0.000000000E+00,3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,714,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.262017970E+04,2.648682230E+04,0.000000000E+00,-3.213344530E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,715,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,715,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,726,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,726,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,727,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,660,727,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,715,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.676236720E+04,-2.543329490E+04,0.000000000E+00,2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,715,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.676341410E+04,2.543420900E+04,0.000000000E+00,-2.587679880E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,716,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,716,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,727,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,727,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,728,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,661,728,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,716,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.336924610E+04,2.336924610E+04,0.000000000E+00,-1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,716,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.336831250E+04,-2.336831250E+04,0.000000000E+00,1.793108010E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,717,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,717,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,728,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,728,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,662,729,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,662,729,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,140,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.244618160E+03,-1.414871480E+04,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,140,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.244893550E+03,1.414965330E+04,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,141,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745120E+03,-4.992437990E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,141,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497934330E+03,4.993160640E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,717,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.321968750E+04,-1.873272270E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,663,717,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.322039650E+04,1.873366410E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,663,729,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,663,729,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,664,6,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.662812500E+05,7.988435940E+04,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,664,6,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.662755620E+05,-7.988268750E+04,0.000000000E+00,6.103515620E-05 +Increment 10: Step Time = 1.000,PART-1-1,664,81,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.365872660E+05,6.308002730E+04,0.000000000E+00,5.493164060E-04 +Increment 10: Step Time = 1.000,PART-1-1,664,81,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.365815470E+05,-6.307918360E+04,0.000000000E+00,3.051757810E-04 +Increment 10: Step Time = 1.000,PART-1-1,664,153,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622841250E+05,7.868521880E+04,0.000000000E+00,-3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,664,153,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785620E+05,-7.868357030E+04,0.000000000E+00,3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,664,718,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,664,718,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,152,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505499690E+05,7.516499220E+04,0.000000000E+00,-5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,152,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,153,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.622841250E+05,7.868521880E+04,0.000000000E+00,-3.036819580E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,153,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.622785620E+05,-7.868357030E+04,0.000000000E+00,3.036812010E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,718,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.331532500E+05,-6.230312500E+04,0.000000000E+00,6.144680180E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,718,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.331588440E+05,6.230397270E+04,0.000000000E+00,-6.144694820E+03 +Increment 10: Step Time = 1.000,PART-1-1,665,719,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,665,719,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,666,151,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239690E+05,6.954720310E+04,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,666,151,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,666,152,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.505447810E+05,-7.516343750E+04,0.000000000E+00,5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,666,152,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.505499690E+05,7.516499220E+04,0.000000000E+00,-5.879431150E+03 +Increment 10: Step Time = 1.000,PART-1-1,666,719,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.230911250E+05,-6.001602340E+04,0.000000000E+00,1.189437600E+04 +Increment 10: Step Time = 1.000,PART-1-1,666,719,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.230963440E+05,6.001689450E+04,0.000000000E+00,-1.189440140E+04 +Increment 10: Step Time = 1.000,PART-1-1,666,720,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,666,720,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,150,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217978120E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,150,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,151,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.318239690E+05,6.954720310E+04,0.000000000E+00,-8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,667,151,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.318194380E+05,-6.954583590E+04,0.000000000E+00,8.353479490E+03 +Increment 10: Step Time = 1.000,PART-1-1,667,720,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.070398910E+05,-5.634112500E+04,0.000000000E+00,1.689493950E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,720,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.070444530E+05,5.634202730E+04,0.000000000E+00,-1.689495700E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,721,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,667,721,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,149,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,149,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474690E+05,-5.350423830E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,150,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-2.072621560E+05,-6.217864060E+04,0.000000000E+00,1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,150,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",2.072659380E+05,6.217978120E+04,0.000000000E+00,-1.031872270E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,721,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.860019380E+05,-5.148389450E+04,0.000000000E+00,2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,721,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.860057660E+05,5.148480470E+04,0.000000000E+00,-2.086266800E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,722,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,668,722,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,148,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402970310E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,148,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631560E+05,-4.402894530E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,149,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.783474690E+05,-5.350423830E+04,0.000000000E+00,1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,149,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.783505940E+05,5.350517970E+04,0.000000000E+00,-1.167410160E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,722,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.612490310E+05,-4.573016410E+04,0.000000000E+00,2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,722,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.612521560E+05,4.573104690E+04,0.000000000E+00,-2.359554690E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,723,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,669,723,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,147,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143304060E+05,3.429912500E+04,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,147,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852340E+04,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,148,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.467656880E+05,4.402970310E+04,0.000000000E+00,-1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,148,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.467631560E+05,-4.402894530E+04,0.000000000E+00,1.235300590E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,723,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.342300780E+05,-3.944038670E+04,0.000000000E+00,2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,723,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.342325940E+05,3.944124610E+04,0.000000000E+00,-2.496532230E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,724,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,670,724,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,146,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,146,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235550E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,147,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.143284380E+05,-3.429852340E+04,0.000000000E+00,1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,147,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.143304060E+05,3.429912500E+04,0.000000000E+00,-1.231147850E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,724,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.064914690E+05,-3.303596880E+04,0.000000000E+00,2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,724,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.064934530E+05,3.303678910E+04,0.000000000E+00,-2.489661720E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,725,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,671,725,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,145,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,672,145,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269430E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,672,146,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.294118750E+04,-2.488235550E+04,0.000000000E+00,1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,146,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.294273440E+04,2.488282420E+04,0.000000000E+00,-1.151558980E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,725,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-7.961334380E+04,-2.696799220E+04,0.000000000E+00,2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,725,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",7.961489060E+04,2.696877930E+04,0.000000000E+00,-2.334591410E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,726,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,672,726,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,673,144,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105708980E+04,9.317128910E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,673,144,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316806640E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,673,145,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.454232810E+04,-1.636269430E+04,0.000000000E+00,9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,673,145,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.454356250E+04,1.636307230E+04,0.000000000E+00,-9.939054690E+03 +Increment 10: Step Time = 1.000,PART-1-1,673,726,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-5.514739840E+04,-2.164248830E+04,0.000000000E+00,2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,673,726,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",5.514863670E+04,2.164324610E+04,0.000000000E+00,-2.029997270E+04 +Increment 10: Step Time = 1.000,PART-1-1,673,727,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,673,727,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,674,143,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871680E+04,-4.244618160E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,674,143,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965430E+04,4.244893070E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,674,144,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.105603120E+04,-9.316806640E+03,0.000000000E+00,7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,674,144,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.105708980E+04,9.317128910E+03,0.000000000E+00,-7.593698240E+03 +Increment 10: Step Time = 1.000,PART-1-1,674,727,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",3.451533200E+04,1.724438280E+04,0.000000000E+00,-1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,674,727,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-3.451427340E+04,-1.724365620E+04,0.000000000E+00,1.583661330E+04 +Increment 10: Step Time = 1.000,PART-1-1,674,728,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,674,728,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,675,142,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933960E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,675,142,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437500E+03,-1.497745730E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,675,143,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.414871680E+04,-4.244618160E+03,0.000000000E+00,4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,675,143,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.414965430E+04,4.244893070E+03,0.000000000E+00,-4.639378910E+03 +Increment 10: Step Time = 1.000,PART-1-1,675,728,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.873366410E+04,1.322039550E+04,0.000000000E+00,-1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,675,728,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.873272270E+04,-1.321968750E+04,0.000000000E+00,1.024084380E+04 +Increment 10: Step Time = 1.000,PART-1-1,675,729,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,675,729,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,9,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",6.103515620E-02,6.079101560E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,676,9,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",6.152343750E-02,6.079101560E-02,0.000000000E+00,0.000000000E+00 +Increment 10: Step Time = 1.000,PART-1-1,676,141,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-1.497745120E+03,-4.992437990E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,141,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",1.497934330E+03,4.993160640E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,142,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-4.992437500E+03,-1.497745730E+03,0.000000000E+00,1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,142,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",4.993161130E+03,1.497933960E+03,0.000000000E+00,-1.747479740E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,729,"shell < MATERIAL-1 > < 5 section points > : SNEG, (fraction = -1.0)",-8.615630860E+03,-8.615630860E+03,0.000000000E+00,4.952215330E+03 +Increment 10: Step Time = 1.000,PART-1-1,676,729,"shell < MATERIAL-1 > < 5 section points > : SPOS, (fraction = 1.0)",8.616345700E+03,8.616345700E+03,0.000000000E+00,-4.952215330E+03 diff --git a/reference/shellNL-meshfine/shellNL-meshfine.inp b/reference/shellNL-meshfine/shellNL-meshfine.inp new file mode 100644 index 0000000..1dd7204 --- /dev/null +++ b/reference/shellNL-meshfine/shellNL-meshfine.inp @@ -0,0 +1,1494 @@ +*Heading +** Job name: shellNL-meshfine Model name: Model-1-NL-meshfine +** Generated by: Abaqus/CAE Learning Edition 2024 +*Preprint, echo=NO, model=NO, history=NO, contact=NO +** +** PARTS +** +*Part, name=Part-1 +*Node + 1, 0., -5., 0. + 2, 0., 0., 0. + 3, -5., 0., 0. + 4, -5., -5., 0. + 5, 0., 5., 0. + 6, 5., 0., 0. + 7, 5., 5., 0. + 8, -5., 5., 0. + 9, 5., -5., 0. + 10, 0., -4.61538458, 0. + 11, 0., -4.23076916, 0. + 12, 0., -3.84615374, 0. + 13, 0., -3.46153855, 0. + 14, 0., -3.07692313, 0. + 15, 0., -2.69230771, 0. + 16, 0., -2.30769229, 0. + 17, 0., -1.92307687, 0. + 18, 0., -1.53846157, 0. + 19, 0., -1.15384614, 0. + 20, 0., -0.769230783, 0. + 21, 0., -0.384615391, 0. + 22, -0.384615391, 0., 0. + 23, -0.769230783, 0., 0. + 24, -1.15384614, 0., 0. + 25, -1.53846157, 0., 0. + 26, -1.92307687, 0., 0. + 27, -2.30769229, 0., 0. + 28, -2.69230771, 0., 0. + 29, -3.07692313, 0., 0. + 30, -3.46153855, 0., 0. + 31, -3.84615374, 0., 0. + 32, -4.23076916, 0., 0. + 33, -4.61538458, 0., 0. + 34, -5., -0.384615391, 0. + 35, -5., -0.769230783, 0. + 36, -5., -1.15384614, 0. + 37, -5., -1.53846157, 0. + 38, -5., -1.92307687, 0. + 39, -5., -2.30769229, 0. + 40, -5., -2.69230771, 0. + 41, -5., -3.07692313, 0. + 42, -5., -3.46153855, 0. + 43, -5., -3.84615374, 0. + 44, -5., -4.23076916, 0. + 45, -5., -4.61538458, 0. + 46, -4.61538458, -5., 0. + 47, -4.23076916, -5., 0. + 48, -3.84615374, -5., 0. + 49, -3.46153855, -5., 0. + 50, -3.07692313, -5., 0. + 51, -2.69230771, -5., 0. + 52, -2.30769229, -5., 0. + 53, -1.92307687, -5., 0. + 54, -1.53846157, -5., 0. + 55, -1.15384614, -5., 0. + 56, -0.769230783, -5., 0. + 57, -0.384615391, -5., 0. + 58, 0., 4.61538458, 0. + 59, 0., 4.23076916, 0. + 60, 0., 3.84615374, 0. + 61, 0., 3.46153855, 0. + 62, 0., 3.07692313, 0. + 63, 0., 2.69230771, 0. + 64, 0., 2.30769229, 0. + 65, 0., 1.92307687, 0. + 66, 0., 1.53846157, 0. + 67, 0., 1.15384614, 0. + 68, 0., 0.769230783, 0. + 69, 0., 0.384615391, 0. + 70, 0.384615391, 0., 0. + 71, 0.769230783, 0., 0. + 72, 1.15384614, 0., 0. + 73, 1.53846157, 0., 0. + 74, 1.92307687, 0., 0. + 75, 2.30769229, 0., 0. + 76, 2.69230771, 0., 0. + 77, 3.07692313, 0., 0. + 78, 3.46153855, 0., 0. + 79, 3.84615374, 0., 0. + 80, 4.23076916, 0., 0. + 81, 4.61538458, 0., 0. + 82, 5., 0.384615391, 0. + 83, 5., 0.769230783, 0. + 84, 5., 1.15384614, 0. + 85, 5., 1.53846157, 0. + 86, 5., 1.92307687, 0. + 87, 5., 2.30769229, 0. + 88, 5., 2.69230771, 0. + 89, 5., 3.07692313, 0. + 90, 5., 3.46153855, 0. + 91, 5., 3.84615374, 0. + 92, 5., 4.23076916, 0. + 93, 5., 4.61538458, 0. + 94, 4.61538458, 5., 0. + 95, 4.23076916, 5., 0. + 96, 3.84615374, 5., 0. + 97, 3.46153855, 5., 0. + 98, 3.07692313, 5., 0. + 99, 2.69230771, 5., 0. + 100, 2.30769229, 5., 0. + 101, 1.92307687, 5., 0. + 102, 1.53846157, 5., 0. + 103, 1.15384614, 5., 0. + 104, 0.769230783, 5., 0. + 105, 0.384615391, 5., 0. + 106, -0.384615391, 5., 0. + 107, -0.769230783, 5., 0. + 108, -1.15384614, 5., 0. + 109, -1.53846157, 5., 0. + 110, -1.92307687, 5., 0. + 111, -2.30769229, 5., 0. + 112, -2.69230771, 5., 0. + 113, -3.07692313, 5., 0. + 114, -3.46153855, 5., 0. + 115, -3.84615374, 5., 0. + 116, -4.23076916, 5., 0. + 117, -4.61538458, 5., 0. + 118, -5., 4.61538458, 0. + 119, -5., 4.23076916, 0. + 120, -5., 3.84615374, 0. + 121, -5., 3.46153855, 0. + 122, -5., 3.07692313, 0. + 123, -5., 2.69230771, 0. + 124, -5., 2.30769229, 0. + 125, -5., 1.92307687, 0. + 126, -5., 1.53846157, 0. + 127, -5., 1.15384614, 0. + 128, -5., 0.769230783, 0. + 129, -5., 0.384615391, 0. + 130, 0.384615391, -5., 0. + 131, 0.769230783, -5., 0. + 132, 1.15384614, -5., 0. + 133, 1.53846157, -5., 0. + 134, 1.92307687, -5., 0. + 135, 2.30769229, -5., 0. + 136, 2.69230771, -5., 0. + 137, 3.07692313, -5., 0. + 138, 3.46153855, -5., 0. + 139, 3.84615374, -5., 0. + 140, 4.23076916, -5., 0. + 141, 4.61538458, -5., 0. + 142, 5., -4.61538458, 0. + 143, 5., -4.23076916, 0. + 144, 5., -3.84615374, 0. + 145, 5., -3.46153855, 0. + 146, 5., -3.07692313, 0. + 147, 5., -2.69230771, 0. + 148, 5., -2.30769229, 0. + 149, 5., -1.92307687, 0. + 150, 5., -1.53846157, 0. + 151, 5., -1.15384614, 0. + 152, 5., -0.769230783, 0. + 153, 5., -0.384615391, 0. + 154, -0.384615391, -4.61538458, 0. + 155, -0.384615391, -4.23076916, 0. + 156, -0.384615391, -3.84615374, 0. + 157, -0.384615391, -3.46153855, 0. + 158, -0.384615391, -3.07692313, 0. + 159, -0.384615391, -2.69230771, 0. + 160, -0.384615391, -2.30769229, 0. + 161, -0.384615391, -1.92307687, 0. + 162, -0.384615391, -1.53846157, 0. + 163, -0.384615391, -1.15384614, 0. + 164, -0.384615391, -0.769230783, 0. + 165, -0.384615391, -0.384615391, 0. + 166, -0.769230783, -4.61538458, 0. + 167, -0.769230783, -4.23076916, 0. + 168, -0.769230783, -3.84615374, 0. + 169, -0.769230783, -3.46153855, 0. + 170, -0.769230783, -3.07692313, 0. + 171, -0.769230783, -2.69230771, 0. + 172, -0.769230783, -2.30769229, 0. + 173, -0.769230783, -1.92307687, 0. + 174, -0.769230783, -1.53846157, 0. + 175, -0.769230783, -1.15384614, 0. + 176, -0.769230783, -0.769230783, 0. + 177, -0.769230783, -0.384615391, 0. + 178, -1.15384614, -4.61538458, 0. + 179, -1.15384614, -4.23076916, 0. + 180, -1.15384614, -3.84615374, 0. + 181, -1.15384614, -3.46153855, 0. + 182, -1.15384614, -3.07692313, 0. + 183, -1.15384614, -2.69230771, 0. + 184, -1.15384614, -2.30769229, 0. + 185, -1.15384614, -1.92307687, 0. + 186, -1.15384614, -1.53846157, 0. + 187, -1.15384614, -1.15384614, 0. + 188, -1.15384614, -0.769230783, 0. + 189, -1.15384614, -0.384615391, 0. + 190, -1.53846157, -4.61538458, 0. + 191, -1.53846157, -4.23076916, 0. + 192, -1.53846157, -3.84615374, 0. + 193, -1.53846157, -3.46153855, 0. + 194, -1.53846157, -3.07692313, 0. + 195, -1.53846157, -2.69230771, 0. + 196, -1.53846157, -2.30769229, 0. + 197, -1.53846157, -1.92307687, 0. + 198, -1.53846157, -1.53846157, 0. + 199, -1.53846157, -1.15384614, 0. + 200, -1.53846157, -0.769230783, 0. + 201, -1.53846157, -0.384615391, 0. + 202, -1.92307687, -4.61538458, 0. + 203, -1.92307687, -4.23076916, 0. + 204, -1.92307687, -3.84615374, 0. + 205, -1.92307687, -3.46153855, 0. + 206, -1.92307687, -3.07692313, 0. + 207, -1.92307687, -2.69230771, 0. + 208, -1.92307687, -2.30769229, 0. + 209, -1.92307687, -1.92307687, 0. + 210, -1.92307687, -1.53846157, 0. + 211, -1.92307687, -1.15384614, 0. + 212, -1.92307687, -0.769230783, 0. + 213, -1.92307687, -0.384615391, 0. + 214, -2.30769229, -4.61538458, 0. + 215, -2.30769229, -4.23076916, 0. + 216, -2.30769229, -3.84615374, 0. + 217, -2.30769229, -3.46153855, 0. + 218, -2.30769229, -3.07692313, 0. + 219, -2.30769229, -2.69230771, 0. + 220, -2.30769229, -2.30769229, 0. + 221, -2.30769229, -1.92307687, 0. + 222, -2.30769229, -1.53846157, 0. + 223, -2.30769229, -1.15384614, 0. + 224, -2.30769229, -0.769230783, 0. + 225, -2.30769229, -0.384615391, 0. + 226, -2.69230771, -4.61538458, 0. + 227, -2.69230771, -4.23076916, 0. + 228, -2.69230771, -3.84615374, 0. + 229, -2.69230771, -3.46153855, 0. + 230, -2.69230771, -3.07692313, 0. + 231, -2.69230771, -2.69230771, 0. + 232, -2.69230771, -2.30769229, 0. + 233, -2.69230771, -1.92307687, 0. + 234, -2.69230771, -1.53846157, 0. + 235, -2.69230771, -1.15384614, 0. + 236, -2.69230771, -0.769230783, 0. + 237, -2.69230771, -0.384615391, 0. + 238, -3.07692313, -4.61538458, 0. + 239, -3.07692313, -4.23076916, 0. + 240, -3.07692313, -3.84615374, 0. + 241, -3.07692313, -3.46153855, 0. + 242, -3.07692313, -3.07692313, 0. + 243, -3.07692313, -2.69230771, 0. + 244, -3.07692313, -2.30769229, 0. + 245, -3.07692313, -1.92307687, 0. + 246, -3.07692313, -1.53846157, 0. + 247, -3.07692313, -1.15384614, 0. + 248, -3.07692313, -0.769230783, 0. + 249, -3.07692313, -0.384615391, 0. + 250, -3.46153855, -4.61538458, 0. + 251, -3.46153855, -4.23076916, 0. + 252, -3.46153855, -3.84615374, 0. + 253, -3.46153855, -3.46153855, 0. + 254, -3.46153855, -3.07692313, 0. + 255, -3.46153855, -2.69230771, 0. + 256, -3.46153855, -2.30769229, 0. + 257, -3.46153855, -1.92307687, 0. + 258, -3.46153855, -1.53846157, 0. + 259, -3.46153855, -1.15384614, 0. + 260, -3.46153855, -0.769230783, 0. + 261, -3.46153855, -0.384615391, 0. + 262, -3.84615374, -4.61538458, 0. + 263, -3.84615374, -4.23076916, 0. + 264, -3.84615374, -3.84615374, 0. + 265, -3.84615374, -3.46153855, 0. + 266, -3.84615374, -3.07692313, 0. + 267, -3.84615374, -2.69230771, 0. + 268, -3.84615374, -2.30769229, 0. + 269, -3.84615374, -1.92307687, 0. + 270, -3.84615374, -1.53846157, 0. + 271, -3.84615374, -1.15384614, 0. + 272, -3.84615374, -0.769230783, 0. + 273, -3.84615374, -0.384615391, 0. + 274, -4.23076916, -4.61538458, 0. + 275, -4.23076916, -4.23076916, 0. + 276, -4.23076916, -3.84615374, 0. + 277, -4.23076916, -3.46153855, 0. + 278, -4.23076916, -3.07692313, 0. + 279, -4.23076916, -2.69230771, 0. + 280, -4.23076916, -2.30769229, 0. + 281, -4.23076916, -1.92307687, 0. + 282, -4.23076916, -1.53846157, 0. + 283, -4.23076916, -1.15384614, 0. + 284, -4.23076916, -0.769230783, 0. + 285, -4.23076916, -0.384615391, 0. + 286, -4.61538458, -4.61538458, 0. + 287, -4.61538458, -4.23076916, 0. + 288, -4.61538458, -3.84615374, 0. + 289, -4.61538458, -3.46153855, 0. + 290, -4.61538458, -3.07692313, 0. + 291, -4.61538458, -2.69230771, 0. + 292, -4.61538458, -2.30769229, 0. + 293, -4.61538458, -1.92307687, 0. + 294, -4.61538458, -1.53846157, 0. + 295, -4.61538458, -1.15384614, 0. + 296, -4.61538458, -0.769230783, 0. + 297, -4.61538458, -0.384615391, 0. + 298, 0.384615391, 4.61538458, 0. + 299, 0.384615391, 4.23076916, 0. + 300, 0.384615391, 3.84615374, 0. + 301, 0.384615391, 3.46153855, 0. + 302, 0.384615391, 3.07692313, 0. + 303, 0.384615391, 2.69230771, 0. + 304, 0.384615391, 2.30769229, 0. + 305, 0.384615391, 1.92307687, 0. + 306, 0.384615391, 1.53846157, 0. + 307, 0.384615391, 1.15384614, 0. + 308, 0.384615391, 0.769230783, 0. + 309, 0.384615391, 0.384615391, 0. + 310, 0.769230783, 4.61538458, 0. + 311, 0.769230783, 4.23076916, 0. + 312, 0.769230783, 3.84615374, 0. + 313, 0.769230783, 3.46153855, 0. + 314, 0.769230783, 3.07692313, 0. + 315, 0.769230783, 2.69230771, 0. + 316, 0.769230783, 2.30769229, 0. + 317, 0.769230783, 1.92307687, 0. + 318, 0.769230783, 1.53846157, 0. + 319, 0.769230783, 1.15384614, 0. + 320, 0.769230783, 0.769230783, 0. + 321, 0.769230783, 0.384615391, 0. + 322, 1.15384614, 4.61538458, 0. + 323, 1.15384614, 4.23076916, 0. + 324, 1.15384614, 3.84615374, 0. + 325, 1.15384614, 3.46153855, 0. + 326, 1.15384614, 3.07692313, 0. + 327, 1.15384614, 2.69230771, 0. + 328, 1.15384614, 2.30769229, 0. + 329, 1.15384614, 1.92307687, 0. + 330, 1.15384614, 1.53846157, 0. + 331, 1.15384614, 1.15384614, 0. + 332, 1.15384614, 0.769230783, 0. + 333, 1.15384614, 0.384615391, 0. + 334, 1.53846157, 4.61538458, 0. + 335, 1.53846157, 4.23076916, 0. + 336, 1.53846157, 3.84615374, 0. + 337, 1.53846157, 3.46153855, 0. + 338, 1.53846157, 3.07692313, 0. + 339, 1.53846157, 2.69230771, 0. + 340, 1.53846157, 2.30769229, 0. + 341, 1.53846157, 1.92307687, 0. + 342, 1.53846157, 1.53846157, 0. + 343, 1.53846157, 1.15384614, 0. + 344, 1.53846157, 0.769230783, 0. + 345, 1.53846157, 0.384615391, 0. + 346, 1.92307687, 4.61538458, 0. + 347, 1.92307687, 4.23076916, 0. + 348, 1.92307687, 3.84615374, 0. + 349, 1.92307687, 3.46153855, 0. + 350, 1.92307687, 3.07692313, 0. + 351, 1.92307687, 2.69230771, 0. + 352, 1.92307687, 2.30769229, 0. + 353, 1.92307687, 1.92307687, 0. + 354, 1.92307687, 1.53846157, 0. + 355, 1.92307687, 1.15384614, 0. + 356, 1.92307687, 0.769230783, 0. + 357, 1.92307687, 0.384615391, 0. + 358, 2.30769229, 4.61538458, 0. + 359, 2.30769229, 4.23076916, 0. + 360, 2.30769229, 3.84615374, 0. + 361, 2.30769229, 3.46153855, 0. + 362, 2.30769229, 3.07692313, 0. + 363, 2.30769229, 2.69230771, 0. + 364, 2.30769229, 2.30769229, 0. + 365, 2.30769229, 1.92307687, 0. + 366, 2.30769229, 1.53846157, 0. + 367, 2.30769229, 1.15384614, 0. + 368, 2.30769229, 0.769230783, 0. + 369, 2.30769229, 0.384615391, 0. + 370, 2.69230771, 4.61538458, 0. + 371, 2.69230771, 4.23076916, 0. + 372, 2.69230771, 3.84615374, 0. + 373, 2.69230771, 3.46153855, 0. + 374, 2.69230771, 3.07692313, 0. + 375, 2.69230771, 2.69230771, 0. + 376, 2.69230771, 2.30769229, 0. + 377, 2.69230771, 1.92307687, 0. + 378, 2.69230771, 1.53846157, 0. + 379, 2.69230771, 1.15384614, 0. + 380, 2.69230771, 0.769230783, 0. + 381, 2.69230771, 0.384615391, 0. + 382, 3.07692313, 4.61538458, 0. + 383, 3.07692313, 4.23076916, 0. + 384, 3.07692313, 3.84615374, 0. + 385, 3.07692313, 3.46153855, 0. + 386, 3.07692313, 3.07692313, 0. + 387, 3.07692313, 2.69230771, 0. + 388, 3.07692313, 2.30769229, 0. + 389, 3.07692313, 1.92307687, 0. + 390, 3.07692313, 1.53846157, 0. + 391, 3.07692313, 1.15384614, 0. + 392, 3.07692313, 0.769230783, 0. + 393, 3.07692313, 0.384615391, 0. + 394, 3.46153855, 4.61538458, 0. + 395, 3.46153855, 4.23076916, 0. + 396, 3.46153855, 3.84615374, 0. + 397, 3.46153855, 3.46153855, 0. + 398, 3.46153855, 3.07692313, 0. + 399, 3.46153855, 2.69230771, 0. + 400, 3.46153855, 2.30769229, 0. + 401, 3.46153855, 1.92307687, 0. + 402, 3.46153855, 1.53846157, 0. + 403, 3.46153855, 1.15384614, 0. + 404, 3.46153855, 0.769230783, 0. + 405, 3.46153855, 0.384615391, 0. + 406, 3.84615374, 4.61538458, 0. + 407, 3.84615374, 4.23076916, 0. + 408, 3.84615374, 3.84615374, 0. + 409, 3.84615374, 3.46153855, 0. + 410, 3.84615374, 3.07692313, 0. + 411, 3.84615374, 2.69230771, 0. + 412, 3.84615374, 2.30769229, 0. + 413, 3.84615374, 1.92307687, 0. + 414, 3.84615374, 1.53846157, 0. + 415, 3.84615374, 1.15384614, 0. + 416, 3.84615374, 0.769230783, 0. + 417, 3.84615374, 0.384615391, 0. + 418, 4.23076916, 4.61538458, 0. + 419, 4.23076916, 4.23076916, 0. + 420, 4.23076916, 3.84615374, 0. + 421, 4.23076916, 3.46153855, 0. + 422, 4.23076916, 3.07692313, 0. + 423, 4.23076916, 2.69230771, 0. + 424, 4.23076916, 2.30769229, 0. + 425, 4.23076916, 1.92307687, 0. + 426, 4.23076916, 1.53846157, 0. + 427, 4.23076916, 1.15384614, 0. + 428, 4.23076916, 0.769230783, 0. + 429, 4.23076916, 0.384615391, 0. + 430, 4.61538458, 4.61538458, 0. + 431, 4.61538458, 4.23076916, 0. + 432, 4.61538458, 3.84615374, 0. + 433, 4.61538458, 3.46153855, 0. + 434, 4.61538458, 3.07692313, 0. + 435, 4.61538458, 2.69230771, 0. + 436, 4.61538458, 2.30769229, 0. + 437, 4.61538458, 1.92307687, 0. + 438, 4.61538458, 1.53846157, 0. + 439, 4.61538458, 1.15384614, 0. + 440, 4.61538458, 0.769230783, 0. + 441, 4.61538458, 0.384615391, 0. + 442, -0.384615391, 0.384615391, 0. + 443, -0.384615391, 0.769230783, 0. + 444, -0.384615391, 1.15384614, 0. + 445, -0.384615391, 1.53846157, 0. + 446, -0.384615391, 1.92307687, 0. + 447, -0.384615391, 2.30769229, 0. + 448, -0.384615391, 2.69230771, 0. + 449, -0.384615391, 3.07692313, 0. + 450, -0.384615391, 3.46153855, 0. + 451, -0.384615391, 3.84615374, 0. + 452, -0.384615391, 4.23076916, 0. + 453, -0.384615391, 4.61538458, 0. + 454, -0.769230783, 0.384615391, 0. + 455, -0.769230783, 0.769230783, 0. + 456, -0.769230783, 1.15384614, 0. + 457, -0.769230783, 1.53846157, 0. + 458, -0.769230783, 1.92307687, 0. + 459, -0.769230783, 2.30769229, 0. + 460, -0.769230783, 2.69230771, 0. + 461, -0.769230783, 3.07692313, 0. + 462, -0.769230783, 3.46153855, 0. + 463, -0.769230783, 3.84615374, 0. + 464, -0.769230783, 4.23076916, 0. + 465, -0.769230783, 4.61538458, 0. + 466, -1.15384614, 0.384615391, 0. + 467, -1.15384614, 0.769230783, 0. + 468, -1.15384614, 1.15384614, 0. + 469, -1.15384614, 1.53846157, 0. + 470, -1.15384614, 1.92307687, 0. + 471, -1.15384614, 2.30769229, 0. + 472, -1.15384614, 2.69230771, 0. + 473, -1.15384614, 3.07692313, 0. + 474, -1.15384614, 3.46153855, 0. + 475, -1.15384614, 3.84615374, 0. + 476, -1.15384614, 4.23076916, 0. + 477, -1.15384614, 4.61538458, 0. + 478, -1.53846157, 0.384615391, 0. + 479, -1.53846157, 0.769230783, 0. + 480, -1.53846157, 1.15384614, 0. + 481, -1.53846157, 1.53846157, 0. + 482, -1.53846157, 1.92307687, 0. + 483, -1.53846157, 2.30769229, 0. + 484, -1.53846157, 2.69230771, 0. + 485, -1.53846157, 3.07692313, 0. + 486, -1.53846157, 3.46153855, 0. + 487, -1.53846157, 3.84615374, 0. + 488, -1.53846157, 4.23076916, 0. + 489, -1.53846157, 4.61538458, 0. + 490, -1.92307687, 0.384615391, 0. + 491, -1.92307687, 0.769230783, 0. + 492, -1.92307687, 1.15384614, 0. + 493, -1.92307687, 1.53846157, 0. + 494, -1.92307687, 1.92307687, 0. + 495, -1.92307687, 2.30769229, 0. + 496, -1.92307687, 2.69230771, 0. + 497, -1.92307687, 3.07692313, 0. + 498, -1.92307687, 3.46153855, 0. + 499, -1.92307687, 3.84615374, 0. + 500, -1.92307687, 4.23076916, 0. + 501, -1.92307687, 4.61538458, 0. + 502, -2.30769229, 0.384615391, 0. + 503, -2.30769229, 0.769230783, 0. + 504, -2.30769229, 1.15384614, 0. + 505, -2.30769229, 1.53846157, 0. + 506, -2.30769229, 1.92307687, 0. + 507, -2.30769229, 2.30769229, 0. + 508, -2.30769229, 2.69230771, 0. + 509, -2.30769229, 3.07692313, 0. + 510, -2.30769229, 3.46153855, 0. + 511, -2.30769229, 3.84615374, 0. + 512, -2.30769229, 4.23076916, 0. + 513, -2.30769229, 4.61538458, 0. + 514, -2.69230771, 0.384615391, 0. + 515, -2.69230771, 0.769230783, 0. + 516, -2.69230771, 1.15384614, 0. + 517, -2.69230771, 1.53846157, 0. + 518, -2.69230771, 1.92307687, 0. + 519, -2.69230771, 2.30769229, 0. + 520, -2.69230771, 2.69230771, 0. + 521, -2.69230771, 3.07692313, 0. + 522, -2.69230771, 3.46153855, 0. + 523, -2.69230771, 3.84615374, 0. + 524, -2.69230771, 4.23076916, 0. + 525, -2.69230771, 4.61538458, 0. + 526, -3.07692313, 0.384615391, 0. + 527, -3.07692313, 0.769230783, 0. + 528, -3.07692313, 1.15384614, 0. + 529, -3.07692313, 1.53846157, 0. + 530, -3.07692313, 1.92307687, 0. + 531, -3.07692313, 2.30769229, 0. + 532, -3.07692313, 2.69230771, 0. + 533, -3.07692313, 3.07692313, 0. + 534, -3.07692313, 3.46153855, 0. + 535, -3.07692313, 3.84615374, 0. + 536, -3.07692313, 4.23076916, 0. + 537, -3.07692313, 4.61538458, 0. + 538, -3.46153855, 0.384615391, 0. + 539, -3.46153855, 0.769230783, 0. + 540, -3.46153855, 1.15384614, 0. + 541, -3.46153855, 1.53846157, 0. + 542, -3.46153855, 1.92307687, 0. + 543, -3.46153855, 2.30769229, 0. + 544, -3.46153855, 2.69230771, 0. + 545, -3.46153855, 3.07692313, 0. + 546, -3.46153855, 3.46153855, 0. + 547, -3.46153855, 3.84615374, 0. + 548, -3.46153855, 4.23076916, 0. + 549, -3.46153855, 4.61538458, 0. + 550, -3.84615374, 0.384615391, 0. + 551, -3.84615374, 0.769230783, 0. + 552, -3.84615374, 1.15384614, 0. + 553, -3.84615374, 1.53846157, 0. + 554, -3.84615374, 1.92307687, 0. + 555, -3.84615374, 2.30769229, 0. + 556, -3.84615374, 2.69230771, 0. + 557, -3.84615374, 3.07692313, 0. + 558, -3.84615374, 3.46153855, 0. + 559, -3.84615374, 3.84615374, 0. + 560, -3.84615374, 4.23076916, 0. + 561, -3.84615374, 4.61538458, 0. + 562, -4.23076916, 0.384615391, 0. + 563, -4.23076916, 0.769230783, 0. + 564, -4.23076916, 1.15384614, 0. + 565, -4.23076916, 1.53846157, 0. + 566, -4.23076916, 1.92307687, 0. + 567, -4.23076916, 2.30769229, 0. + 568, -4.23076916, 2.69230771, 0. + 569, -4.23076916, 3.07692313, 0. + 570, -4.23076916, 3.46153855, 0. + 571, -4.23076916, 3.84615374, 0. + 572, -4.23076916, 4.23076916, 0. + 573, -4.23076916, 4.61538458, 0. + 574, -4.61538458, 0.384615391, 0. + 575, -4.61538458, 0.769230783, 0. + 576, -4.61538458, 1.15384614, 0. + 577, -4.61538458, 1.53846157, 0. + 578, -4.61538458, 1.92307687, 0. + 579, -4.61538458, 2.30769229, 0. + 580, -4.61538458, 2.69230771, 0. + 581, -4.61538458, 3.07692313, 0. + 582, -4.61538458, 3.46153855, 0. + 583, -4.61538458, 3.84615374, 0. + 584, -4.61538458, 4.23076916, 0. + 585, -4.61538458, 4.61538458, 0. + 586, 0.384615391, -0.384615391, 0. + 587, 0.384615391, -0.769230783, 0. + 588, 0.384615391, -1.15384614, 0. + 589, 0.384615391, -1.53846157, 0. + 590, 0.384615391, -1.92307687, 0. + 591, 0.384615391, -2.30769229, 0. + 592, 0.384615391, -2.69230771, 0. + 593, 0.384615391, -3.07692313, 0. + 594, 0.384615391, -3.46153855, 0. + 595, 0.384615391, -3.84615374, 0. + 596, 0.384615391, -4.23076916, 0. + 597, 0.384615391, -4.61538458, 0. + 598, 0.769230783, -0.384615391, 0. + 599, 0.769230783, -0.769230783, 0. + 600, 0.769230783, -1.15384614, 0. + 601, 0.769230783, -1.53846157, 0. + 602, 0.769230783, -1.92307687, 0. + 603, 0.769230783, -2.30769229, 0. + 604, 0.769230783, -2.69230771, 0. + 605, 0.769230783, -3.07692313, 0. + 606, 0.769230783, -3.46153855, 0. + 607, 0.769230783, -3.84615374, 0. + 608, 0.769230783, -4.23076916, 0. + 609, 0.769230783, -4.61538458, 0. + 610, 1.15384614, -0.384615391, 0. + 611, 1.15384614, -0.769230783, 0. + 612, 1.15384614, -1.15384614, 0. + 613, 1.15384614, -1.53846157, 0. + 614, 1.15384614, -1.92307687, 0. + 615, 1.15384614, -2.30769229, 0. + 616, 1.15384614, -2.69230771, 0. + 617, 1.15384614, -3.07692313, 0. + 618, 1.15384614, -3.46153855, 0. + 619, 1.15384614, -3.84615374, 0. + 620, 1.15384614, -4.23076916, 0. + 621, 1.15384614, -4.61538458, 0. + 622, 1.53846157, -0.384615391, 0. + 623, 1.53846157, -0.769230783, 0. + 624, 1.53846157, -1.15384614, 0. + 625, 1.53846157, -1.53846157, 0. + 626, 1.53846157, -1.92307687, 0. + 627, 1.53846157, -2.30769229, 0. + 628, 1.53846157, -2.69230771, 0. + 629, 1.53846157, -3.07692313, 0. + 630, 1.53846157, -3.46153855, 0. + 631, 1.53846157, -3.84615374, 0. + 632, 1.53846157, -4.23076916, 0. + 633, 1.53846157, -4.61538458, 0. + 634, 1.92307687, -0.384615391, 0. + 635, 1.92307687, -0.769230783, 0. + 636, 1.92307687, -1.15384614, 0. + 637, 1.92307687, -1.53846157, 0. + 638, 1.92307687, -1.92307687, 0. + 639, 1.92307687, -2.30769229, 0. + 640, 1.92307687, -2.69230771, 0. + 641, 1.92307687, -3.07692313, 0. + 642, 1.92307687, -3.46153855, 0. + 643, 1.92307687, -3.84615374, 0. + 644, 1.92307687, -4.23076916, 0. + 645, 1.92307687, -4.61538458, 0. + 646, 2.30769229, -0.384615391, 0. + 647, 2.30769229, -0.769230783, 0. + 648, 2.30769229, -1.15384614, 0. + 649, 2.30769229, -1.53846157, 0. + 650, 2.30769229, -1.92307687, 0. + 651, 2.30769229, -2.30769229, 0. + 652, 2.30769229, -2.69230771, 0. + 653, 2.30769229, -3.07692313, 0. + 654, 2.30769229, -3.46153855, 0. + 655, 2.30769229, -3.84615374, 0. + 656, 2.30769229, -4.23076916, 0. + 657, 2.30769229, -4.61538458, 0. + 658, 2.69230771, -0.384615391, 0. + 659, 2.69230771, -0.769230783, 0. + 660, 2.69230771, -1.15384614, 0. + 661, 2.69230771, -1.53846157, 0. + 662, 2.69230771, -1.92307687, 0. + 663, 2.69230771, -2.30769229, 0. + 664, 2.69230771, -2.69230771, 0. + 665, 2.69230771, -3.07692313, 0. + 666, 2.69230771, -3.46153855, 0. + 667, 2.69230771, -3.84615374, 0. + 668, 2.69230771, -4.23076916, 0. + 669, 2.69230771, -4.61538458, 0. + 670, 3.07692313, -0.384615391, 0. + 671, 3.07692313, -0.769230783, 0. + 672, 3.07692313, -1.15384614, 0. + 673, 3.07692313, -1.53846157, 0. + 674, 3.07692313, -1.92307687, 0. + 675, 3.07692313, -2.30769229, 0. + 676, 3.07692313, -2.69230771, 0. + 677, 3.07692313, -3.07692313, 0. + 678, 3.07692313, -3.46153855, 0. + 679, 3.07692313, -3.84615374, 0. + 680, 3.07692313, -4.23076916, 0. + 681, 3.07692313, -4.61538458, 0. + 682, 3.46153855, -0.384615391, 0. + 683, 3.46153855, -0.769230783, 0. + 684, 3.46153855, -1.15384614, 0. + 685, 3.46153855, -1.53846157, 0. + 686, 3.46153855, -1.92307687, 0. + 687, 3.46153855, -2.30769229, 0. + 688, 3.46153855, -2.69230771, 0. + 689, 3.46153855, -3.07692313, 0. + 690, 3.46153855, -3.46153855, 0. + 691, 3.46153855, -3.84615374, 0. + 692, 3.46153855, -4.23076916, 0. + 693, 3.46153855, -4.61538458, 0. + 694, 3.84615374, -0.384615391, 0. + 695, 3.84615374, -0.769230783, 0. + 696, 3.84615374, -1.15384614, 0. + 697, 3.84615374, -1.53846157, 0. + 698, 3.84615374, -1.92307687, 0. + 699, 3.84615374, -2.30769229, 0. + 700, 3.84615374, -2.69230771, 0. + 701, 3.84615374, -3.07692313, 0. + 702, 3.84615374, -3.46153855, 0. + 703, 3.84615374, -3.84615374, 0. + 704, 3.84615374, -4.23076916, 0. + 705, 3.84615374, -4.61538458, 0. + 706, 4.23076916, -0.384615391, 0. + 707, 4.23076916, -0.769230783, 0. + 708, 4.23076916, -1.15384614, 0. + 709, 4.23076916, -1.53846157, 0. + 710, 4.23076916, -1.92307687, 0. + 711, 4.23076916, -2.30769229, 0. + 712, 4.23076916, -2.69230771, 0. + 713, 4.23076916, -3.07692313, 0. + 714, 4.23076916, -3.46153855, 0. + 715, 4.23076916, -3.84615374, 0. + 716, 4.23076916, -4.23076916, 0. + 717, 4.23076916, -4.61538458, 0. + 718, 4.61538458, -0.384615391, 0. + 719, 4.61538458, -0.769230783, 0. + 720, 4.61538458, -1.15384614, 0. + 721, 4.61538458, -1.53846157, 0. + 722, 4.61538458, -1.92307687, 0. + 723, 4.61538458, -2.30769229, 0. + 724, 4.61538458, -2.69230771, 0. + 725, 4.61538458, -3.07692313, 0. + 726, 4.61538458, -3.46153855, 0. + 727, 4.61538458, -3.84615374, 0. + 728, 4.61538458, -4.23076916, 0. + 729, 4.61538458, -4.61538458, 0. +*Element, type=S4 + 1, 1, 10, 154, 57 + 2, 10, 11, 155, 154 + 3, 11, 12, 156, 155 + 4, 12, 13, 157, 156 + 5, 13, 14, 158, 157 + 6, 14, 15, 159, 158 + 7, 15, 16, 160, 159 + 8, 16, 17, 161, 160 + 9, 17, 18, 162, 161 + 10, 18, 19, 163, 162 + 11, 19, 20, 164, 163 + 12, 20, 21, 165, 164 + 13, 21, 2, 22, 165 + 14, 57, 154, 166, 56 + 15, 154, 155, 167, 166 + 16, 155, 156, 168, 167 + 17, 156, 157, 169, 168 + 18, 157, 158, 170, 169 + 19, 158, 159, 171, 170 + 20, 159, 160, 172, 171 + 21, 160, 161, 173, 172 + 22, 161, 162, 174, 173 + 23, 162, 163, 175, 174 + 24, 163, 164, 176, 175 + 25, 164, 165, 177, 176 + 26, 165, 22, 23, 177 + 27, 56, 166, 178, 55 + 28, 166, 167, 179, 178 + 29, 167, 168, 180, 179 + 30, 168, 169, 181, 180 + 31, 169, 170, 182, 181 + 32, 170, 171, 183, 182 + 33, 171, 172, 184, 183 + 34, 172, 173, 185, 184 + 35, 173, 174, 186, 185 + 36, 174, 175, 187, 186 + 37, 175, 176, 188, 187 + 38, 176, 177, 189, 188 + 39, 177, 23, 24, 189 + 40, 55, 178, 190, 54 + 41, 178, 179, 191, 190 + 42, 179, 180, 192, 191 + 43, 180, 181, 193, 192 + 44, 181, 182, 194, 193 + 45, 182, 183, 195, 194 + 46, 183, 184, 196, 195 + 47, 184, 185, 197, 196 + 48, 185, 186, 198, 197 + 49, 186, 187, 199, 198 + 50, 187, 188, 200, 199 + 51, 188, 189, 201, 200 + 52, 189, 24, 25, 201 + 53, 54, 190, 202, 53 + 54, 190, 191, 203, 202 + 55, 191, 192, 204, 203 + 56, 192, 193, 205, 204 + 57, 193, 194, 206, 205 + 58, 194, 195, 207, 206 + 59, 195, 196, 208, 207 + 60, 196, 197, 209, 208 + 61, 197, 198, 210, 209 + 62, 198, 199, 211, 210 + 63, 199, 200, 212, 211 + 64, 200, 201, 213, 212 + 65, 201, 25, 26, 213 + 66, 53, 202, 214, 52 + 67, 202, 203, 215, 214 + 68, 203, 204, 216, 215 + 69, 204, 205, 217, 216 + 70, 205, 206, 218, 217 + 71, 206, 207, 219, 218 + 72, 207, 208, 220, 219 + 73, 208, 209, 221, 220 + 74, 209, 210, 222, 221 + 75, 210, 211, 223, 222 + 76, 211, 212, 224, 223 + 77, 212, 213, 225, 224 + 78, 213, 26, 27, 225 + 79, 52, 214, 226, 51 + 80, 214, 215, 227, 226 + 81, 215, 216, 228, 227 + 82, 216, 217, 229, 228 + 83, 217, 218, 230, 229 + 84, 218, 219, 231, 230 + 85, 219, 220, 232, 231 + 86, 220, 221, 233, 232 + 87, 221, 222, 234, 233 + 88, 222, 223, 235, 234 + 89, 223, 224, 236, 235 + 90, 224, 225, 237, 236 + 91, 225, 27, 28, 237 + 92, 51, 226, 238, 50 + 93, 226, 227, 239, 238 + 94, 227, 228, 240, 239 + 95, 228, 229, 241, 240 + 96, 229, 230, 242, 241 + 97, 230, 231, 243, 242 + 98, 231, 232, 244, 243 + 99, 232, 233, 245, 244 +100, 233, 234, 246, 245 +101, 234, 235, 247, 246 +102, 235, 236, 248, 247 +103, 236, 237, 249, 248 +104, 237, 28, 29, 249 +105, 50, 238, 250, 49 +106, 238, 239, 251, 250 +107, 239, 240, 252, 251 +108, 240, 241, 253, 252 +109, 241, 242, 254, 253 +110, 242, 243, 255, 254 +111, 243, 244, 256, 255 +112, 244, 245, 257, 256 +113, 245, 246, 258, 257 +114, 246, 247, 259, 258 +115, 247, 248, 260, 259 +116, 248, 249, 261, 260 +117, 249, 29, 30, 261 +118, 49, 250, 262, 48 +119, 250, 251, 263, 262 +120, 251, 252, 264, 263 +121, 252, 253, 265, 264 +122, 253, 254, 266, 265 +123, 254, 255, 267, 266 +124, 255, 256, 268, 267 +125, 256, 257, 269, 268 +126, 257, 258, 270, 269 +127, 258, 259, 271, 270 +128, 259, 260, 272, 271 +129, 260, 261, 273, 272 +130, 261, 30, 31, 273 +131, 48, 262, 274, 47 +132, 262, 263, 275, 274 +133, 263, 264, 276, 275 +134, 264, 265, 277, 276 +135, 265, 266, 278, 277 +136, 266, 267, 279, 278 +137, 267, 268, 280, 279 +138, 268, 269, 281, 280 +139, 269, 270, 282, 281 +140, 270, 271, 283, 282 +141, 271, 272, 284, 283 +142, 272, 273, 285, 284 +143, 273, 31, 32, 285 +144, 47, 274, 286, 46 +145, 274, 275, 287, 286 +146, 275, 276, 288, 287 +147, 276, 277, 289, 288 +148, 277, 278, 290, 289 +149, 278, 279, 291, 290 +150, 279, 280, 292, 291 +151, 280, 281, 293, 292 +152, 281, 282, 294, 293 +153, 282, 283, 295, 294 +154, 283, 284, 296, 295 +155, 284, 285, 297, 296 +156, 285, 32, 33, 297 +157, 46, 286, 45, 4 +158, 286, 287, 44, 45 +159, 287, 288, 43, 44 +160, 288, 289, 42, 43 +161, 289, 290, 41, 42 +162, 290, 291, 40, 41 +163, 291, 292, 39, 40 +164, 292, 293, 38, 39 +165, 293, 294, 37, 38 +166, 294, 295, 36, 37 +167, 295, 296, 35, 36 +168, 296, 297, 34, 35 +169, 297, 33, 3, 34 +170, 5, 58, 298, 105 +171, 58, 59, 299, 298 +172, 59, 60, 300, 299 +173, 60, 61, 301, 300 +174, 61, 62, 302, 301 +175, 62, 63, 303, 302 +176, 63, 64, 304, 303 +177, 64, 65, 305, 304 +178, 65, 66, 306, 305 +179, 66, 67, 307, 306 +180, 67, 68, 308, 307 +181, 68, 69, 309, 308 +182, 69, 2, 70, 309 +183, 105, 298, 310, 104 +184, 298, 299, 311, 310 +185, 299, 300, 312, 311 +186, 300, 301, 313, 312 +187, 301, 302, 314, 313 +188, 302, 303, 315, 314 +189, 303, 304, 316, 315 +190, 304, 305, 317, 316 +191, 305, 306, 318, 317 +192, 306, 307, 319, 318 +193, 307, 308, 320, 319 +194, 308, 309, 321, 320 +195, 309, 70, 71, 321 +196, 104, 310, 322, 103 +197, 310, 311, 323, 322 +198, 311, 312, 324, 323 +199, 312, 313, 325, 324 +200, 313, 314, 326, 325 +201, 314, 315, 327, 326 +202, 315, 316, 328, 327 +203, 316, 317, 329, 328 +204, 317, 318, 330, 329 +205, 318, 319, 331, 330 +206, 319, 320, 332, 331 +207, 320, 321, 333, 332 +208, 321, 71, 72, 333 +209, 103, 322, 334, 102 +210, 322, 323, 335, 334 +211, 323, 324, 336, 335 +212, 324, 325, 337, 336 +213, 325, 326, 338, 337 +214, 326, 327, 339, 338 +215, 327, 328, 340, 339 +216, 328, 329, 341, 340 +217, 329, 330, 342, 341 +218, 330, 331, 343, 342 +219, 331, 332, 344, 343 +220, 332, 333, 345, 344 +221, 333, 72, 73, 345 +222, 102, 334, 346, 101 +223, 334, 335, 347, 346 +224, 335, 336, 348, 347 +225, 336, 337, 349, 348 +226, 337, 338, 350, 349 +227, 338, 339, 351, 350 +228, 339, 340, 352, 351 +229, 340, 341, 353, 352 +230, 341, 342, 354, 353 +231, 342, 343, 355, 354 +232, 343, 344, 356, 355 +233, 344, 345, 357, 356 +234, 345, 73, 74, 357 +235, 101, 346, 358, 100 +236, 346, 347, 359, 358 +237, 347, 348, 360, 359 +238, 348, 349, 361, 360 +239, 349, 350, 362, 361 +240, 350, 351, 363, 362 +241, 351, 352, 364, 363 +242, 352, 353, 365, 364 +243, 353, 354, 366, 365 +244, 354, 355, 367, 366 +245, 355, 356, 368, 367 +246, 356, 357, 369, 368 +247, 357, 74, 75, 369 +248, 100, 358, 370, 99 +249, 358, 359, 371, 370 +250, 359, 360, 372, 371 +251, 360, 361, 373, 372 +252, 361, 362, 374, 373 +253, 362, 363, 375, 374 +254, 363, 364, 376, 375 +255, 364, 365, 377, 376 +256, 365, 366, 378, 377 +257, 366, 367, 379, 378 +258, 367, 368, 380, 379 +259, 368, 369, 381, 380 +260, 369, 75, 76, 381 +261, 99, 370, 382, 98 +262, 370, 371, 383, 382 +263, 371, 372, 384, 383 +264, 372, 373, 385, 384 +265, 373, 374, 386, 385 +266, 374, 375, 387, 386 +267, 375, 376, 388, 387 +268, 376, 377, 389, 388 +269, 377, 378, 390, 389 +270, 378, 379, 391, 390 +271, 379, 380, 392, 391 +272, 380, 381, 393, 392 +273, 381, 76, 77, 393 +274, 98, 382, 394, 97 +275, 382, 383, 395, 394 +276, 383, 384, 396, 395 +277, 384, 385, 397, 396 +278, 385, 386, 398, 397 +279, 386, 387, 399, 398 +280, 387, 388, 400, 399 +281, 388, 389, 401, 400 +282, 389, 390, 402, 401 +283, 390, 391, 403, 402 +284, 391, 392, 404, 403 +285, 392, 393, 405, 404 +286, 393, 77, 78, 405 +287, 97, 394, 406, 96 +288, 394, 395, 407, 406 +289, 395, 396, 408, 407 +290, 396, 397, 409, 408 +291, 397, 398, 410, 409 +292, 398, 399, 411, 410 +293, 399, 400, 412, 411 +294, 400, 401, 413, 412 +295, 401, 402, 414, 413 +296, 402, 403, 415, 414 +297, 403, 404, 416, 415 +298, 404, 405, 417, 416 +299, 405, 78, 79, 417 +300, 96, 406, 418, 95 +301, 406, 407, 419, 418 +302, 407, 408, 420, 419 +303, 408, 409, 421, 420 +304, 409, 410, 422, 421 +305, 410, 411, 423, 422 +306, 411, 412, 424, 423 +307, 412, 413, 425, 424 +308, 413, 414, 426, 425 +309, 414, 415, 427, 426 +310, 415, 416, 428, 427 +311, 416, 417, 429, 428 +312, 417, 79, 80, 429 +313, 95, 418, 430, 94 +314, 418, 419, 431, 430 +315, 419, 420, 432, 431 +316, 420, 421, 433, 432 +317, 421, 422, 434, 433 +318, 422, 423, 435, 434 +319, 423, 424, 436, 435 +320, 424, 425, 437, 436 +321, 425, 426, 438, 437 +322, 426, 427, 439, 438 +323, 427, 428, 440, 439 +324, 428, 429, 441, 440 +325, 429, 80, 81, 441 +326, 94, 430, 93, 7 +327, 430, 431, 92, 93 +328, 431, 432, 91, 92 +329, 432, 433, 90, 91 +330, 433, 434, 89, 90 +331, 434, 435, 88, 89 +332, 435, 436, 87, 88 +333, 436, 437, 86, 87 +334, 437, 438, 85, 86 +335, 438, 439, 84, 85 +336, 439, 440, 83, 84 +337, 440, 441, 82, 83 +338, 441, 81, 6, 82 +339, 2, 69, 442, 22 +340, 69, 68, 443, 442 +341, 68, 67, 444, 443 +342, 67, 66, 445, 444 +343, 66, 65, 446, 445 +344, 65, 64, 447, 446 +345, 64, 63, 448, 447 +346, 63, 62, 449, 448 +347, 62, 61, 450, 449 +348, 61, 60, 451, 450 +349, 60, 59, 452, 451 +350, 59, 58, 453, 452 +351, 58, 5, 106, 453 +352, 22, 442, 454, 23 +353, 442, 443, 455, 454 +354, 443, 444, 456, 455 +355, 444, 445, 457, 456 +356, 445, 446, 458, 457 +357, 446, 447, 459, 458 +358, 447, 448, 460, 459 +359, 448, 449, 461, 460 +360, 449, 450, 462, 461 +361, 450, 451, 463, 462 +362, 451, 452, 464, 463 +363, 452, 453, 465, 464 +364, 453, 106, 107, 465 +365, 23, 454, 466, 24 +366, 454, 455, 467, 466 +367, 455, 456, 468, 467 +368, 456, 457, 469, 468 +369, 457, 458, 470, 469 +370, 458, 459, 471, 470 +371, 459, 460, 472, 471 +372, 460, 461, 473, 472 +373, 461, 462, 474, 473 +374, 462, 463, 475, 474 +375, 463, 464, 476, 475 +376, 464, 465, 477, 476 +377, 465, 107, 108, 477 +378, 24, 466, 478, 25 +379, 466, 467, 479, 478 +380, 467, 468, 480, 479 +381, 468, 469, 481, 480 +382, 469, 470, 482, 481 +383, 470, 471, 483, 482 +384, 471, 472, 484, 483 +385, 472, 473, 485, 484 +386, 473, 474, 486, 485 +387, 474, 475, 487, 486 +388, 475, 476, 488, 487 +389, 476, 477, 489, 488 +390, 477, 108, 109, 489 +391, 25, 478, 490, 26 +392, 478, 479, 491, 490 +393, 479, 480, 492, 491 +394, 480, 481, 493, 492 +395, 481, 482, 494, 493 +396, 482, 483, 495, 494 +397, 483, 484, 496, 495 +398, 484, 485, 497, 496 +399, 485, 486, 498, 497 +400, 486, 487, 499, 498 +401, 487, 488, 500, 499 +402, 488, 489, 501, 500 +403, 489, 109, 110, 501 +404, 26, 490, 502, 27 +405, 490, 491, 503, 502 +406, 491, 492, 504, 503 +407, 492, 493, 505, 504 +408, 493, 494, 506, 505 +409, 494, 495, 507, 506 +410, 495, 496, 508, 507 +411, 496, 497, 509, 508 +412, 497, 498, 510, 509 +413, 498, 499, 511, 510 +414, 499, 500, 512, 511 +415, 500, 501, 513, 512 +416, 501, 110, 111, 513 +417, 27, 502, 514, 28 +418, 502, 503, 515, 514 +419, 503, 504, 516, 515 +420, 504, 505, 517, 516 +421, 505, 506, 518, 517 +422, 506, 507, 519, 518 +423, 507, 508, 520, 519 +424, 508, 509, 521, 520 +425, 509, 510, 522, 521 +426, 510, 511, 523, 522 +427, 511, 512, 524, 523 +428, 512, 513, 525, 524 +429, 513, 111, 112, 525 +430, 28, 514, 526, 29 +431, 514, 515, 527, 526 +432, 515, 516, 528, 527 +433, 516, 517, 529, 528 +434, 517, 518, 530, 529 +435, 518, 519, 531, 530 +436, 519, 520, 532, 531 +437, 520, 521, 533, 532 +438, 521, 522, 534, 533 +439, 522, 523, 535, 534 +440, 523, 524, 536, 535 +441, 524, 525, 537, 536 +442, 525, 112, 113, 537 +443, 29, 526, 538, 30 +444, 526, 527, 539, 538 +445, 527, 528, 540, 539 +446, 528, 529, 541, 540 +447, 529, 530, 542, 541 +448, 530, 531, 543, 542 +449, 531, 532, 544, 543 +450, 532, 533, 545, 544 +451, 533, 534, 546, 545 +452, 534, 535, 547, 546 +453, 535, 536, 548, 547 +454, 536, 537, 549, 548 +455, 537, 113, 114, 549 +456, 30, 538, 550, 31 +457, 538, 539, 551, 550 +458, 539, 540, 552, 551 +459, 540, 541, 553, 552 +460, 541, 542, 554, 553 +461, 542, 543, 555, 554 +462, 543, 544, 556, 555 +463, 544, 545, 557, 556 +464, 545, 546, 558, 557 +465, 546, 547, 559, 558 +466, 547, 548, 560, 559 +467, 548, 549, 561, 560 +468, 549, 114, 115, 561 +469, 31, 550, 562, 32 +470, 550, 551, 563, 562 +471, 551, 552, 564, 563 +472, 552, 553, 565, 564 +473, 553, 554, 566, 565 +474, 554, 555, 567, 566 +475, 555, 556, 568, 567 +476, 556, 557, 569, 568 +477, 557, 558, 570, 569 +478, 558, 559, 571, 570 +479, 559, 560, 572, 571 +480, 560, 561, 573, 572 +481, 561, 115, 116, 573 +482, 32, 562, 574, 33 +483, 562, 563, 575, 574 +484, 563, 564, 576, 575 +485, 564, 565, 577, 576 +486, 565, 566, 578, 577 +487, 566, 567, 579, 578 +488, 567, 568, 580, 579 +489, 568, 569, 581, 580 +490, 569, 570, 582, 581 +491, 570, 571, 583, 582 +492, 571, 572, 584, 583 +493, 572, 573, 585, 584 +494, 573, 116, 117, 585 +495, 33, 574, 129, 3 +496, 574, 575, 128, 129 +497, 575, 576, 127, 128 +498, 576, 577, 126, 127 +499, 577, 578, 125, 126 +500, 578, 579, 124, 125 +501, 579, 580, 123, 124 +502, 580, 581, 122, 123 +503, 581, 582, 121, 122 +504, 582, 583, 120, 121 +505, 583, 584, 119, 120 +506, 584, 585, 118, 119 +507, 585, 117, 8, 118 +508, 2, 21, 586, 70 +509, 21, 20, 587, 586 +510, 20, 19, 588, 587 +511, 19, 18, 589, 588 +512, 18, 17, 590, 589 +513, 17, 16, 591, 590 +514, 16, 15, 592, 591 +515, 15, 14, 593, 592 +516, 14, 13, 594, 593 +517, 13, 12, 595, 594 +518, 12, 11, 596, 595 +519, 11, 10, 597, 596 +520, 10, 1, 130, 597 +521, 70, 586, 598, 71 +522, 586, 587, 599, 598 +523, 587, 588, 600, 599 +524, 588, 589, 601, 600 +525, 589, 590, 602, 601 +526, 590, 591, 603, 602 +527, 591, 592, 604, 603 +528, 592, 593, 605, 604 +529, 593, 594, 606, 605 +530, 594, 595, 607, 606 +531, 595, 596, 608, 607 +532, 596, 597, 609, 608 +533, 597, 130, 131, 609 +534, 71, 598, 610, 72 +535, 598, 599, 611, 610 +536, 599, 600, 612, 611 +537, 600, 601, 613, 612 +538, 601, 602, 614, 613 +539, 602, 603, 615, 614 +540, 603, 604, 616, 615 +541, 604, 605, 617, 616 +542, 605, 606, 618, 617 +543, 606, 607, 619, 618 +544, 607, 608, 620, 619 +545, 608, 609, 621, 620 +546, 609, 131, 132, 621 +547, 72, 610, 622, 73 +548, 610, 611, 623, 622 +549, 611, 612, 624, 623 +550, 612, 613, 625, 624 +551, 613, 614, 626, 625 +552, 614, 615, 627, 626 +553, 615, 616, 628, 627 +554, 616, 617, 629, 628 +555, 617, 618, 630, 629 +556, 618, 619, 631, 630 +557, 619, 620, 632, 631 +558, 620, 621, 633, 632 +559, 621, 132, 133, 633 +560, 73, 622, 634, 74 +561, 622, 623, 635, 634 +562, 623, 624, 636, 635 +563, 624, 625, 637, 636 +564, 625, 626, 638, 637 +565, 626, 627, 639, 638 +566, 627, 628, 640, 639 +567, 628, 629, 641, 640 +568, 629, 630, 642, 641 +569, 630, 631, 643, 642 +570, 631, 632, 644, 643 +571, 632, 633, 645, 644 +572, 633, 133, 134, 645 +573, 74, 634, 646, 75 +574, 634, 635, 647, 646 +575, 635, 636, 648, 647 +576, 636, 637, 649, 648 +577, 637, 638, 650, 649 +578, 638, 639, 651, 650 +579, 639, 640, 652, 651 +580, 640, 641, 653, 652 +581, 641, 642, 654, 653 +582, 642, 643, 655, 654 +583, 643, 644, 656, 655 +584, 644, 645, 657, 656 +585, 645, 134, 135, 657 +586, 75, 646, 658, 76 +587, 646, 647, 659, 658 +588, 647, 648, 660, 659 +589, 648, 649, 661, 660 +590, 649, 650, 662, 661 +591, 650, 651, 663, 662 +592, 651, 652, 664, 663 +593, 652, 653, 665, 664 +594, 653, 654, 666, 665 +595, 654, 655, 667, 666 +596, 655, 656, 668, 667 +597, 656, 657, 669, 668 +598, 657, 135, 136, 669 +599, 76, 658, 670, 77 +600, 658, 659, 671, 670 +601, 659, 660, 672, 671 +602, 660, 661, 673, 672 +603, 661, 662, 674, 673 +604, 662, 663, 675, 674 +605, 663, 664, 676, 675 +606, 664, 665, 677, 676 +607, 665, 666, 678, 677 +608, 666, 667, 679, 678 +609, 667, 668, 680, 679 +610, 668, 669, 681, 680 +611, 669, 136, 137, 681 +612, 77, 670, 682, 78 +613, 670, 671, 683, 682 +614, 671, 672, 684, 683 +615, 672, 673, 685, 684 +616, 673, 674, 686, 685 +617, 674, 675, 687, 686 +618, 675, 676, 688, 687 +619, 676, 677, 689, 688 +620, 677, 678, 690, 689 +621, 678, 679, 691, 690 +622, 679, 680, 692, 691 +623, 680, 681, 693, 692 +624, 681, 137, 138, 693 +625, 78, 682, 694, 79 +626, 682, 683, 695, 694 +627, 683, 684, 696, 695 +628, 684, 685, 697, 696 +629, 685, 686, 698, 697 +630, 686, 687, 699, 698 +631, 687, 688, 700, 699 +632, 688, 689, 701, 700 +633, 689, 690, 702, 701 +634, 690, 691, 703, 702 +635, 691, 692, 704, 703 +636, 692, 693, 705, 704 +637, 693, 138, 139, 705 +638, 79, 694, 706, 80 +639, 694, 695, 707, 706 +640, 695, 696, 708, 707 +641, 696, 697, 709, 708 +642, 697, 698, 710, 709 +643, 698, 699, 711, 710 +644, 699, 700, 712, 711 +645, 700, 701, 713, 712 +646, 701, 702, 714, 713 +647, 702, 703, 715, 714 +648, 703, 704, 716, 715 +649, 704, 705, 717, 716 +650, 705, 139, 140, 717 +651, 80, 706, 718, 81 +652, 706, 707, 719, 718 +653, 707, 708, 720, 719 +654, 708, 709, 721, 720 +655, 709, 710, 722, 721 +656, 710, 711, 723, 722 +657, 711, 712, 724, 723 +658, 712, 713, 725, 724 +659, 713, 714, 726, 725 +660, 714, 715, 727, 726 +661, 715, 716, 728, 727 +662, 716, 717, 729, 728 +663, 717, 140, 141, 729 +664, 81, 718, 153, 6 +665, 718, 719, 152, 153 +666, 719, 720, 151, 152 +667, 720, 721, 150, 151 +668, 721, 722, 149, 150 +669, 722, 723, 148, 149 +670, 723, 724, 147, 148 +671, 724, 725, 146, 147 +672, 725, 726, 145, 146 +673, 726, 727, 144, 145 +674, 727, 728, 143, 144 +675, 728, 729, 142, 143 +676, 729, 141, 9, 142 +*Nset, nset=Set-1, generate + 1, 729, 1 +*Elset, elset=Set-1, generate + 1, 676, 1 +** Section: Section-1 +*Shell Section, elset=Set-1, material=Material-1 +0.5, 5 +*End Part +** +** +** ASSEMBLY +** +*Assembly, name=Assembly +** +*Instance, name=Part-1-1, part=Part-1 +*End Instance +** +*Nset, nset=Set-1, instance=Part-1-1 + 2, +*Nset, nset=Set-2, instance=Part-1-1 + 1, 3, 4, 5, 6, 7, 8, 9, 34, 35, 36, 37, 38, 39, 40, 41 + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113 + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129 + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145 + 146, 147, 148, 149, 150, 151, 152, 153 +*Elset, elset=Set-2, instance=Part-1-1 + 1, 14, 27, 40, 53, 66, 79, 92, 105, 118, 131, 144, 157, 158, 159, 160 + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 183, 196, 209, 222, 235, 248 + 261, 274, 287, 300, 313, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336 + 337, 338, 351, 364, 377, 390, 403, 416, 429, 442, 455, 468, 481, 494, 495, 496 + 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 520, 533, 546, 559, 572 + 585, 598, 611, 624, 637, 650, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672 + 673, 674, 675, 676 +*End Assembly +** +** MATERIALS +** +*Material, name=Material-1 +*Elastic + 2.1e+11, 0.3 +** +** BOUNDARY CONDITIONS +** +** Name: BC-1 Type: Displacement/Rotation +*Boundary +Set-2, 1, 1 +Set-2, 2, 2 +Set-2, 3, 3 +Set-2, 4, 4 +Set-2, 5, 5 +Set-2, 6, 6 +** ---------------------------------------------------------------- +** +** STEP: Step-1 +** +*Step, name=Step-1, nlgeom=YES +*Static +0.1, 1., 0.001, 0.1 +** +** LOADS +** +** Name: Load-1 Type: Concentrated force +*Cload +Set-1, 3, -100000. +** +** OUTPUT REQUESTS +** +*Restart, write, frequency=0 +** +** FIELD OUTPUT: F-Output-1 +** +*Output, field, variable=PRESELECT +** +** HISTORY OUTPUT: H-Output-1 +** +*Output, history, variable=PRESELECT +*End Step diff --git a/src/fesa/analysis/nonlinear_static_control.cpp b/src/fesa/analysis/nonlinear_static_control.cpp index 543ce8f..86235ae 100644 --- a/src/fesa/analysis/nonlinear_static_control.cpp +++ b/src/fesa/analysis/nonlinear_static_control.cpp @@ -219,25 +219,25 @@ NewtonChannelDecision EvaluateResidualChannel( const double numerator = InfinityNorm(input.free_residual, is_finite); const double internal = InfinityNorm(input.free_internal, is_finite); const double external = InfinityNorm(input.free_external, is_finite); - const double denominator = (std::max)(internal, external); if (!is_finite) { return {input.identity, numerator, - denominator, + external, NewtonConvergenceBranch::kZeroScale, kNewtonZeroScaleThreshold, unit, false}; } - if (denominator == 0.0) { + if (external == 0.0) { return {input.identity, numerator, - denominator, + external, NewtonConvergenceBranch::kZeroScale, kNewtonZeroScaleThreshold, unit, numerator <= kNewtonZeroScaleThreshold}; } + const double denominator = (std::max)(internal, external); return {input.identity, numerator, denominator, diff --git a/src/fesa/analysis/nonlinear_static_procedure.cpp b/src/fesa/analysis/nonlinear_static_procedure.cpp index 41d79b8..7663655 100644 --- a/src/fesa/analysis/nonlinear_static_procedure.cpp +++ b/src/fesa/analysis/nonlinear_static_procedure.cpp @@ -1,5 +1,6 @@ #include "fesa/analysis/nonlinear_static_procedure.h" +#include #include #include #include @@ -501,23 +502,101 @@ Vector CurrentIncrementComponents(const Vector& current, const Vector& start, return SelectFreeComponents(difference, dofs, rotations); } -std::array GlobalEquilibrium(const Domain& domain, - const Vector& residual) { - std::array equilibrium{}; +Vector3 SpatialMoment(const Matrix& transform, + const std::array& generalized) { + return {transform(0U, 0U) * generalized[0U] + + transform(0U, 1U) * generalized[1U] + + transform(0U, 2U) * generalized[2U], + transform(1U, 0U) * generalized[0U] + + transform(1U, 1U) * generalized[1U] + + transform(1U, 2U) * generalized[2U], + transform(2U, 0U) * generalized[0U] + + transform(2U, 1U) * generalized[1U] + + transform(2U, 2U) * generalized[2U]}; +} + +/// @brief Computes accepted-state applied-plus-reaction balance evidence. +Result> GlobalEquilibrium( + const Domain& domain, const DofManager& dofs, + const NonlinearTrialState& trial) { + const std::size_t full_dof_count = domain.Nodes().size() * kDofsPerNode; + if (trial.displacement.Size() != full_dof_count || + trial.rotation_vector.Size() != full_dof_count || + trial.external_force.Size() != full_dof_count || + trial.residual.Size() != full_dof_count) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_PROCEDURE", + domain.SourceContentIdentity(), + "Nonlinear equilibrium vectors do not match the Domain node inventory.")); + } + + std::vector constrained(full_dof_count, false); + for (const std::size_t full_dof : dofs.ConstrainedDofs()) { + if (full_dof >= constrained.size()) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_PROCEDURE", + domain.SourceContentIdentity(), + "Nonlinear constraint identity is outside the full DOF range.")); + } + constrained[full_dof] = true; + } + + Vector3 applied_force_resultant; + Vector3 applied_moment_resultant; + Vector3 reaction_force_resultant; + Vector3 reaction_moment_resultant; for (std::size_t node = 0U; node < domain.Nodes().size(); ++node) { const std::size_t first = node * kDofsPerNode; - const Vector3 force{residual[first], residual[first + 1U], - residual[first + 2U]}; - const Vector3 position{domain.Nodes()[node].coordinates}; - const Vector3 moment = position.Cross(force); - equilibrium[0U] += force.X(); - equilibrium[1U] += force.Y(); - equilibrium[2U] += force.Z(); - equilibrium[3U] += moment.X() + residual[first + 3U]; - equilibrium[4U] += moment.Y() + residual[first + 4U]; - equilibrium[5U] += moment.Z() + residual[first + 5U]; + const Vector3 position = Vector3{domain.Nodes()[node].coordinates} + + Vector3{trial.displacement[first], + trial.displacement[first + 1U], + trial.displacement[first + 2U]}; + const Vector3 phi{trial.rotation_vector[first + 3U], + trial.rotation_vector[first + 4U], + trial.rotation_vector[first + 5U]}; + const Vector3 applied_force{trial.external_force[first], + trial.external_force[first + 1U], + trial.external_force[first + 2U]}; + const Vector3 reaction_force{ + constrained[first] ? trial.residual[first] : 0.0, + constrained[first + 1U] ? trial.residual[first + 1U] : 0.0, + constrained[first + 2U] ? trial.residual[first + 2U] : 0.0}; + const Matrix transform = InverseTransposeLeftJacobianSO3(phi); + const std::array applied_generalized{ + trial.external_force[first + 3U], trial.external_force[first + 4U], + trial.external_force[first + 5U]}; + const std::array reaction_generalized{ + constrained[first + 3U] ? trial.residual[first + 3U] : 0.0, + constrained[first + 4U] ? trial.residual[first + 4U] : 0.0, + constrained[first + 5U] ? trial.residual[first + 5U] : 0.0}; + const Vector3 applied_moment = SpatialMoment(transform, applied_generalized); + const Vector3 reaction_moment = + SpatialMoment(transform, reaction_generalized); + applied_force_resultant = applied_force_resultant + applied_force; + applied_moment_resultant = + applied_moment_resultant + position.Cross(applied_force) + applied_moment; + reaction_force_resultant = reaction_force_resultant + reaction_force; + reaction_moment_resultant = reaction_moment_resultant + + position.Cross(reaction_force) + reaction_moment; } - return equilibrium; + const Vector3 force_balance = + applied_force_resultant + reaction_force_resultant; + const Vector3 moment_balance = + applied_moment_resultant + reaction_moment_resultant; + const std::array equilibrium{ + force_balance.X(), force_balance.Y(), force_balance.Z(), + moment_balance.X(), moment_balance.Y(), moment_balance.Z()}; + if (!std::all_of(equilibrium.begin(), equilibrium.end(), + [](const double value) { return std::isfinite(value); })) { + return Result>::Failure(ProcedureFailure( + FailureCategory::kSolver, "nonfinite-newton-data", + {domain.SourcePath(), 0U}, "NONLINEAR_STATIC_PROCEDURE", + domain.SourceContentIdentity(), + "Nonlinear global equilibrium balance is nonfinite.")); + } + return Result>::Success(equilibrium); } Status ApplyIncrementConstraints(const StepDefinition& step, @@ -689,8 +768,14 @@ NonlinearStaticProcedureExecutor::Execute( trial.Value().shell_results = std::move(internal.Value().shell_rows); trial.Value().physical_strain_energy = internal.Value().physical_strain_energy; - trial.Value().global_equilibrium = - GlobalEquilibrium(domain, trial.Value().residual); + Result> global_equilibrium = + GlobalEquilibrium(domain, dofs.Value(), trial.Value()); + if (!global_equilibrium.HasValue()) { + return Result::Failure(RecordFailure( + log, &record, global_equilibrium.GetStatus(), + NewtonIterationStage::kExternalAssembled)); + } + trial.Value().global_equilibrium = global_equilibrium.Value(); Result partition = constraints.Partition(tangent.Value(), dofs.Value()); diff --git a/src/fesa/io/hdf5/hdf5_self_check.cpp b/src/fesa/io/hdf5/hdf5_self_check.cpp index f76ade7..6a77619 100644 --- a/src/fesa/io/hdf5/hdf5_self_check.cpp +++ b/src/fesa/io/hdf5/hdf5_self_check.cpp @@ -914,7 +914,7 @@ void NonlinearSelfCheckFile(const std::filesystem::path& path, file.Get(), (root + "/global/equilibrium").c_str(), {6U}, "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3", "force,force,force,force*length,force*length,force*length", - "global-cartesian", "global-origin", &frame); + "global-cartesian", "global-balance-error", &frame); } RequireCompoundDataset(file.Get(), "/diagnostics", static_cast(diagnostic_count), diff --git a/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp b/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp index 00caafa..dd75d69 100644 --- a/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp +++ b/src/fesa/io/hdf5/nonlinear_hdf5_results_writer.cpp @@ -961,7 +961,7 @@ void WriteFrame(const hid_t file, const Domain& domain, frame.global_equilibrium.size(), "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3", "force,force,force,force*length,force*length,force*length", - "global-cartesian", "global-origin", frame); + "global-cartesian", "global-balance-error", frame); } void WriteDiagnostics(const hid_t file, diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3298c37..8803f82 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -94,6 +94,8 @@ add_executable( reference/mitc4_reference_comparison.cpp reference/mitc4_reference_comparison_test.cpp reference/mitc4_reference_cases_test.cpp + reference/nonlinear_static_reference_comparison.cpp + reference/nonlinear_static_reference_cases_test.cpp ) target_link_libraries( diff --git a/tests/integration/analysis/nonlinear_static_procedure_test.cpp b/tests/integration/analysis/nonlinear_static_procedure_test.cpp index dd13cab..b5adfa5 100644 --- a/tests/integration/analysis/nonlinear_static_procedure_test.cpp +++ b/tests/integration/analysis/nonlinear_static_procedure_test.cpp @@ -3,14 +3,21 @@ #include #include +#include +#include #include #include +#include +#include #include #include #include #include #include +#include "fesa/elements/finite_rotation.h" +#include "fesa/math/vector3.h" + namespace { class TempDirectory { @@ -83,6 +90,53 @@ All, 1, 6 )inp"; } +std::string NonzeroPrescribedNonlinearShellDeck() { + return R"inp(*Part, name=ShellPart +*Node +1, 0., 0., 0. +2, 1., 0., 0. +3, 1., 1., 0. +4, 0., 1., 0. +*Element, type=S4 +1, 1, 2, 3, 4 +*Elset, elset=ShellSet +1 +*Shell Section, elset=ShellSet, material=Steel +0.1 +*End Part +*Assembly, name=Assembly +*Instance, name=Shell-1, part=ShellPart +*End Instance +*Nset, nset=N1, instance=Shell-1 +1 +*Nset, nset=N2, instance=Shell-1 +2 +*Nset, nset=N3, instance=Shell-1 +3 +*Nset, nset=N4, instance=Shell-1 +4 +*End Assembly +*Material, name=Steel +*Elastic +1000., 0.25 +*Boundary +N1, 1, 6 +N2, 1, 1, 0.2 +N2, 2, 3 +N2, 4, 4, 0.3 +N2, 5, 6 +N3, 1, 6 +N4, 1, 6 +*Step, name=Step-1, nlgeom=YES +*Static +0.1, 1., 0.001, 0.1 +*Cload +N2, 3, -3. +N2, 4, 2. +*End Step +)inp"; +} + class Hdf5File { public: explicit Hdf5File(const std::filesystem::path& path) @@ -129,6 +183,112 @@ std::string ReadStringAttribute(const hid_t object, const char* name) { return result; } +std::vector ReadNodalDataset(const Hdf5File& file, + const std::string& path) { + const hid_t dataset = H5Dopen2(file.Get(), path.c_str(), H5P_DEFAULT); + if (dataset < 0) { + throw std::runtime_error{"Unable to open nonlinear nodal dataset."}; + } + std::vector values(24U); + const herr_t read = H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()); + (void)H5Dclose(dataset); + if (read < 0 || !std::all_of(values.begin(), values.end(), + [](const double value) { + return std::isfinite(value); + })) { + throw std::runtime_error{"Unable to read nonlinear nodal dataset."}; + } + return values; +} + +std::vector ReadConstraintMask(const Hdf5File& file) { + const hid_t dataset = + H5Dopen2(file.Get(), "/model/nodal_constraint_mask", H5P_DEFAULT); + if (dataset < 0) { + throw std::runtime_error{"Unable to open nonlinear constraint mask."}; + } + std::vector values(24U); + const herr_t read = H5Dread(dataset, H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()); + (void)H5Dclose(dataset); + if (read < 0 || !std::all_of(values.begin(), values.end(), + [](const std::uint8_t value) { + return value <= 1U; + })) { + throw std::runtime_error{"Unable to read nonlinear constraint mask."}; + } + return values; +} + +fesa::Vector3 SpatialMoment(const fesa::Vector3& phi, + const fesa::Vector3& generalized) { + const fesa::Matrix transform = fesa::InverseTransposeLeftJacobianSO3(phi); + return {transform(0U, 0U) * generalized.X() + + transform(0U, 1U) * generalized.Y() + + transform(0U, 2U) * generalized.Z(), + transform(1U, 0U) * generalized.X() + + transform(1U, 1U) * generalized.Y() + + transform(1U, 2U) * generalized.Z(), + transform(2U, 0U) * generalized.X() + + transform(2U, 1U) * generalized.Y() + + transform(2U, 2U) * generalized.Z()}; +} + +std::array ReconstructGlobalBalance(const Hdf5File& file) { + const std::string root = "/steps/Step-1/frames/9/nodal/"; + const auto displacement = ReadNodalDataset(file, root + "displacement"); + const auto external = + ReadNodalDataset(file, root + "generalized_external_force"); + const auto residual = + ReadNodalDataset(file, root + "generalized_residual"); + const auto mask = ReadConstraintMask(file); + const std::array initial_positions{ + fesa::Vector3{0.0, 0.0, 0.0}, fesa::Vector3{1.0, 0.0, 0.0}, + fesa::Vector3{1.0, 1.0, 0.0}, fesa::Vector3{0.0, 1.0, 0.0}}; + fesa::Vector3 applied_force_resultant; + fesa::Vector3 applied_moment_resultant; + fesa::Vector3 reaction_force_resultant; + fesa::Vector3 reaction_moment_resultant; + for (std::size_t node = 0U; node < initial_positions.size(); ++node) { + const std::size_t offset = node * 6U; + const fesa::Vector3 current_position = + initial_positions[node] + + fesa::Vector3{displacement[offset], displacement[offset + 1U], + displacement[offset + 2U]}; + const fesa::Vector3 applied_force{external[offset], external[offset + 1U], + external[offset + 2U]}; + const fesa::Vector3 reaction_force{ + mask[offset] == 1U ? residual[offset] : 0.0, + mask[offset + 1U] == 1U ? residual[offset + 1U] : 0.0, + mask[offset + 2U] == 1U ? residual[offset + 2U] : 0.0}; + const fesa::Vector3 phi{displacement[offset + 3U], + displacement[offset + 4U], + displacement[offset + 5U]}; + const fesa::Vector3 applied_moment = SpatialMoment( + phi, {external[offset + 3U], external[offset + 4U], + external[offset + 5U]}); + const fesa::Vector3 reaction_moment = SpatialMoment( + phi, {mask[offset + 3U] == 1U ? residual[offset + 3U] : 0.0, + mask[offset + 4U] == 1U ? residual[offset + 4U] : 0.0, + mask[offset + 5U] == 1U ? residual[offset + 5U] : 0.0}); + applied_force_resultant = applied_force_resultant + applied_force; + applied_moment_resultant = + applied_moment_resultant + current_position.Cross(applied_force) + + applied_moment; + reaction_force_resultant = reaction_force_resultant + reaction_force; + reaction_moment_resultant = + reaction_moment_resultant + current_position.Cross(reaction_force) + + reaction_moment; + } + const fesa::Vector3 force_balance = + applied_force_resultant + reaction_force_resultant; + const fesa::Vector3 moment_balance = + applied_moment_resultant + reaction_moment_resultant; + return {force_balance.X(), force_balance.Y(), force_balance.Z(), + moment_balance.X(), moment_balance.Y(), moment_balance.Z()}; +} + // NSNR-PROC-004, NSNR-PROC-007, and NSNR-PROC-010. TEST(NonlinearStaticProcedure, AllConstrainedNlgeomRunWritesSchemaV1AfterAcceptedFrames) { @@ -154,4 +314,33 @@ TEST(NonlinearStaticProcedure, 0); } +// NSNR-PROC-019. +TEST(NonlinearStaticProcedure, + NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance) { + TempDirectory directory{"current-arm-balance"}; + const auto input = directory.Path() / "shellnl-current-arm.inp"; + const auto output = directory.Path() / "shellnl-current-arm_results.h5"; + WriteText(input, NonzeroPrescribedNonlinearShellDeck()); + + testing::internal::CaptureStderr(); + const int exit_code = fesa::FesaApplication{}.Run({input.string()}); + const std::string standard_error = testing::internal::GetCapturedStderr(); + + ASSERT_EQ(exit_code, 0) << standard_error; + const Hdf5File file{output}; + const hid_t dataset = H5Dopen2( + file.Get(), "/steps/Step-1/frames/9/global/equilibrium", H5P_DEFAULT); + ASSERT_GE(dataset, 0); + std::array actual{}; + ASSERT_GE(H5Dread(dataset, H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, actual.data()), + 0); + (void)H5Dclose(dataset); + const auto expected = ReconstructGlobalBalance(file); + for (std::size_t component = 0U; component < actual.size(); ++component) { + EXPECT_NEAR(actual[component], expected[component], 1.0e-10) + << "component=" << component; + } +} + } // namespace diff --git a/tests/reference/nonlinear_static_reference_cases_test.cpp b/tests/reference/nonlinear_static_reference_cases_test.cpp new file mode 100644 index 0000000..6140549 --- /dev/null +++ b/tests/reference/nonlinear_static_reference_cases_test.cpp @@ -0,0 +1,401 @@ +#include "nonlinear_static_reference_comparison.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef FESA_TEST_SOURCE_DIR +#error FESA_TEST_SOURCE_DIR must identify the repository root. +#endif + +#ifndef FESA_TEST_BINARY_DIR +#error FESA_TEST_BINARY_DIR must identify the CMake binary root. +#endif + +namespace { + +std::string ReadBytes(const std::filesystem::path& path) { + std::ifstream stream{path, std::ios::binary}; + if (!stream) { + throw std::runtime_error{"Unable to read reference artifact."}; + } + return {std::istreambuf_iterator{stream}, + std::istreambuf_iterator{}}; +} + +fesa::test::NonlinearReferenceCase MakeCase(const std::string& case_id) { + const std::filesystem::path root{FESA_TEST_SOURCE_DIR}; + const bool fine = case_id == "shellnl-meshfine-s4-final"; + const bool nonlinear = case_id == "shellnl-s4-final" || fine; + const std::filesystem::path directory = + root / "reference" / (fine ? "shellNL-meshfine" + : (nonlinear ? "shellNL" : "shell")); + const std::string stem = fine ? "shellNL-meshfine" + : (nonlinear ? "shellNL" : "shell"); + return {case_id, + directory / (stem + ".inp"), + directory / (stem + " displacements.csv"), + directory / (stem + " reactions.csv"), + directory / (stem + " stresses.csv"), + std::filesystem::path{FESA_TEST_BINARY_DIR} / "reference" / + "nonlinear-static-reference" / stem}; +} + +void ExpectSnapshotsEqual( + const std::vector& expected, + const std::vector& actual) { + ASSERT_EQ(actual.size(), expected.size()); + for (std::size_t index = 0U; index < expected.size(); ++index) { + EXPECT_EQ(actual[index].path, expected[index].path); + EXPECT_EQ(actual[index].sha256, expected[index].sha256); + EXPECT_EQ(actual[index].byte_size, expected[index].byte_size); + EXPECT_EQ(actual[index].last_write_time, expected[index].last_write_time); + } +} + +const fesa::test::NonlinearReferenceFamilyReport* FindFamily( + const fesa::test::NonlinearReferenceComparisonReport& report, + const std::string& identity) { + const auto found = std::find_if( + report.families.begin(), report.families.end(), + [&identity](const fesa::test::NonlinearReferenceFamilyReport& family) { + return family.family_identity == identity; + }); + return found == report.families.end() ? nullptr : &*found; +} + +void ExpectFamily(const fesa::test::NonlinearReferenceComparisonReport& report, + const std::string& identity, const std::size_t row_count, + const fesa::test::NonlinearReferenceDisposition disposition) { + const auto* family = FindFamily(report, identity); + ASSERT_NE(family, nullptr) << identity; + EXPECT_EQ(family->row_count, row_count); + EXPECT_EQ(family->disposition, disposition); +} + +void ExpectBlockingFamiliesPassed( + const fesa::test::NonlinearReferenceComparisonReport& report) { + for (const auto& family : report.families) { + if (family.disposition != + fesa::test::NonlinearReferenceDisposition::kBlocking) { + continue; + } + EXPECT_TRUE(family.tolerance.passed) + << family.family_identity << " rows=" << family.row_count + << " scale=" << family.tolerance.reference_scale + << " max_abs=" << family.tolerance.maximum_absolute_error + << " rms=" << family.tolerance.relative_rms + << " diagnostic=" << family.tolerance.diagnostic_code; + } +} + +void ExpectInternalFamiliesPassed( + const fesa::test::NonlinearReferenceComparisonReport& report) { + for (const auto& family : report.internal_equilibrium) { + EXPECT_TRUE(family.passed) + << family.family_identity << " rows=" << family.row_count + << " numerator=" << family.numerator << " scale=" << family.scale + << " metric=" + << (family.normalized_metric.has_value() + ? *family.normalized_metric + : -1.0) + << " diagnostic=" << family.diagnostic_code; + } +} + +} // namespace + +// NSNR-REF-001 and NSNR-REF-018. +TEST(NonlinearStaticReference, AuditsEveryDeclaredArtifactBeforeExecution) { + const auto nonlinear = MakeCase("shellnl-s4-final"); + const auto linear = MakeCase("shell-s4-linear-limit"); + + const auto nonlinear_artifacts = fesa::test::ArtifactCheck(nonlinear); + ASSERT_TRUE(nonlinear_artifacts.HasValue()); + ASSERT_EQ(nonlinear_artifacts.Value().size(), 4U); + EXPECT_EQ(nonlinear_artifacts.Value()[0U].sha256, + "4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"); + EXPECT_EQ(nonlinear_artifacts.Value()[3U].sha256, + "5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"); + + const auto linear_artifacts = fesa::test::ArtifactCheck(linear); + ASSERT_TRUE(linear_artifacts.HasValue()); + ASSERT_EQ(linear_artifacts.Value().size(), 4U); + EXPECT_EQ(linear_artifacts.Value()[0U].sha256, + "4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"); + EXPECT_EQ(linear_artifacts.Value()[3U].sha256, + "2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"); +} + +// NSNR-REF-002 through NSNR-REF-018. +TEST(NonlinearStaticReference, + CopiesRunsComparesAndPreservesTheReadOnlyReferenceInventory) { + for (const std::string case_id : + {"shellnl-s4-final", "shell-s4-linear-limit"}) { + const auto reference_case = MakeCase(case_id); + const auto before = fesa::test::ArtifactCheck(reference_case); + ASSERT_TRUE(before.HasValue()); + + const auto copied = + fesa::test::CopyInputToExecutionDirectory(reference_case); + ASSERT_TRUE(copied.HasValue()); + EXPECT_NE(copied.Value().parent_path(), + reference_case.original_input_path.parent_path()); + EXPECT_EQ(ReadBytes(copied.Value()), + ReadBytes(reference_case.original_input_path)); + + const auto generated = fesa::test::RunFesaApplicationOnCopiedInput( + reference_case, copied.Value()); + ASSERT_TRUE(generated.HasValue()); + EXPECT_EQ(generated.Value().copied_input_path, copied.Value()); + EXPECT_TRUE(std::filesystem::is_regular_file( + generated.Value().generated_results_hdf5)); + EXPECT_TRUE(std::filesystem::is_regular_file( + generated.Value().generated_log_path)); + EXPECT_EQ(generated.Value().generated_results_hdf5.filename(), + case_id == "shellnl-s4-final" ? "shellNL_results.h5" + : "shell_results.h5"); + EXPECT_EQ(generated.Value().generated_log_path.filename(), + case_id == "shellnl-s4-final" ? "shellNL_log.txt" + : "shell_log.txt"); + + const auto comparison = fesa::test::CompareHdf5ToReferenceCsv( + reference_case, generated.Value().generated_results_hdf5); + ASSERT_TRUE(comparison.HasValue()); + ExpectBlockingFamiliesPassed(comparison.Value()); + if (case_id == "shellnl-s4-final") { + ExpectInternalFamiliesPassed(comparison.Value()); + } + EXPECT_TRUE(comparison.Value().blocking_passed); + EXPECT_EQ(comparison.Value().copied_input_path, copied.Value()); + EXPECT_EQ(comparison.Value().generated_log_path, + generated.Value().generated_log_path); + + ExpectFamily(comparison.Value(), + case_id == "shellnl-s4-final" ? "coarse.translation" + : "linear.translation", + 147U, fesa::test::NonlinearReferenceDisposition::kBlocking); + ExpectFamily(comparison.Value(), + case_id == "shellnl-s4-final" ? "coarse.rotation" + : "linear.rotation", + 147U, + fesa::test::NonlinearReferenceDisposition::kWarningOnly); + if (case_id == "shellnl-s4-final") { + ExpectFamily(comparison.Value(), "coarse.local_reaction_inplane_force", + 48U, fesa::test::NonlinearReferenceDisposition::kReviewOnly); + ExpectFamily(comparison.Value(), "coarse.local_reaction_transverse_force", + 24U, fesa::test::NonlinearReferenceDisposition::kReviewOnly); + ExpectFamily(comparison.Value(), "coarse.local_reaction_physical_moment", + 48U, fesa::test::NonlinearReferenceDisposition::kReviewOnly); + EXPECT_EQ(FindFamily(comparison.Value(), "RM3"), nullptr); + } + + const auto after = fesa::test::ArtifactCheck(reference_case); + ASSERT_TRUE(after.HasValue()); + ExpectSnapshotsEqual(before.Value(), after.Value()); + } +} + +// NSNR-REF-009 and NSNR-REF-017. +TEST(NonlinearStaticReference, + RejectsInvalidHdf5BeforeToleranceAndKeepsWarningOnlyClassification) { + const auto reference_case = MakeCase("shellnl-s4-final"); + const auto copied = fesa::test::CopyInputToExecutionDirectory(reference_case); + ASSERT_TRUE(copied.HasValue()); + const auto generated = fesa::test::RunFesaApplicationOnCopiedInput( + reference_case, copied.Value()); + ASSERT_TRUE(generated.HasValue()); + + const auto invalid_hdf5 = copied.Value().parent_path() / "invalid.h5"; + std::ofstream stream{invalid_hdf5, std::ios::binary | std::ios::trunc}; + stream << "not an HDF5 file"; + stream.close(); + EXPECT_FALSE(fesa::test::CompareHdf5ToReferenceCsv(reference_case, + invalid_hdf5) + .HasValue()); + + fesa::test::NonlinearReferenceComparisonReport report{}; + report.blocking_passed = true; + report.families.push_back( + {"nonlinear.rotation", + {"UR1", "UR2", "UR3"}, + fesa::test::NonlinearReferenceDisposition::kWarningOnly, + 147U, + {"nonlinear.rotation", {"UR1", "UR2", "UR3"}, false, 1.0, 0.01, + 0U, 0.02, 0.02, 0U, false, false, "relative-rms-exceeded", {}, 147U}}); + EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), + fesa::test::NonlinearReferenceClassification::kWarningOnlyDifferences); +} + +// NSNR-REF-020. +TEST(NonlinearStaticReference, AuditsFinePrimaryAndCoarseCompanionArtifacts) { + const std::array case_ids{ + "shellnl-meshfine-s4-final", "shellnl-s4-final", + "shell-s4-linear-limit"}; + for (const auto& case_id : case_ids) { + const auto reference_case = MakeCase(case_id); + const auto before = fesa::test::ArtifactCheck(reference_case); + ASSERT_TRUE(before.HasValue()) << case_id; + ASSERT_EQ(before.Value().size(), 4U) << case_id; + + const auto copied = + fesa::test::CopyInputToExecutionDirectory(reference_case); + ASSERT_TRUE(copied.HasValue()) << case_id; + EXPECT_NE(copied.Value().parent_path(), + reference_case.original_input_path.parent_path()); + const auto generated = fesa::test::RunFesaApplicationOnCopiedInput( + reference_case, copied.Value()); + ASSERT_TRUE(generated.HasValue()) << case_id; + EXPECT_TRUE(std::filesystem::is_regular_file( + generated.Value().generated_results_hdf5)); + + const auto after = fesa::test::ArtifactCheck(reference_case); + ASSERT_TRUE(after.HasValue()) << case_id; + ExpectSnapshotsEqual(before.Value(), after.Value()); + } +} + +// NSNR-REF-021. +TEST(NonlinearStaticReference, + ReviewOnlyLocalReactionsCannotChangeBlockingVerdict) { + const auto reference_case = MakeCase("shellnl-s4-final"); + const auto copied = fesa::test::CopyInputToExecutionDirectory(reference_case); + ASSERT_TRUE(copied.HasValue()); + const auto generated = fesa::test::RunFesaApplicationOnCopiedInput( + reference_case, copied.Value()); + ASSERT_TRUE(generated.HasValue()); + const auto comparison = fesa::test::CompareHdf5ToReferenceCsv( + reference_case, generated.Value().generated_results_hdf5); + ASSERT_TRUE(comparison.HasValue()); + + ExpectFamily(comparison.Value(), "coarse.local_reaction_inplane_force", 48U, + fesa::test::NonlinearReferenceDisposition::kReviewOnly); + ExpectFamily(comparison.Value(), "coarse.local_reaction_transverse_force", + 24U, fesa::test::NonlinearReferenceDisposition::kReviewOnly); + ExpectFamily(comparison.Value(), "coarse.local_reaction_physical_moment", + 48U, fesa::test::NonlinearReferenceDisposition::kReviewOnly); + EXPECT_TRUE(comparison.Value().external_blocking_passed); +} + +// NSNR-REF-022. +TEST(NonlinearStaticReference, + BlocksOnGlobalBalanceAndAcceptedFreeResidual) { + for (const std::string case_id : + {"shellnl-meshfine-s4-final", "shellnl-s4-final"}) { + const auto reference_case = MakeCase(case_id); + const auto copied = + fesa::test::CopyInputToExecutionDirectory(reference_case); + ASSERT_TRUE(copied.HasValue()) << case_id; + const auto generated = fesa::test::RunFesaApplicationOnCopiedInput( + reference_case, copied.Value()); + ASSERT_TRUE(generated.HasValue()) << case_id; + const auto comparison = fesa::test::CompareHdf5ToReferenceCsv( + reference_case, generated.Value().generated_results_hdf5); + ASSERT_TRUE(comparison.HasValue()) << case_id; + + const std::string prefix = case_id == "shellnl-meshfine-s4-final" + ? "fine." + : "coarse."; + const std::array identities{ + prefix + "global_force_balance", prefix + "global_moment_balance", + prefix + "accepted_free_force_residual", + prefix + "accepted_free_moment_residual"}; + for (const auto& identity : identities) { + const auto found = std::find_if( + comparison.Value().internal_equilibrium.begin(), + comparison.Value().internal_equilibrium.end(), + [&identity](const fesa::test::NonlinearInternalEquilibriumReport& row) { + return row.family_identity == identity; + }); + ASSERT_NE(found, comparison.Value().internal_equilibrium.end()) + << identity; + EXPECT_TRUE(found->passed) + << identity << " numerator=" << found->numerator + << " scale=" << found->scale << " metric=" + << (found->normalized_metric.has_value() + ? *found->normalized_metric + : -1.0) + << " diagnostic=" << found->diagnostic_code; + } + EXPECT_TRUE(comparison.Value().internal_blocking_passed); + const std::array zero_resultant{}; + EXPECT_NE(comparison.Value().constrained_reaction_resultant.force, + zero_resultant); + } +} + +// NSNR-REF-023. +TEST(NonlinearStaticReference, + RejectsMissingExtraDuplicateAndNonfiniteRowsBeforeToleranceAndRecordsReviewOnlyFindings) { + fesa::test::NonlinearReferenceComparisonReport report{}; + report.blocking_passed = true; + report.external_blocking_passed = true; + report.internal_blocking_passed = true; + report.precheck_findings = { + {"blocking", fesa::test::NonlinearReferenceDisposition::kBlocking, + "missing-row", {}}, + {"warning", fesa::test::NonlinearReferenceDisposition::kWarningOnly, + "duplicate-row", {}}, + {"review", fesa::test::NonlinearReferenceDisposition::kReviewOnly, + "nonfinite-row", {}}}; + + EXPECT_EQ(fesa::test::ClassifyReferenceComparison(report), + fesa::test::NonlinearReferenceClassification::kFailed); + EXPECT_EQ(report.precheck_findings[1U].diagnostic_code, "duplicate-row"); + EXPECT_EQ(report.precheck_findings[2U].diagnostic_code, "nonfinite-row"); +} + +// NSNR-REF-024. +TEST(NonlinearStaticReference, + GlobalForceAndMomentBalanceUseApprovedInclusiveOneEighthGate) { + for (const std::string& identity : + {"fine.global_force_balance", "fine.global_moment_balance"}) { + const auto below = fesa::test::EvaluateGlobalBalance( + identity, 5.0e-9, 1.0, 0.0); + EXPECT_TRUE(below.passed) << identity; + ASSERT_TRUE(below.normalized_metric.has_value()) << identity; + EXPECT_EQ(*below.normalized_metric, 5.0e-9) << identity; + + const auto boundary = fesa::test::EvaluateGlobalBalance( + identity, 1.0e-8, 1.0, 0.0); + EXPECT_TRUE(boundary.passed) << identity; + ASSERT_TRUE(boundary.normalized_metric.has_value()) << identity; + EXPECT_EQ(*boundary.normalized_metric, 1.0e-8) << identity; + + const auto above = fesa::test::EvaluateGlobalBalance( + identity, std::nextafter(1.0e-8, + std::numeric_limits::infinity()), + 1.0, 0.0); + EXPECT_FALSE(above.passed) << identity; + ASSERT_TRUE(above.normalized_metric.has_value()) << identity; + EXPECT_GT(*above.normalized_metric, 1.0e-8) << identity; + } +} + +// NSNR-REF-025. +TEST(NonlinearStaticReference, + GlobalForceAndMomentExactZeroScaleRequiresExactZeroBalance) { + for (const std::string& identity : + {"coarse.global_force_balance", "coarse.global_moment_balance"}) { + const auto exact_zero = + fesa::test::EvaluateGlobalBalance(identity, 0.0, 0.0, 0.0); + EXPECT_TRUE(exact_zero.passed) << identity; + EXPECT_EQ(exact_zero.scale, 0.0) << identity; + EXPECT_FALSE(exact_zero.normalized_metric.has_value()) << identity; + + const auto nonzero = + fesa::test::EvaluateGlobalBalance(identity, 1.0e-300, 0.0, 0.0); + EXPECT_FALSE(nonzero.passed) << identity; + EXPECT_EQ(nonzero.scale, 0.0) << identity; + EXPECT_FALSE(nonzero.normalized_metric.has_value()) << identity; + } +} diff --git a/tests/reference/nonlinear_static_reference_comparison.cpp b/tests/reference/nonlinear_static_reference_comparison.cpp new file mode 100644 index 0000000..7055cf1 --- /dev/null +++ b/tests/reference/nonlinear_static_reference_comparison.cpp @@ -0,0 +1,1624 @@ +#include "nonlinear_static_reference_comparison.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/app/fesa_application.h" +#include "fesa/elements/finite_rotation.h" +#include "fesa/math/vector3.h" +#include "mitc4_reference_comparison.h" + +#ifndef FESA_TEST_SOURCE_DIR +#error FESA_TEST_SOURCE_DIR must identify the repository root. +#endif + +#ifndef FESA_TEST_BINARY_DIR +#error FESA_TEST_BINARY_DIR must identify the CMake binary root. +#endif + +namespace fesa::test { +namespace { + +constexpr std::array kDisplacementComponents{ + "U1", "U2", "U3", "UR1", "UR2", "UR3"}; +constexpr std::array kReactionComponents{ + "RF1", "RF2", "RF3", "RM1", "RM2", "RM3"}; +constexpr double kInternalGlobalBalanceRelativeTolerance = 1.0e-8; +constexpr const char* kNonlinearFrame = + "Increment 10: Step Time = 1.000"; +constexpr std::array kCoarseConstrainedNodeLabels{ + 1, 3, 4, 5, 6, 7, 8, 9, 14, 15, 16, 17, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}; + +[[noreturn]] void Fail(const std::string& code, const std::string& message); + +struct CaseContract { + std::size_t node_count; + bool nonlinear; + std::string family_prefix; +}; + +const CaseContract& ContractFor(const NonlinearReferenceCase& reference_case) { + static const CaseContract kCoarse{49U, true, "coarse."}; + static const CaseContract kFine{729U, true, "fine."}; + static const CaseContract kLinear{49U, false, "linear."}; + if (reference_case.case_id == "shellnl-s4-final") { + return kCoarse; + } + if (reference_case.case_id == "shellnl-meshfine-s4-final") { + return kFine; + } + if (reference_case.case_id == "shell-s4-linear-limit") { + return kLinear; + } + Fail("needs-reference-artifacts", "The reference case identifier is unknown."); +} + +class ComparisonFailure final : public std::runtime_error { + public: + ComparisonFailure(std::string code, std::string message) + : std::runtime_error{std::move(message)}, code_{std::move(code)} {} + + const std::string& Code() const noexcept { return code_; } + + private: + std::string code_; +}; + +[[noreturn]] void Fail(const std::string& code, const std::string& message) { + throw ComparisonFailure{code, message}; +} + +Status FailureStatus(const NonlinearReferenceCase& reference_case, + const std::string& code, const std::string& message) { + return Status::Failure(FailureCategory::kModel, + {{Severity::kError, code, {}, "", + reference_case.case_id, message}}); +} + +std::filesystem::path Normalized(const std::filesystem::path& path) { + std::error_code error; + const std::filesystem::path absolute = std::filesystem::absolute(path, error); + return (error ? path : absolute).lexically_normal(); +} + +bool IsDescendantOf(const std::filesystem::path& path, + const std::filesystem::path& parent) { + const auto normalized_path = Normalized(path); + const auto normalized_parent = Normalized(parent); + auto path_part = normalized_path.begin(); + auto parent_part = normalized_parent.begin(); + for (; parent_part != normalized_parent.end(); ++parent_part, ++path_part) { + if (path_part == normalized_path.end() || *path_part != *parent_part) { + return false; + } + } + return true; +} + +std::string GenericPath(const std::filesystem::path& path) { + return Normalized(path).generic_u8string(); +} + +std::string Trim(const std::string& value) { + const auto is_space = [](const unsigned char character) { + return character == ' ' || character == '\t' || character == '\r' || + character == '\n' || character == '\f' || character == '\v'; + }; + const auto begin = std::find_if_not( + value.begin(), value.end(), + [&is_space](const char character) { + return is_space(static_cast(character)); + }); + const auto end = std::find_if_not( + value.rbegin(), value.rend(), + [&is_space](const char character) { + return is_space(static_cast(character)); + }) + .base(); + return begin < end ? std::string{begin, end} : std::string{}; +} + +std::string UppercaseAscii(std::string value) { + std::transform(value.begin(), value.end(), value.begin(), + [](const char character) { + return character >= 'a' && character <= 'z' + ? static_cast(character - 'a' + 'A') + : character; + }); + return value; +} + +std::string ReadBytes(const std::filesystem::path& path) { + std::ifstream stream{path, std::ios::binary}; + if (!stream) { + Fail("needs-reference-artifacts", + "A declared reference artifact is missing or unreadable."); + } + return {std::istreambuf_iterator{stream}, + std::istreambuf_iterator{}}; +} + +std::uint32_t RotateRight(const std::uint32_t value, + const std::uint32_t amount) { + return (value >> amount) | (value << (32U - amount)); +} + +std::string Sha256(const std::string& input) { + constexpr std::array kRoundConstants{ + 0x428a2f98U, 0x71374491U, 0xb5c0fbcfU, 0xe9b5dba5U, 0x3956c25bU, + 0x59f111f1U, 0x923f82a4U, 0xab1c5ed5U, 0xd807aa98U, 0x12835b01U, + 0x243185beU, 0x550c7dc3U, 0x72be5d74U, 0x80deb1feU, 0x9bdc06a7U, + 0xc19bf174U, 0xe49b69c1U, 0xefbe4786U, 0x0fc19dc6U, 0x240ca1ccU, + 0x2de92c6fU, 0x4a7484aaU, 0x5cb0a9dcU, 0x76f988daU, 0x983e5152U, + 0xa831c66dU, 0xb00327c8U, 0xbf597fc7U, 0xc6e00bf3U, 0xd5a79147U, + 0x06ca6351U, 0x14292967U, 0x27b70a85U, 0x2e1b2138U, 0x4d2c6dfcU, + 0x53380d13U, 0x650a7354U, 0x766a0abbU, 0x81c2c92eU, 0x92722c85U, + 0xa2bfe8a1U, 0xa81a664bU, 0xc24b8b70U, 0xc76c51a3U, 0xd192e819U, + 0xd6990624U, 0xf40e3585U, 0x106aa070U, 0x19a4c116U, 0x1e376c08U, + 0x2748774cU, 0x34b0bcb5U, 0x391c0cb3U, 0x4ed8aa4aU, 0x5b9cca4fU, + 0x682e6ff3U, 0x748f82eeU, 0x78a5636fU, 0x84c87814U, 0x8cc70208U, + 0x90befffaU, 0xa4506cebU, 0xbef9a3f7U, 0xc67178f2U}; + std::vector bytes; + bytes.reserve(input.size() + 72U); + for (const unsigned char byte : input) { + bytes.push_back(byte); + } + const std::uint64_t bit_length = + static_cast(bytes.size()) * 8U; + bytes.push_back(0x80U); + while ((bytes.size() % 64U) != 56U) { + bytes.push_back(0U); + } + for (int shift = 56; shift >= 0; shift -= 8) { + bytes.push_back(static_cast(bit_length >> shift)); + } + + std::array state{0x6a09e667U, 0xbb67ae85U, 0x3c6ef372U, + 0xa54ff53aU, 0x510e527fU, 0x9b05688cU, + 0x1f83d9abU, 0x5be0cd19U}; + for (std::size_t offset = 0U; offset < bytes.size(); offset += 64U) { + std::array words{}; + for (std::size_t index = 0U; index < 16U; ++index) { + const std::size_t byte = offset + index * 4U; + words[index] = (static_cast(bytes[byte]) << 24U) | + (static_cast(bytes[byte + 1U]) << 16U) | + (static_cast(bytes[byte + 2U]) << 8U) | + static_cast(bytes[byte + 3U]); + } + for (std::size_t index = 16U; index < words.size(); ++index) { + const std::uint32_t sigma0 = RotateRight(words[index - 15U], 7U) ^ + RotateRight(words[index - 15U], 18U) ^ + (words[index - 15U] >> 3U); + const std::uint32_t sigma1 = RotateRight(words[index - 2U], 17U) ^ + RotateRight(words[index - 2U], 19U) ^ + (words[index - 2U] >> 10U); + words[index] = words[index - 16U] + sigma0 + words[index - 7U] + + sigma1; + } + std::uint32_t a = state[0U]; + std::uint32_t b = state[1U]; + std::uint32_t c = state[2U]; + std::uint32_t d = state[3U]; + std::uint32_t e = state[4U]; + std::uint32_t f = state[5U]; + std::uint32_t g = state[6U]; + std::uint32_t h = state[7U]; + for (std::size_t index = 0U; index < words.size(); ++index) { + const std::uint32_t sigma1 = RotateRight(e, 6U) ^ RotateRight(e, 11U) ^ + RotateRight(e, 25U); + const std::uint32_t choose = (e & f) ^ (~e & g); + const std::uint32_t temporary1 = + h + sigma1 + choose + kRoundConstants[index] + words[index]; + const std::uint32_t sigma0 = RotateRight(a, 2U) ^ RotateRight(a, 13U) ^ + RotateRight(a, 22U); + const std::uint32_t majority = (a & b) ^ (a & c) ^ (b & c); + const std::uint32_t temporary2 = sigma0 + majority; + h = g; + g = f; + f = e; + e = d + temporary1; + d = c; + c = b; + b = a; + a = temporary1 + temporary2; + } + state[0U] += a; + state[1U] += b; + state[2U] += c; + state[3U] += d; + state[4U] += e; + state[5U] += f; + state[6U] += g; + state[7U] += h; + } + std::ostringstream result; + result << std::uppercase << std::hex << std::setfill('0'); + for (const std::uint32_t word : state) { + result << std::setw(8) << word; + } + return result.str(); +} + +std::string Fnv1a64(const std::string& input) { + std::uint64_t hash = 14695981039346656037ULL; + for (const unsigned char byte : input) { + hash ^= static_cast(byte); + hash *= 1099511628211ULL; + } + std::ostringstream result; + result << "fnv1a64:" << std::hex << std::setfill('0') << std::setw(16) + << hash; + return result.str(); +} + +struct DeclaredArtifact { + std::filesystem::path path; + const char* sha256; +}; + +std::vector DeclaredArtifacts( + const NonlinearReferenceCase& reference_case) { + const std::filesystem::path root{FESA_TEST_SOURCE_DIR}; + if (reference_case.case_id == "shellnl-meshfine-s4-final") { + const auto directory = root / "reference" / "shellNL-meshfine"; + const std::vector artifacts{ + {directory / "shellNL-meshfine.inp", + "40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220"}, + {directory / "shellNL-meshfine displacements.csv", + "740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F"}, + {directory / "shellNL-meshfine reactions.csv", + "AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363"}, + {directory / "shellNL-meshfine stresses.csv", + "6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782"}}; + if (Normalized(reference_case.original_input_path) != + Normalized(artifacts[0U].path) || + Normalized(reference_case.displacement_csv_path) != + Normalized(artifacts[1U].path) || + Normalized(reference_case.reaction_csv_path) != + Normalized(artifacts[2U].path) || + Normalized(reference_case.stress_inventory_path) != + Normalized(artifacts[3U].path)) { + Fail("needs-reference-artifacts", + "The fine nonlinear reference case does not use declared paths."); + } + return artifacts; + } + if (reference_case.case_id == "shellnl-s4-final") { + const auto directory = root / "reference" / "shellNL"; + const std::vector artifacts{ + {directory / "shellNL.inp", + "4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2"}, + {directory / "shellNL displacements.csv", + "4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786"}, + {directory / "shellNL reactions.csv", + "001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069"}, + {directory / "shellNL stresses.csv", + "5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F"}}; + if (Normalized(reference_case.original_input_path) != + Normalized(artifacts[0U].path) || + Normalized(reference_case.displacement_csv_path) != + Normalized(artifacts[1U].path) || + Normalized(reference_case.reaction_csv_path) != + Normalized(artifacts[2U].path) || + Normalized(reference_case.stress_inventory_path) != + Normalized(artifacts[3U].path)) { + Fail("needs-reference-artifacts", + "The nonlinear reference case does not use its declared paths."); + } + return artifacts; + } + if (reference_case.case_id == "shell-s4-linear-limit") { + const auto directory = root / "reference" / "shell"; + const std::vector artifacts{ + {directory / "shell.inp", + "4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF"}, + {directory / "shell displacements.csv", + "C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B"}, + {directory / "shell reactions.csv", + "0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41"}, + {directory / "shell stresses.csv", + "2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7"}}; + if (Normalized(reference_case.original_input_path) != + Normalized(artifacts[0U].path) || + Normalized(reference_case.displacement_csv_path) != + Normalized(artifacts[1U].path) || + Normalized(reference_case.reaction_csv_path) != + Normalized(artifacts[2U].path) || + Normalized(reference_case.stress_inventory_path) != + Normalized(artifacts[3U].path)) { + Fail("needs-reference-artifacts", + "The linear control case does not use its declared paths."); + } + return artifacts; + } + Fail("needs-reference-artifacts", "The reference case identifier is unknown."); +} + +ArtifactSnapshot Snapshot(const DeclaredArtifact& artifact) { + std::error_code error; + if (!std::filesystem::is_regular_file(artifact.path, error) || error) { + Fail("needs-reference-artifacts", + "A declared reference artifact is missing or unreadable."); + } + const std::string bytes = ReadBytes(artifact.path); + const std::string hash = Sha256(bytes); + if (hash != artifact.sha256) { + Fail("reference-artifact-hash-mismatch", + "A declared reference artifact does not match its approved hash."); + } + const std::uintmax_t size = std::filesystem::file_size(artifact.path, error); + if (error) { + Fail("needs-reference-artifacts", + "A declared reference artifact size cannot be read."); + } + const auto write_time = std::filesystem::last_write_time(artifact.path, error); + if (error) { + Fail("needs-reference-artifacts", + "A declared reference artifact timestamp cannot be read."); + } + return {Normalized(artifact.path), hash, size, write_time}; +} + +std::vector SplitCsv(const std::string& line) { + std::vector fields; + std::string field; + bool quoted = false; + for (std::size_t index = 0U; index < line.size(); ++index) { + const char character = line[index]; + if (character == '"') { + if (quoted && index + 1U < line.size() && line[index + 1U] == '"') { + field.push_back(character); + ++index; + } else { + quoted = !quoted; + } + } else if (character == ',' && !quoted) { + fields.push_back(Trim(field)); + field.clear(); + } else { + field.push_back(character); + } + } + if (quoted) { + Fail("schema-mismatch", "A reference CSV row has an unclosed quote."); + } + fields.push_back(Trim(field)); + return fields; +} + +std::int64_t ParsePositiveLabel(const std::string& field) { + std::int64_t value = 0; + const char* const begin = field.data(); + const char* const end = begin + field.size(); + const auto parsed = std::from_chars(begin, end, value); + if (parsed.ec != std::errc{} || parsed.ptr != end || value <= 0) { + Fail("schema-mismatch", "A reference CSV node label is invalid."); + } + return value; +} + +double ParseFiniteDouble(const std::string& field) { + char* end = nullptr; + const double value = std::strtod(field.c_str(), &end); + if (field.empty() || end == field.c_str() || end == nullptr || + *end != '\0' || !std::isfinite(value)) { + Fail("schema-mismatch", "A reference CSV value is nonfinite or invalid."); + } + return value; +} + +struct CsvWideRow { + std::string instance_name; + std::int64_t source_node_label; + std::array values; +}; + +std::vector ReadCsvWideRows( + const std::filesystem::path& path, const bool requires_frame, + const std::array& components, + const std::size_t expected_node_count) { + std::ifstream stream{path, std::ios::binary}; + if (!stream) { + Fail("needs-reference-artifacts", + "A declared comparison CSV is missing or unreadable."); + } + std::string line; + if (!std::getline(stream, line)) { + Fail("schema-mismatch", "A declared comparison CSV is empty."); + } + if (!line.empty() && line.back() == '\r') { + line.pop_back(); + } + std::vector expected_header; + if (requires_frame) { + expected_header.push_back("Frame"); + } + expected_header.push_back("Part Instance Name"); + expected_header.push_back("Node Label"); + for (const char* component : components) { + expected_header.push_back(std::string{components == kDisplacementComponents + ? (std::string{"U-"} + component) + : (std::string{"RF-"} + component)}); + } + if (components == kDisplacementComponents) { + expected_header[requires_frame ? 3U : 2U] = "U-U1"; + expected_header[requires_frame ? 4U : 3U] = "U-U2"; + expected_header[requires_frame ? 5U : 4U] = "U-U3"; + expected_header[requires_frame ? 6U : 5U] = "UR-UR1"; + expected_header[requires_frame ? 7U : 6U] = "UR-UR2"; + expected_header[requires_frame ? 8U : 7U] = "UR-UR3"; + } else { + expected_header[requires_frame ? 3U : 2U] = "RF-RF1"; + expected_header[requires_frame ? 4U : 3U] = "RF-RF2"; + expected_header[requires_frame ? 5U : 4U] = "RF-RF3"; + expected_header[requires_frame ? 6U : 5U] = "RM-RM1"; + expected_header[requires_frame ? 7U : 6U] = "RM-RM2"; + expected_header[requires_frame ? 8U : 7U] = "RM-RM3"; + } + if (SplitCsv(line) != expected_header) { + Fail("schema-mismatch", "A comparison CSV header is out of contract."); + } + + std::vector rows; + std::map, std::size_t> identities; + while (std::getline(stream, line)) { + if (!line.empty() && line.back() == '\r') { + line.pop_back(); + } + if (line.empty()) { + Fail("schema-mismatch", "A comparison CSV has a blank row."); + } + const auto fields = SplitCsv(line); + if (fields.size() != expected_header.size()) { + Fail("schema-mismatch", "A comparison CSV row has the wrong width."); + } + const std::size_t shift = requires_frame ? 1U : 0U; + if (requires_frame && fields[0U] != kNonlinearFrame) { + Fail("schema-mismatch", "A nonlinear CSV row has the wrong Frame value."); + } + if (fields[shift].empty()) { + Fail("schema-mismatch", "A comparison CSV instance is empty."); + } + CsvWideRow row{fields[shift], ParsePositiveLabel(fields[shift + 1U]), {}}; + for (std::size_t component = 0U; component < row.values.size(); + ++component) { + row.values[component] = ParseFiniteDouble(fields[shift + 2U + component]); + } + const auto identity = + std::make_pair(UppercaseAscii(row.instance_name), row.source_node_label); + if (!identities.emplace(identity, rows.size()).second) { + Fail("schema-mismatch", "A comparison CSV wide-row identity is duplicated."); + } + rows.push_back(std::move(row)); + } + if (rows.size() != expected_node_count) { + Fail("schema-mismatch", "A comparison CSV node inventory is out of contract."); + } + return rows; +} + +class Hdf5Handle { + public: + using Closer = herr_t (*)(hid_t); + + Hdf5Handle() = default; + Hdf5Handle(const hid_t value, Closer closer) : value_{value}, closer_{closer} {} + Hdf5Handle(const Hdf5Handle&) = delete; + Hdf5Handle& operator=(const Hdf5Handle&) = delete; + Hdf5Handle(Hdf5Handle&& other) noexcept + : value_{other.value_}, closer_{other.closer_} { + other.value_ = -1; + other.closer_ = nullptr; + } + ~Hdf5Handle() { + if (value_ >= 0 && closer_ != nullptr) { + (void)closer_(value_); + } + } + + hid_t Get() const noexcept { return value_; } + + private: + hid_t value_{-1}; + Closer closer_{nullptr}; +}; + +class Hdf5ErrorSilencer { + public: + Hdf5ErrorSilencer() { + if (H5Eget_auto2(H5E_DEFAULT, &callback_, &client_data_) >= 0 && + H5Eset_auto2(H5E_DEFAULT, nullptr, nullptr) >= 0) { + active_ = true; + } + } + ~Hdf5ErrorSilencer() { + if (active_) { + (void)H5Eset_auto2(H5E_DEFAULT, callback_, client_data_); + } + } + + private: + H5E_auto2_t callback_{nullptr}; + void* client_data_{nullptr}; + bool active_{false}; +}; + +class Hdf5VlenReclaimer { + public: + Hdf5VlenReclaimer(const hid_t memory_type, const hid_t data_space, + void* const data) + : memory_type_{memory_type}, data_space_{data_space}, data_{data} {} + ~Hdf5VlenReclaimer() { + if (active_) { + (void)H5Dvlen_reclaim(memory_type_, data_space_, H5P_DEFAULT, data_); + } + } + + void Reclaim() { + active_ = false; + if (H5Dvlen_reclaim(memory_type_, data_space_, H5P_DEFAULT, data_) < 0) { + Fail("schema-mismatch", "HDF5 variable-length strings cannot be freed."); + } + } + + private: + hid_t memory_type_; + hid_t data_space_; + void* data_; + bool active_{true}; +}; + +hid_t RequireId(const hid_t value, const char* message) { + if (value < 0) { + Fail("schema-mismatch", message); + } + return value; +} + +void RequireHdf(const herr_t value, const char* message) { + if (value < 0) { + Fail("schema-mismatch", message); + } +} + +Hdf5Handle OpenDataset(const hid_t file, const std::string& path) { + return {RequireId(H5Dopen2(file, path.c_str(), H5P_DEFAULT), + "A required HDF5 dataset is missing."), + H5Dclose}; +} + +std::vector Dimensions(const hid_t dataset) { + Hdf5Handle space{RequireId(H5Dget_space(dataset), + "HDF5 dimensions cannot be inspected."), + H5Sclose}; + const int rank = H5Sget_simple_extent_ndims(space.Get()); + if (rank < 0) { + Fail("schema-mismatch", "HDF5 rank cannot be inspected."); + } + std::vector dimensions(static_cast(rank)); + if (rank > 0) { + RequireHdf(H5Sget_simple_extent_dims(space.Get(), dimensions.data(), nullptr), + "HDF5 extents cannot be inspected."); + } + return dimensions; +} + +Hdf5Handle MakeUtf8StringType() { + Hdf5Handle type{RequireId(H5Tcopy(H5T_C_S1), + "An HDF5 string type cannot be created."), + H5Tclose}; + RequireHdf(H5Tset_size(type.Get(), H5T_VARIABLE), + "An HDF5 variable string type cannot be configured."); + RequireHdf(H5Tset_cset(type.Get(), H5T_CSET_UTF8), + "An HDF5 UTF-8 string type cannot be configured."); + return type; +} + +std::string ReadStringAttribute(const hid_t object, const char* name) { + Hdf5Handle attribute{RequireId(H5Aopen(object, name, H5P_DEFAULT), + "A required HDF5 attribute is missing."), + H5Aclose}; + Hdf5Handle type{RequireId(H5Aget_type(attribute.Get()), + "An HDF5 attribute type cannot be read."), + H5Tclose}; + if (H5Tget_class(type.Get()) != H5T_STRING || + H5Tis_variable_str(type.Get()) <= 0 || + H5Tget_cset(type.Get()) != H5T_CSET_UTF8) { + Fail("schema-mismatch", "An HDF5 string attribute is out of contract."); + } + char* raw = nullptr; + RequireHdf(H5Aread(attribute.Get(), type.Get(), &raw), + "An HDF5 string attribute cannot be read."); + if (raw == nullptr) { + Fail("schema-mismatch", "An HDF5 string attribute is null."); + } + const std::string result{raw}; + RequireHdf(H5free_memory(raw), "HDF5 attribute memory cannot be freed."); + return result; +} + +std::uint64_t ReadUint64Attribute(const hid_t object, const char* name) { + Hdf5Handle attribute{RequireId(H5Aopen(object, name, H5P_DEFAULT), + "A required HDF5 attribute is missing."), + H5Aclose}; + std::uint64_t value = 0U; + RequireHdf(H5Aread(attribute.Get(), H5T_NATIVE_UINT64, &value), + "An HDF5 integer attribute cannot be read."); + return value; +} + +void RequireStringAttribute(const hid_t object, const char* name, + const std::string& expected) { + if (ReadStringAttribute(object, name) != expected) { + Fail("schema-mismatch", "An HDF5 string attribute has the wrong value."); + } +} + +struct NodeReadRow { + std::uint64_t internal_node_id; + char* instance_name; + char* source_label; + double coordinates[3]; +}; + +struct Hdf5Node { + std::string instance_name; + std::int64_t source_node_label; + std::array coordinates; +}; + +std::vector ReadNodes(const hid_t file, + const std::size_t expected_node_count) { + auto dataset = OpenDataset(file, "/model/nodes"); + const auto shape = Dimensions(dataset.Get()); + if (shape.size() != 1U || shape[0U] != expected_node_count) { + Fail("schema-mismatch", "The HDF5 node inventory is out of contract."); + } + auto string_type = MakeUtf8StringType(); + const hsize_t coordinate_dimensions[] = {3U}; + Hdf5Handle coordinates{RequireId(H5Tarray_create2( + H5T_NATIVE_DOUBLE, 1, coordinate_dimensions), + "An HDF5 coordinate type cannot be created."), + H5Tclose}; + Hdf5Handle memory_type{RequireId(H5Tcreate(H5T_COMPOUND, sizeof(NodeReadRow)), + "An HDF5 node type cannot be created."), + H5Tclose}; + RequireHdf(H5Tinsert(memory_type.Get(), "internal_node_id", + HOFFSET(NodeReadRow, internal_node_id), + H5T_NATIVE_UINT64), + "An HDF5 node identifier cannot be read."); + RequireHdf(H5Tinsert(memory_type.Get(), "instance_name", + HOFFSET(NodeReadRow, instance_name), string_type.Get()), + "An HDF5 node instance cannot be read."); + RequireHdf(H5Tinsert(memory_type.Get(), "source_label", + HOFFSET(NodeReadRow, source_label), string_type.Get()), + "An HDF5 node label cannot be read."); + RequireHdf(H5Tinsert(memory_type.Get(), "coordinates", + HOFFSET(NodeReadRow, coordinates), coordinates.Get()), + "An HDF5 node coordinates cannot be read."); + std::vector raw(static_cast(shape[0U])); + RequireHdf(H5Dread(dataset.Get(), memory_type.Get(), H5S_ALL, H5S_ALL, + H5P_DEFAULT, raw.data()), + "HDF5 node identities cannot be read."); + Hdf5Handle space{RequireId(H5Dget_space(dataset.Get()), + "HDF5 node space cannot be read."), + H5Sclose}; + Hdf5VlenReclaimer reclaimer{memory_type.Get(), space.Get(), raw.data()}; + std::map, std::size_t> identities; + std::vector nodes; + nodes.reserve(raw.size()); + for (std::size_t index = 0U; index < raw.size(); ++index) { + if (raw[index].internal_node_id != index || raw[index].instance_name == nullptr || + raw[index].source_label == nullptr || + !std::all_of(std::begin(raw[index].coordinates), + std::end(raw[index].coordinates), + [](const double value) { return std::isfinite(value); })) { + Fail("schema-mismatch", "An HDF5 node identity is invalid."); + } + Hdf5Node node{raw[index].instance_name, + ParsePositiveLabel(raw[index].source_label), + {raw[index].coordinates[0U], raw[index].coordinates[1U], + raw[index].coordinates[2U]}}; + const auto identity = + std::make_pair(UppercaseAscii(node.instance_name), node.source_node_label); + if (!identities.emplace(identity, nodes.size()).second) { + Fail("schema-mismatch", "An HDF5 node identity is duplicated."); + } + nodes.push_back(std::move(node)); + } + reclaimer.Reclaim(); + return nodes; +} + +struct AcceptedFrameReadRow { + std::uint64_t frame_index; + std::uint64_t increment_index; + double load_factor; + std::uint64_t iteration_count; + std::uint8_t is_factor_one; +}; + +std::uint64_t ReadFactorOneFrame(const hid_t file) { + auto dataset = OpenDataset(file, "/steps/Step-1/accepted_frames"); + const auto shape = Dimensions(dataset.Get()); + if (shape.size() != 1U || shape[0U] == 0U) { + Fail("schema-mismatch", "The accepted-frame table is invalid."); + } + Hdf5Handle type{RequireId(H5Tcreate(H5T_COMPOUND, sizeof(AcceptedFrameReadRow)), + "An accepted-frame type cannot be created."), + H5Tclose}; + RequireHdf(H5Tinsert(type.Get(), "frame_index", + HOFFSET(AcceptedFrameReadRow, frame_index), + H5T_NATIVE_UINT64), + "An accepted-frame index cannot be read."); + RequireHdf(H5Tinsert(type.Get(), "increment_index", + HOFFSET(AcceptedFrameReadRow, increment_index), + H5T_NATIVE_UINT64), + "An accepted-frame increment cannot be read."); + RequireHdf(H5Tinsert(type.Get(), "load_factor", + HOFFSET(AcceptedFrameReadRow, load_factor), + H5T_NATIVE_DOUBLE), + "An accepted-frame load factor cannot be read."); + RequireHdf(H5Tinsert(type.Get(), "iteration_count", + HOFFSET(AcceptedFrameReadRow, iteration_count), + H5T_NATIVE_UINT64), + "An accepted-frame iteration count cannot be read."); + RequireHdf(H5Tinsert(type.Get(), "is_factor_one", + HOFFSET(AcceptedFrameReadRow, is_factor_one), + H5T_NATIVE_UINT8), + "An accepted-frame factor-one flag cannot be read."); + std::vector rows(static_cast(shape[0U])); + RequireHdf(H5Dread(dataset.Get(), type.Get(), H5S_ALL, H5S_ALL, H5P_DEFAULT, + rows.data()), + "The accepted-frame table cannot be read."); + std::vector factor_one; + for (const auto& row : rows) { + if (!std::isfinite(row.load_factor) || row.increment_index == 0U || + row.iteration_count == 0U || row.is_factor_one > 1U) { + Fail("schema-mismatch", "An accepted-frame row is invalid."); + } + if (row.is_factor_one == 1U) { + if (row.load_factor != 1.0) { + Fail("schema-mismatch", "A factor-one frame must have load factor one."); + } + factor_one.push_back(row.frame_index); + } + } + if (factor_one.size() != 1U) { + Fail("schema-mismatch", "The HDF5 result needs one factor-one frame."); + } + return factor_one.front(); +} + +std::vector ReadNodalDataset(const hid_t file, const std::string& path, + const std::string& expected_components, + const std::size_t node_count) { + auto dataset = OpenDataset(file, path); + if (Dimensions(dataset.Get()) != std::vector{node_count, 6U}) { + Fail("schema-mismatch", "A nodal HDF5 dataset has the wrong shape."); + } + RequireStringAttribute(dataset.Get(), "component_names", expected_components); + std::vector values(node_count * 6U); + RequireHdf(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()), + "A nodal HDF5 dataset cannot be read."); + if (!std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); })) { + Fail("schema-mismatch", "A nodal HDF5 value is nonfinite."); + } + return values; +} + +std::vector ReadConstraintMask(const hid_t file, + const std::size_t node_count) { + auto dataset = OpenDataset(file, "/model/nodal_constraint_mask"); + if (Dimensions(dataset.Get()) != std::vector{node_count, 6U}) { + Fail("schema-mismatch", "The HDF5 constraint mask has the wrong shape."); + } + std::vector values(node_count * 6U); + RequireHdf(H5Dread(dataset.Get(), H5T_NATIVE_UINT8, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()), + "The HDF5 constraint mask cannot be read."); + if (!std::all_of(values.begin(), values.end(), + [](const std::uint8_t value) { return value <= 1U; })) { + Fail("schema-mismatch", "The HDF5 constraint mask contains an invalid flag."); + } + return values; +} + +struct Hdf5Projection { + std::filesystem::path copied_input_path; + std::vector nodes; + std::vector displacement; + std::vector internal_force; + std::vector external_force; + std::vector residual; + std::vector reaction; + std::vector constraint_mask; + std::array global_equilibrium; +}; + +std::filesystem::path CopiedInputPathFor( + const std::filesystem::path& hdf5_results_path) { + const std::string stem = hdf5_results_path.stem().string(); + constexpr const char* kSuffix = "_results"; + const std::size_t suffix_size = std::char_traits::length(kSuffix); + if (stem.size() <= suffix_size || + stem.compare(stem.size() - suffix_size, suffix_size, kSuffix) != 0) { + Fail("schema-mismatch", "The generated HDF5 file does not have a sibling stem."); + } + return hdf5_results_path.parent_path() / + (stem.substr(0U, stem.size() - suffix_size) + ".inp"); +} + +std::array ReadGlobalBalance(const hid_t file, + const std::string& path) { + auto dataset = OpenDataset(file, path); + if (Dimensions(dataset.Get()) != std::vector{6U}) { + Fail("schema-mismatch", "The global balance dataset has the wrong shape."); + } + RequireStringAttribute(dataset.Get(), "component_names", + "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"); + RequireStringAttribute(dataset.Get(), "location", "global-balance-error"); + std::array values{}; + RequireHdf(H5Dread(dataset.Get(), H5T_NATIVE_DOUBLE, H5S_ALL, H5S_ALL, + H5P_DEFAULT, values.data()), + "The global balance dataset cannot be read."); + if (!std::all_of(values.begin(), values.end(), + [](const double value) { return std::isfinite(value); })) { + Fail("schema-mismatch", "The global balance dataset contains nonfinite data."); + } + return values; +} + +Hdf5Projection ReadNonlinearHdf5( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path) { + Hdf5ErrorSilencer silence; + Hdf5Handle file{RequireId(H5Fopen(hdf5_results_path.string().c_str(), + H5F_ACC_RDONLY, H5P_DEFAULT), + "The generated HDF5 result cannot be opened."), + H5Fclose}; + Hdf5Handle metadata{RequireId(H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT), + "The HDF5 metadata group is missing."), + H5Gclose}; + if (ReadUint64Attribute(metadata.Get(), "schema_version") != 1U) { + Fail("schema-mismatch", "The nonlinear HDF5 schema version is invalid."); + } + RequireStringAttribute(metadata.Get(), "feature_id", + "nonlinear-static-newton-raphson"); + RequireStringAttribute(metadata.Get(), "analysis_procedure", + "nonlinear-static-full-newton"); + const CaseContract& contract = ContractFor(reference_case); + const std::filesystem::path copied_input = CopiedInputPathFor(hdf5_results_path); + const std::string expected_identity = + "path=" + GenericPath(copied_input) + ";content_identity=" + + Fnv1a64(ReadBytes(reference_case.original_input_path)); + if (ReadStringAttribute(metadata.Get(), "source_input_identity") != + expected_identity) { + Fail("schema-mismatch", + "The HDF5 source path or source content identity is out of contract."); + } + const auto nodes = ReadNodes(file.Get(), contract.node_count); + const std::uint64_t frame_index = ReadFactorOneFrame(file.Get()); + const std::string root = "/steps/Step-1/frames/" + + std::to_string(frame_index) + "/nodal/"; + return {copied_input, + nodes, + ReadNodalDataset(file.Get(), root + "displacement", + "UX,UY,UZ,URX,URY,URZ", contract.node_count), + ReadNodalDataset(file.Get(), root + "generalized_internal_force", + "FI1,FI2,FI3,MI_PHI1,MI_PHI2,MI_PHI3", + contract.node_count), + ReadNodalDataset(file.Get(), root + "generalized_external_force", + "FE1,FE2,FE3,ME_PHI1,ME_PHI2,ME_PHI3", + contract.node_count), + ReadNodalDataset(file.Get(), root + "generalized_residual", + "RU1,RU2,RU3,RPHI1,RPHI2,RPHI3", + contract.node_count), + ReadNodalDataset(file.Get(), root + "reaction", + "RF1,RF2,RF3,RM1,RM2,RM3", contract.node_count), + ReadConstraintMask(file.Get(), contract.node_count), + ReadGlobalBalance(file.Get(), + "/steps/Step-1/frames/" + + std::to_string(frame_index) + + "/global/equilibrium")}; +} + +void RequireExactNodeLabels(const std::vector& rows, + const std::size_t expected_node_count) { + std::vector labels; + labels.reserve(rows.size()); + for (const auto& row : rows) { + labels.push_back(row.source_node_label); + } + std::sort(labels.begin(), labels.end()); + if (labels.size() != expected_node_count) { + Fail("schema-mismatch", "The CSV node inventory is out of contract."); + } + for (std::size_t index = 0U; index < labels.size(); ++index) { + if (labels[index] != static_cast(index + 1U)) { + Fail("schema-mismatch", "The CSV node labels are out of contract."); + } + } +} + +void RequireExactNodeLabels(const std::vector& nodes, + const std::size_t expected_node_count) { + std::vector labels; + labels.reserve(nodes.size()); + for (const auto& node : nodes) { + labels.push_back(node.source_node_label); + } + std::sort(labels.begin(), labels.end()); + if (labels.size() != expected_node_count) { + Fail("schema-mismatch", "The HDF5 node inventory is out of contract."); + } + for (std::size_t index = 0U; index < labels.size(); ++index) { + if (labels[index] != static_cast(index + 1U)) { + Fail("schema-mismatch", "The HDF5 node labels are out of contract."); + } + } +} + +std::string Key(const std::string& instance_name, + const std::int64_t source_node_label, + const std::string& component) { + return UppercaseAscii(instance_name) + "\x1f" + + std::to_string(source_node_label) + "\x1f" + component; +} + +bool IsSelected(const std::int64_t label, + const std::vector& selected_labels) { + return selected_labels.empty() || + std::find(selected_labels.begin(), selected_labels.end(), label) != + selected_labels.end(); +} + +std::map ProjectCsv( + const std::vector& rows, + const std::array& components, + const std::vector& selected_components, + const std::vector& selected_labels) { + std::map projected; + for (const auto& row : rows) { + if (!IsSelected(row.source_node_label, selected_labels)) { + continue; + } + for (const std::size_t component : selected_components) { + const std::string key = + Key(row.instance_name, row.source_node_label, components[component]); + if (!projected.emplace(key, row.values[component]).second) { + Fail("schema-mismatch", "A CSV component-row identity is duplicated."); + } + } + } + return projected; +} + +std::map ProjectHdf5( + const Hdf5Projection& projection, const std::vector& values, + const std::array& components, + const std::vector& selected_components, + const std::vector& selected_labels) { + std::map projected; + if (values.size() != projection.nodes.size() * 6U) { + Fail("schema-mismatch", "An HDF5 nodal vector has the wrong row count."); + } + for (std::size_t node = 0U; node < projection.nodes.size(); ++node) { + if (!IsSelected(projection.nodes[node].source_node_label, selected_labels)) { + continue; + } + for (const std::size_t component : selected_components) { + const std::string key = Key(projection.nodes[node].instance_name, + projection.nodes[node].source_node_label, + components[component]); + const double value = values[node * 6U + component]; + if (!std::isfinite(value) || !projected.emplace(key, value).second) { + Fail("schema-mismatch", "An HDF5 component-row identity is invalid."); + } + } + } + return projected; +} + +ReferenceToleranceFamilyDecision EvaluateFamily( + const std::string& identity, const std::vector& components, + const bool blocking, const std::map& hdf5, + const std::map& reference) { + if (hdf5.empty() || hdf5.size() != reference.size()) { + Fail("schema-mismatch", "HDF5 and CSV required row inventories differ."); + } + ReferenceToleranceFamily family{identity, components, blocking, {}}; + family.rows.reserve(hdf5.size()); + auto hdf5_row = hdf5.begin(); + auto reference_row = reference.begin(); + for (; hdf5_row != hdf5.end(); ++hdf5_row, ++reference_row) { + if (hdf5_row->first != reference_row->first || + !std::isfinite(hdf5_row->second) || !std::isfinite(reference_row->second)) { + Fail("schema-mismatch", "HDF5 and CSV required row keys differ or are nonfinite."); + } + family.rows.push_back({hdf5_row->second, reference_row->second}); + } + const auto evaluation = ReferenceTolerancePolicy::Evaluate({family}); + if (!evaluation.valid || evaluation.families.size() != 1U) { + Fail("schema-mismatch", "The common tolerance policy rejected a finite family."); + } + return evaluation.families.front(); +} + +void AppendFamily(NonlinearReferenceComparisonReport& report, + const std::string& identity, + const std::vector& components, + const NonlinearReferenceDisposition disposition, + const std::map& hdf5, + const std::map& reference) { + const bool blocking = disposition == NonlinearReferenceDisposition::kBlocking; + const auto tolerance = + EvaluateFamily(identity, components, blocking, hdf5, reference); + if (tolerance.row_count != hdf5.size()) { + Fail("schema-mismatch", "The tolerance family row count is inconsistent."); + } + report.families.push_back( + {identity, components, disposition, hdf5.size(), tolerance}); + if (blocking && !tolerance.passed) { + report.external_blocking_passed = false; + } +} + +std::vector ExpectedConstrainedLabels( + const NonlinearReferenceCase& reference_case) { + if (reference_case.case_id == "shellnl-s4-final") { + return {kCoarseConstrainedNodeLabels.begin(), kCoarseConstrainedNodeLabels.end()}; + } + if (reference_case.case_id == "shellnl-meshfine-s4-final") { + std::vector labels{1}; + for (std::int64_t label = 3; label <= 9; ++label) { + labels.push_back(label); + } + for (std::int64_t label = 34; label <= 57; ++label) { + labels.push_back(label); + } + for (std::int64_t label = 82; label <= 153; ++label) { + labels.push_back(label); + } + return labels; + } + Fail("schema-mismatch", "A linear case does not define nonlinear constraints."); +} + +std::vector RequiredConstrainedLabels( + const NonlinearReferenceCase& reference_case, + const Hdf5Projection& projection) { + std::vector constrained; + for (std::size_t node = 0U; node < projection.nodes.size(); ++node) { + const auto begin = projection.constraint_mask.begin() + + static_cast(node * 6U); + if (std::all_of(begin, begin + 6U, + [](const std::uint8_t value) { return value == 1U; })) { + constrained.push_back(projection.nodes[node].source_node_label); + } + } + std::sort(constrained.begin(), constrained.end()); + if (constrained != ExpectedConstrainedLabels(reference_case)) { + Fail("schema-mismatch", "The HDF5 constrained-node selection is out of contract."); + } + return constrained; +} + +fesa::Vector3 VectorAt(const std::vector& values, + const std::size_t offset) { + return {values[offset], values[offset + 1U], values[offset + 2U]}; +} + +fesa::Vector3 SpatialMoment(const fesa::Vector3& phi, + const fesa::Vector3& generalized) { + const Matrix transform = InverseTransposeLeftJacobianSO3(phi); + return {transform(0U, 0U) * generalized.X() + + transform(0U, 1U) * generalized.Y() + + transform(0U, 2U) * generalized.Z(), + transform(1U, 0U) * generalized.X() + + transform(1U, 1U) * generalized.Y() + + transform(1U, 2U) * generalized.Z(), + transform(2U, 0U) * generalized.X() + + transform(2U, 1U) * generalized.Y() + + transform(2U, 2U) * generalized.Z()}; +} + +fesa::Vector3 MaskedResidual(const Hdf5Projection& projection, + const std::size_t offset) { + return {projection.constraint_mask[offset] == 1U + ? projection.residual[offset] + : 0.0, + projection.constraint_mask[offset + 1U] == 1U + ? projection.residual[offset + 1U] + : 0.0, + projection.constraint_mask[offset + 2U] == 1U + ? projection.residual[offset + 2U] + : 0.0}; +} + +double InfinityNorm(const Hdf5Projection& projection, + const std::vector& values, + const bool rotations) { + double norm = 0.0; + const std::size_t first_component = rotations ? 3U : 0U; + for (std::size_t node = 0U; node < projection.nodes.size(); ++node) { + const std::size_t offset = node * 6U; + for (std::size_t component = 0U; component < 3U; ++component) { + const std::size_t dof = offset + first_component + component; + if (projection.constraint_mask[dof] == 0U) { + norm = (std::max)(norm, std::abs(values[dof])); + } + } + } + return norm; +} + +std::size_t FreeRowCount(const Hdf5Projection& projection, + const bool rotations) { + std::size_t count = 0U; + const std::size_t first_component = rotations ? 3U : 0U; + for (std::size_t node = 0U; node < projection.nodes.size(); ++node) { + const std::size_t offset = node * 6U; + for (std::size_t component = 0U; component < 3U; ++component) { + if (projection.constraint_mask[offset + first_component + component] == 0U) { + ++count; + } + } + } + return count; +} + +void AppendInternal(NonlinearReferenceComparisonReport* report, + const NonlinearInternalEquilibriumReport& row) { + report->internal_equilibrium.push_back(row); + if (!row.passed) { + report->internal_blocking_passed = false; + } +} + +void AppendFreeResidual(NonlinearReferenceComparisonReport* report, + const std::string& identity, + const Hdf5Projection& projection, + const bool rotations) { + const double residual = InfinityNorm(projection, projection.residual, rotations); + const double internal = + InfinityNorm(projection, projection.internal_force, rotations); + const double external = + InfinityNorm(projection, projection.external_force, rotations); + if (external == 0.0) { + AppendInternal(report, {identity, FreeRowCount(projection, rotations), residual, + 0.0, std::nullopt, residual <= 1.0e-3, + "accepted-free-residual-exact-zero-scale"}); + return; + } + const double scale = (std::max)(internal, external); + const double metric = residual / scale; + AppendInternal(report, {identity, FreeRowCount(projection, rotations), residual, + scale, metric, metric <= 1.0e-2, + "accepted-free-residual-relative"}); +} + +void AppendGlobalBalance(NonlinearReferenceComparisonReport* report, + const std::string& identity, + const fesa::Vector3& balance, + const double applied_scale, + const double reaction_scale) { + AppendInternal(report, EvaluateGlobalBalance(identity, balance.Norm(), + applied_scale, reaction_scale)); +} + +void AppendInternalEquilibrium(NonlinearReferenceComparisonReport* report, + const NonlinearReferenceCase& reference_case, + const Hdf5Projection& projection) { + fesa::Vector3 reaction_force; + fesa::Vector3 reaction_moment; + double applied_force_scale = 0.0; + double reaction_force_scale = 0.0; + double applied_moment_scale = 0.0; + double reaction_moment_scale = 0.0; + for (std::size_t node = 0U; node < projection.nodes.size(); ++node) { + const std::size_t offset = node * 6U; + const fesa::Vector3 position = + fesa::Vector3{projection.nodes[node].coordinates} + + VectorAt(projection.displacement, offset); + const fesa::Vector3 phi = VectorAt(projection.displacement, offset + 3U); + const fesa::Vector3 applied_force = VectorAt(projection.external_force, offset); + const fesa::Vector3 constrained_force = MaskedResidual(projection, offset); + const fesa::Vector3 applied_moment = + SpatialMoment(phi, VectorAt(projection.external_force, offset + 3U)); + const fesa::Vector3 constrained_moment = + SpatialMoment(phi, MaskedResidual(projection, offset + 3U)); + const fesa::Vector3 applied_resultant = + position.Cross(applied_force) + applied_moment; + const fesa::Vector3 constrained_resultant = + position.Cross(constrained_force) + constrained_moment; + reaction_force = reaction_force + constrained_force; + reaction_moment = reaction_moment + constrained_resultant; + applied_force_scale += applied_force.Norm(); + reaction_force_scale += constrained_force.Norm(); + applied_moment_scale += applied_resultant.Norm(); + reaction_moment_scale += constrained_resultant.Norm(); + } + report->constrained_reaction_resultant = { + reaction_force.Components(), reaction_moment.Components()}; + const std::string prefix = ContractFor(reference_case).family_prefix; + AppendGlobalBalance(report, prefix + "global_force_balance", + {projection.global_equilibrium[0U], + projection.global_equilibrium[1U], + projection.global_equilibrium[2U]}, + applied_force_scale, reaction_force_scale); + AppendGlobalBalance(report, prefix + "global_moment_balance", + {projection.global_equilibrium[3U], + projection.global_equilibrium[4U], + projection.global_equilibrium[5U]}, + applied_moment_scale, reaction_moment_scale); + AppendFreeResidual(report, prefix + "accepted_free_force_residual", + projection, false); + AppendFreeResidual(report, prefix + "accepted_free_moment_residual", + projection, true); +} + +std::filesystem::path DerivedLogPath(const std::filesystem::path& copied_input) { + return copied_input.parent_path() / + (copied_input.stem().string() + "_log.txt"); +} + +std::filesystem::path DerivedResultsPath( + const std::filesystem::path& copied_input) { + return copied_input.parent_path() / + (copied_input.stem().string() + "_results.h5"); +} + +NonlinearReferenceComparisonReport MakeReport( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path, + const std::vector& before, + const std::vector& after) { + const auto copied_input = CopiedInputPathFor(hdf5_results_path); + return {reference_case.case_id, + reference_case.original_input_path, + copied_input, + hdf5_results_path, + DerivedLogPath(copied_input), + before, + after, + {}, + true, + {}, + {}, + {}, + true, + true}; +} + +void CompareLinearCase(NonlinearReferenceComparisonReport& report, + const NonlinearReferenceCase& reference_case) { + const Mitc4ReferenceCase legacy_case{ + reference_case.case_id, "S4", report.copied_input_path, + reference_case.displacement_csv_path, report.generated_results_hdf5}; + const auto legacy = Mitc4ReferenceComparison::Compare(legacy_case); + if (!legacy.HasValue()) { + const auto& diagnostics = legacy.GetStatus().Diagnostics(); + const std::string message = diagnostics.empty() + ? "The linear control comparison failed." + : diagnostics.front().message; + Fail("schema-mismatch", message); + } + for (const auto& metric : legacy.Value().metrics) { + ReferenceToleranceFamilyDecision tolerance{}; + tolerance.identity = metric.blocking ? "linear.translation" : "linear.rotation"; + tolerance.components = metric.components; + tolerance.blocking = metric.blocking; + tolerance.reference_scale = metric.reference_scale; + tolerance.near_zero_band = metric.near_zero_band; + tolerance.near_zero_count = metric.near_zero_count; + tolerance.relative_rms = metric.relative_rms; + tolerance.maximum_absolute_error = metric.maximum_absolute_error; + tolerance.worst_row = metric.worst_row; + tolerance.rms_passed = metric.rms_passed; + tolerance.passed = metric.passed; + tolerance.diagnostic_code = metric.diagnostic_code; + tolerance.row_count = metric.row_count; + const auto disposition = metric.blocking + ? NonlinearReferenceDisposition::kBlocking + : NonlinearReferenceDisposition::kWarningOnly; + report.families.push_back({tolerance.identity, tolerance.components, + disposition, tolerance.row_count, tolerance}); + if (metric.blocking && !metric.passed) { + report.external_blocking_passed = false; + } + } +} + +void CompareNonlinearCase(NonlinearReferenceComparisonReport& report, + const NonlinearReferenceCase& reference_case) { + const CaseContract& contract = ContractFor(reference_case); + const auto hdf5 = ReadNonlinearHdf5(reference_case, + report.generated_results_hdf5); + report.copied_input_path = hdf5.copied_input_path; + report.generated_log_path = DerivedLogPath(hdf5.copied_input_path); + RequireExactNodeLabels(hdf5.nodes, contract.node_count); + const auto displacement_rows = ReadCsvWideRows( + reference_case.displacement_csv_path, true, kDisplacementComponents, + contract.node_count); + const auto reaction_rows = ReadCsvWideRows(reference_case.reaction_csv_path, + true, kReactionComponents, + contract.node_count); + RequireExactNodeLabels(displacement_rows, contract.node_count); + RequireExactNodeLabels(reaction_rows, contract.node_count); + const std::vector translations{0U, 1U, 2U}; + const std::vector rotations{3U, 4U, 5U}; + const std::vector inplane_forces{0U, 1U}; + const std::vector transverse_force{2U}; + const std::vector physical_moments{3U, 4U}; + const std::vector all_nodes; + const auto constrained = RequiredConstrainedLabels(reference_case, hdf5); + + AppendFamily(report, contract.family_prefix + "translation", {"U1", "U2", "U3"}, + NonlinearReferenceDisposition::kBlocking, + ProjectHdf5(hdf5, hdf5.displacement, kDisplacementComponents, + translations, all_nodes), + ProjectCsv(displacement_rows, kDisplacementComponents, + translations, all_nodes)); + AppendFamily(report, contract.family_prefix + "rotation", {"UR1", "UR2", "UR3"}, + NonlinearReferenceDisposition::kWarningOnly, + ProjectHdf5(hdf5, hdf5.displacement, kDisplacementComponents, + rotations, all_nodes), + ProjectCsv(displacement_rows, kDisplacementComponents, rotations, + all_nodes)); + AppendFamily(report, contract.family_prefix + "local_reaction_inplane_force", + {"RF1", "RF2"}, NonlinearReferenceDisposition::kReviewOnly, + ProjectHdf5(hdf5, hdf5.reaction, kReactionComponents, + inplane_forces, constrained), + ProjectCsv(reaction_rows, kReactionComponents, inplane_forces, + constrained)); + AppendFamily(report, contract.family_prefix + "local_reaction_transverse_force", + {"RF3"}, NonlinearReferenceDisposition::kReviewOnly, + ProjectHdf5(hdf5, hdf5.reaction, kReactionComponents, + transverse_force, constrained), + ProjectCsv(reaction_rows, kReactionComponents, transverse_force, + constrained)); + AppendFamily(report, contract.family_prefix + "local_reaction_physical_moment", + {"RM1", "RM2"}, NonlinearReferenceDisposition::kReviewOnly, + ProjectHdf5(hdf5, hdf5.reaction, kReactionComponents, + physical_moments, constrained), + ProjectCsv(reaction_rows, kReactionComponents, physical_moments, + constrained)); + AppendInternalEquilibrium(&report, reference_case, hdf5); +} + +} // namespace + +NonlinearInternalEquilibriumReport EvaluateGlobalBalance( + const std::string& family_identity, const double numerator, + const double applied_scale, const double reaction_scale) { + const double scale = (std::max)(applied_scale, reaction_scale); + if (scale == 0.0) { + return {family_identity, 3U, numerator, scale, std::nullopt, + numerator == 0.0, "zero-reference-scale-nonzero-error"}; + } + const double metric = numerator / scale; + return {family_identity, 3U, numerator, scale, metric, + metric <= kInternalGlobalBalanceRelativeTolerance, + "global-balance-relative"}; +} + +Result> ArtifactCheck( + const NonlinearReferenceCase& reference_case) { + try { + const auto artifacts = DeclaredArtifacts(reference_case); + std::vector snapshots; + snapshots.reserve(artifacts.size()); + for (const auto& artifact : artifacts) { + snapshots.push_back(Snapshot(artifact)); + } + return Result>::Success(std::move(snapshots)); + } catch (const ComparisonFailure& exception) { + return Result>::Failure( + FailureStatus(reference_case, exception.Code(), exception.what())); + } catch (const std::exception& exception) { + return Result>::Failure( + FailureStatus(reference_case, "reference-artifact-check-failed", + exception.what())); + } +} + +Result CopyInputToExecutionDirectory( + const NonlinearReferenceCase& reference_case) { + try { + const auto check = ArtifactCheck(reference_case); + if (!check.HasValue()) { + return Result::Failure(check.GetStatus()); + } + const std::filesystem::path execution_root = + Normalized(reference_case.execution_directory); + if (!IsDescendantOf(execution_root, + std::filesystem::path{FESA_TEST_BINARY_DIR}) || + IsDescendantOf(execution_root, + reference_case.original_input_path.parent_path())) { + Fail("invalid-execution-directory", + "Reference execution must use a build-local directory outside reference."); + } + std::error_code error; + std::filesystem::create_directories(execution_root, error); + if (error) { + Fail("copy-input-failed", "The build-local execution directory cannot be created."); + } + static std::atomic sequence{0U}; + const auto tick = std::chrono::steady_clock::now().time_since_epoch().count(); + const std::filesystem::path run_directory = + execution_root / (reference_case.case_id + "-" + std::to_string(tick) + + "-" + std::to_string(sequence.fetch_add(1U))); + if (!std::filesystem::create_directory(run_directory, error) || error) { + Fail("copy-input-failed", "A unique execution directory cannot be created."); + } + const std::filesystem::path copied_input = + run_directory / reference_case.original_input_path.filename(); + if (!std::filesystem::copy_file(reference_case.original_input_path, + copied_input, + std::filesystem::copy_options::none, error) || + error || ReadBytes(copied_input) != ReadBytes(reference_case.original_input_path)) { + Fail("copy-input-failed", "The copied input does not preserve source bytes."); + } + return Result::Success(copied_input); + } catch (const ComparisonFailure& exception) { + return Result::Failure( + FailureStatus(reference_case, exception.Code(), exception.what())); + } catch (const std::exception& exception) { + return Result::Failure( + FailureStatus(reference_case, "copy-input-failed", exception.what())); + } +} + +Result RunFesaApplicationOnCopiedInput( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& copied_input_path) { + try { + if (Normalized(copied_input_path) == + Normalized(reference_case.original_input_path)) { + Fail("original-reference-input-forbidden", + "FesaApplication must never receive the original reference input."); + } + if (!IsDescendantOf(copied_input_path, + Normalized(reference_case.execution_directory)) || + !std::filesystem::is_regular_file(copied_input_path)) { + Fail("invalid-execution-input", "The execution input is not a copied artifact."); + } + const int exit_code = FesaApplication{}.Run({copied_input_path.string()}); + if (exit_code != 0) { + Fail("fesa-application-failed", + "FesaApplication did not produce an accepted reference run."); + } + const auto results = DerivedResultsPath(copied_input_path); + const auto log = DerivedLogPath(copied_input_path); + if (!std::filesystem::is_regular_file(results) || + !std::filesystem::is_regular_file(log)) { + Fail("generated-artifact-missing", + "The copied execution did not produce sibling result and log artifacts."); + } + return Result::Success({copied_input_path, results, log}); + } catch (const ComparisonFailure& exception) { + return Result::Failure( + FailureStatus(reference_case, exception.Code(), exception.what())); + } catch (const std::exception& exception) { + return Result::Failure( + FailureStatus(reference_case, "fesa-application-failed", exception.what())); + } +} + +Result CompareHdf5ToReferenceCsv( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path) { + try { + const auto before = ArtifactCheck(reference_case); + if (!before.HasValue()) { + return Result::Failure( + before.GetStatus()); + } + if (!std::filesystem::is_regular_file(hdf5_results_path)) { + Fail("schema-mismatch", "The generated HDF5 result is missing."); + } + auto report = MakeReport(reference_case, hdf5_results_path, before.Value(), {}); + if (ContractFor(reference_case).nonlinear) { + CompareNonlinearCase(report, reference_case); + } else if (reference_case.case_id == "shell-s4-linear-limit") { + CompareLinearCase(report, reference_case); + } else { + Fail("schema-mismatch", "The requested comparison case is unknown."); + } + const auto after = ArtifactCheck(reference_case); + if (!after.HasValue()) { + return Result::Failure(after.GetStatus()); + } + report.post_run_artifacts = after.Value(); + report.blocking_passed = report.external_blocking_passed && + report.internal_blocking_passed; + return Result::Success(std::move(report)); + } catch (const ComparisonFailure& exception) { + return Result::Failure( + FailureStatus(reference_case, exception.Code(), exception.what())); + } catch (const std::exception& exception) { + return Result::Failure( + FailureStatus(reference_case, "reference-comparison-failed", exception.what())); + } +} + +NonlinearReferenceClassification ClassifyReferenceComparison( + const NonlinearReferenceComparisonReport& report) { + const bool blocking_precheck = + std::any_of(report.precheck_findings.begin(), report.precheck_findings.end(), + [](const NonlinearReferencePrecheckFinding& finding) { + return finding.disposition == + NonlinearReferenceDisposition::kBlocking; + }); + if (!report.blocking_passed || blocking_precheck) { + return NonlinearReferenceClassification::kFailed; + } + const bool warning_only_difference = + std::any_of(report.families.begin(), report.families.end(), + [](const NonlinearReferenceFamilyReport& family) { + return family.disposition == + NonlinearReferenceDisposition::kWarningOnly && + !family.tolerance.passed; + }); + const bool warning_precheck = + std::any_of(report.precheck_findings.begin(), report.precheck_findings.end(), + [](const NonlinearReferencePrecheckFinding& finding) { + return finding.disposition == + NonlinearReferenceDisposition::kWarningOnly; + }); + return warning_only_difference || warning_precheck + ? NonlinearReferenceClassification::kWarningOnlyDifferences + : NonlinearReferenceClassification::kPassed; +} + +NonlinearReferenceComparisonReport BuildReferenceComparisonReport( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path) { + NonlinearReferenceComparisonReport report{}; + report.case_id = reference_case.case_id; + report.original_input_path = reference_case.original_input_path; + report.generated_results_hdf5 = hdf5_results_path; + report.blocking_passed = false; + const auto artifacts = ArtifactCheck(reference_case); + if (artifacts.HasValue()) { + report.pre_run_artifacts = artifacts.Value(); + report.post_run_artifacts = artifacts.Value(); + } + if (hdf5_results_path.has_filename()) { + try { + report.copied_input_path = CopiedInputPathFor(hdf5_results_path); + report.generated_log_path = DerivedLogPath(report.copied_input_path); + } catch (const ComparisonFailure&) { + // This builder is non-throwing by contract; comparison reports surface + // the malformed result path through CompareHdf5ToReferenceCsv instead. + } + } + return report; +} + +} // namespace fesa::test diff --git a/tests/reference/nonlinear_static_reference_comparison.h b/tests/reference/nonlinear_static_reference_comparison.h new file mode 100644 index 0000000..dc1b235 --- /dev/null +++ b/tests/reference/nonlinear_static_reference_comparison.h @@ -0,0 +1,129 @@ +#ifndef FESA_TESTS_REFERENCE_NONLINEAR_STATIC_REFERENCE_COMPARISON_H_ +#define FESA_TESTS_REFERENCE_NONLINEAR_STATIC_REFERENCE_COMPARISON_H_ + +#include +#include +#include +#include +#include +#include +#include + +#include "fesa/core/status.h" +#include "reference_tolerance_policy.h" + +namespace fesa::test { + +struct NonlinearReferenceCase { + std::string case_id; + std::filesystem::path original_input_path; + std::filesystem::path displacement_csv_path; + std::filesystem::path reaction_csv_path; + std::filesystem::path stress_inventory_path; + std::filesystem::path execution_directory; +}; + +struct ArtifactSnapshot { + std::filesystem::path path; + std::string sha256; + std::uintmax_t byte_size; + std::filesystem::file_time_type last_write_time; +}; + +enum class NonlinearReferenceDisposition { + kBlocking, + kWarningOnly, + kReviewOnly, + kExcluded, +}; + +struct NonlinearReferenceRowKey { + std::string case_id; + std::string accepted_state; + std::string instance_name; + std::int64_t source_node_label; + std::string component; +}; + +struct NonlinearReferenceFamilyReport { + std::string family_identity; + std::vector components; + NonlinearReferenceDisposition disposition; + std::size_t row_count; + ReferenceToleranceFamilyDecision tolerance; +}; + +struct NonlinearReferencePrecheckFinding { + std::string family_identity; + NonlinearReferenceDisposition disposition; + std::string diagnostic_code; + std::vector affected_keys; +}; + +struct NonlinearInternalEquilibriumReport { + std::string family_identity; + std::size_t row_count; + double numerator; + double scale; + std::optional normalized_metric; + bool passed; + std::string diagnostic_code; +}; + +struct ConstrainedReactionResultantReport { + std::array force; + std::array moment; +}; + +NonlinearInternalEquilibriumReport EvaluateGlobalBalance( + const std::string& family_identity, double numerator, + double applied_scale, double reaction_scale); + +struct GeneratedRunArtifacts { + std::filesystem::path copied_input_path; + std::filesystem::path generated_results_hdf5; + std::filesystem::path generated_log_path; +}; + +struct NonlinearReferenceComparisonReport { + std::string case_id; + std::filesystem::path original_input_path; + std::filesystem::path copied_input_path; + std::filesystem::path generated_results_hdf5; + std::filesystem::path generated_log_path; + std::vector pre_run_artifacts; + std::vector post_run_artifacts; + std::vector families; + bool blocking_passed; + std::vector precheck_findings; + std::vector internal_equilibrium; + ConstrainedReactionResultantReport constrained_reaction_resultant; + bool external_blocking_passed; + bool internal_blocking_passed; +}; + +enum class NonlinearReferenceClassification { + kPassed, + kFailed, + kWarningOnlyDifferences, +}; + +Result> ArtifactCheck( + const NonlinearReferenceCase& reference_case); +Result CopyInputToExecutionDirectory( + const NonlinearReferenceCase& reference_case); +Result RunFesaApplicationOnCopiedInput( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& copied_input_path); +Result CompareHdf5ToReferenceCsv( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path); +NonlinearReferenceClassification ClassifyReferenceComparison( + const NonlinearReferenceComparisonReport& report); +NonlinearReferenceComparisonReport BuildReferenceComparisonReport( + const NonlinearReferenceCase& reference_case, + const std::filesystem::path& hdf5_results_path); + +} // namespace fesa::test + +#endif // FESA_TESTS_REFERENCE_NONLINEAR_STATIC_REFERENCE_COMPARISON_H_ diff --git a/tests/unit/analysis/newton_iteration_log_test.cpp b/tests/unit/analysis/newton_iteration_log_test.cpp index e12d4df..8b77ad0 100644 --- a/tests/unit/analysis/newton_iteration_log_test.cpp +++ b/tests/unit/analysis/newton_iteration_log_test.cpp @@ -80,6 +80,14 @@ std::string ValueAfterEquals(const std::string& field) { return field.substr(field.find('=') + 1U); } +fesa::Vector VectorFrom(const std::vector& values) { + fesa::Vector result{values.size()}; + for (std::size_t index = 0U; index < values.size(); ++index) { + result[index] = values[index]; + } + return result; +} + fesa::NewtonChannelDecision MakeDecision(const std::string& identity) { return {identity, 0.0012345678901234567, @@ -324,4 +332,84 @@ TEST(NewtonIterationLog, LeavesZeroByteLogForNonNewtonControlledFailurePath) { EXPECT_EQ(std::filesystem::file_size(path), 0U); } +// NSNR-LOG-012 +TEST(NewtonIterationLog, + SerializesEvaluatorProducedExternalScaleResidualDecisions) { + TempDirectory directory{"external-scale"}; + const fesa::NewtonConvergenceInput zero_external{ + {"residual_force", VectorFrom({1.0e-3}), VectorFrom({2.0}), + VectorFrom({0.0})}, + {"residual_moment", VectorFrom({1.0e-3}), VectorFrom({3.0}), + VectorFrom({0.0})}, + {"correction_translation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + {"correction_rotation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + }; + const auto zero_decisions = fesa::EvaluateNewtonConvergence(zero_external); + auto zero_record = CompleteRecord(); + zero_record.force_residual = zero_decisions.force_residual; + zero_record.moment_residual = zero_decisions.moment_residual; + zero_record.translation_correction = zero_decisions.translation_correction; + zero_record.rotation_correction = zero_decisions.rotation_correction; + zero_record.combined_passed = zero_decisions.combined_passed; + const auto zero_fields = + WriteAndRead(directory.Path() / "zero_log.txt", zero_record); + + ASSERT_EQ(zero_fields.size(), 39U); + EXPECT_EQ(FieldValue(zero_fields, "schema"), "schema=nsnr-log-v1"); + EXPECT_EQ(FieldValue(zero_fields, "residual_force_denominator_scale"), + "residual_force_denominator_scale=0"); + EXPECT_EQ(FieldValue(zero_fields, "residual_moment_denominator_scale"), + "residual_moment_denominator_scale=0"); + EXPECT_EQ(FieldValue(zero_fields, "residual_force_branch"), + "residual_force_branch=zero-scale"); + EXPECT_EQ(FieldValue(zero_fields, "residual_moment_branch"), + "residual_moment_branch=zero-scale"); + EXPECT_EQ(FieldValue(zero_fields, "residual_force_threshold"), + "residual_force_threshold=0.001"); + EXPECT_EQ(FieldValue(zero_fields, "residual_moment_threshold"), + "residual_moment_threshold=0.001"); + EXPECT_EQ(FieldValue(zero_fields, "residual_force_threshold_unit"), + "residual_force_threshold_unit=force"); + EXPECT_EQ(FieldValue(zero_fields, "residual_moment_threshold_unit"), + "residual_moment_threshold_unit=force*length"); + + const fesa::NewtonConvergenceInput nonzero_external{ + {"residual_force", VectorFrom({2.0e-2}), VectorFrom({2.0}), + VectorFrom({1.0})}, + {"residual_moment", VectorFrom({2.0e-2}), VectorFrom({1.0}), + VectorFrom({2.0})}, + {"correction_translation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + {"correction_rotation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + }; + const auto relative_decisions = + fesa::EvaluateNewtonConvergence(nonzero_external); + auto relative_record = CompleteRecord(); + relative_record.force_residual = relative_decisions.force_residual; + relative_record.moment_residual = relative_decisions.moment_residual; + relative_record.translation_correction = + relative_decisions.translation_correction; + relative_record.rotation_correction = relative_decisions.rotation_correction; + relative_record.combined_passed = relative_decisions.combined_passed; + const auto relative_fields = + WriteAndRead(directory.Path() / "relative_log.txt", relative_record); + + ASSERT_EQ(relative_fields.size(), 39U); + EXPECT_EQ(FieldValue(relative_fields, "residual_force_denominator_scale"), + "residual_force_denominator_scale=2"); + EXPECT_EQ(FieldValue(relative_fields, "residual_moment_denominator_scale"), + "residual_moment_denominator_scale=2"); + EXPECT_EQ(FieldValue(relative_fields, "residual_force_branch"), + "residual_force_branch=relative"); + EXPECT_EQ(FieldValue(relative_fields, "residual_moment_branch"), + "residual_moment_branch=relative"); + EXPECT_EQ(FieldValue(relative_fields, "residual_force_threshold"), + "residual_force_threshold=0.01"); + EXPECT_EQ(FieldValue(relative_fields, "residual_moment_threshold"), + "residual_moment_threshold=0.01"); + EXPECT_EQ(FieldValue(relative_fields, "residual_force_threshold_unit"), + "residual_force_threshold_unit=1"); + EXPECT_EQ(FieldValue(relative_fields, "residual_moment_threshold_unit"), + "residual_moment_threshold_unit=1"); +} + } // namespace diff --git a/tests/unit/analysis/nonlinear_static_control_test.cpp b/tests/unit/analysis/nonlinear_static_control_test.cpp index a64c959..884d049 100644 --- a/tests/unit/analysis/nonlinear_static_control_test.cpp +++ b/tests/unit/analysis/nonlinear_static_control_test.cpp @@ -143,6 +143,18 @@ fesa::NewtonConvergenceInput RelativeConvergenceInput() { }; } +fesa::NewtonConvergenceInput ExactZeroExternalResidualInput( + const double force_numerator, const double moment_numerator) { + return { + {"residual_force", VectorFrom({force_numerator}), VectorFrom({2.0}), + VectorFrom({0.0})}, + {"residual_moment", VectorFrom({moment_numerator}), VectorFrom({3.0}), + VectorFrom({0.0})}, + {"correction_translation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + {"correction_rotation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + }; +} + // NSNR-CTRL-001, NSNR-CTRL-002, and NSNR-CTRL-017 TEST(NonlinearStaticControl, BuildsFixedFactorSequenceWithExactEndpoint) { const auto fixture = MakeFixture(); @@ -362,4 +374,161 @@ TEST(NonlinearConvergence, AppliesTypedZeroScaleGatesToEmptyChannels) { } } +// NSNR-CTRL-018 +TEST(NonlinearConvergence, + SelectsTypedZeroScaleFromExactZeroExternalResidualChannels) { + const auto accepted = fesa::EvaluateNewtonConvergence( + ExactZeroExternalResidualInput(fesa::kNewtonZeroScaleThreshold, + fesa::kNewtonZeroScaleThreshold)); + + EXPECT_TRUE(accepted.combined_passed); + const std::array decisions{ + accepted.force_residual, accepted.moment_residual}; + const std::array units{ + fesa::NewtonChannelUnit::kForce, + fesa::NewtonChannelUnit::kForceLength}; + for (std::size_t index = 0U; index < decisions.size(); ++index) { + EXPECT_DOUBLE_EQ(decisions[index].denominator_scale, 0.0); + EXPECT_EQ(decisions[index].branch, + fesa::NewtonConvergenceBranch::kZeroScale); + EXPECT_DOUBLE_EQ(decisions[index].threshold, + fesa::kNewtonZeroScaleThreshold); + EXPECT_EQ(decisions[index].threshold_unit, units[index]); + EXPECT_TRUE(decisions[index].passed); + } + + const double just_over = std::nextafter( + fesa::kNewtonZeroScaleThreshold, + std::numeric_limits::infinity()); + const auto force_rejected = + fesa::EvaluateNewtonConvergence(ExactZeroExternalResidualInput( + just_over, fesa::kNewtonZeroScaleThreshold)); + const auto moment_rejected = + fesa::EvaluateNewtonConvergence(ExactZeroExternalResidualInput( + fesa::kNewtonZeroScaleThreshold, just_over)); + EXPECT_FALSE(force_rejected.force_residual.passed); + EXPECT_FALSE(force_rejected.combined_passed); + EXPECT_FALSE(moment_rejected.moment_residual.passed); + EXPECT_FALSE(moment_rejected.combined_passed); +} + +// NSNR-CTRL-019 +TEST(NonlinearConvergence, + UsesRelativeResidualScaleOnlyWhenMatchingExternalScaleIsNonzero) { + fesa::NewtonConvergenceInput input{ + {"residual_force", VectorFrom({2.0e-2}), VectorFrom({2.0}), + VectorFrom({1.0})}, + {"residual_moment", VectorFrom({2.0e-2}), VectorFrom({1.0}), + VectorFrom({2.0})}, + {"correction_translation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + {"correction_rotation", VectorFrom({1.0e-2}), VectorFrom({1.0})}, + }; + const auto accepted = fesa::EvaluateNewtonConvergence(input); + + EXPECT_TRUE(accepted.combined_passed); + for (const auto& decision : {accepted.force_residual, + accepted.moment_residual}) { + EXPECT_DOUBLE_EQ(decision.denominator_scale, 2.0); + EXPECT_EQ(decision.branch, fesa::NewtonConvergenceBranch::kRelative); + EXPECT_DOUBLE_EQ(decision.threshold, fesa::kNewtonRelativeThreshold); + EXPECT_EQ(decision.threshold_unit, fesa::NewtonChannelUnit::kDimensionless); + EXPECT_TRUE(decision.passed); + } + + const double just_over = std::nextafter(2.0e-2, + std::numeric_limits::infinity()); + input.force_residual.free_residual = VectorFrom({just_over}); + EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).force_residual.passed); + input.force_residual.free_residual = VectorFrom({2.0e-2}); + input.moment_residual.free_residual = VectorFrom({just_over}); + EXPECT_FALSE(fesa::EvaluateNewtonConvergence(input).moment_residual.passed); + + input.moment_residual.free_residual = VectorFrom({2.0e-2}); + input.force_residual.free_residual = VectorFrom({9.0e-4}); + input.force_residual.free_internal = VectorFrom({5.0e-3}); + input.force_residual.free_external = VectorFrom({1.0e-2}); + const auto relative_rejected = fesa::EvaluateNewtonConvergence(input); + EXPECT_FALSE(relative_rejected.force_residual.passed); + EXPECT_FALSE(relative_rejected.combined_passed); +} + +// NSNR-CTRL-020 +TEST(NonlinearConvergence, + RejectsNonfiniteResidualInputsBeforeSelectingOrAcceptingAChannel) { + const std::array invalid_values{ + std::numeric_limits::quiet_NaN(), + std::numeric_limits::infinity()}; + for (const double invalid : invalid_values) { + for (const bool is_moment : {false, true}) { + for (const std::size_t vector_index : {0U, 1U, 2U}) { + auto input = RelativeConvergenceInput(); + fesa::NewtonResidualChannelInput* channel = + is_moment ? &input.moment_residual : &input.force_residual; + if (vector_index == 0U) { + channel->free_residual = VectorFrom({invalid}); + } else if (vector_index == 1U) { + channel->free_internal = VectorFrom({invalid}); + } else { + channel->free_external = VectorFrom({invalid}); + } + const auto result = fesa::EvaluateNewtonConvergence(input); + const auto& decision = + is_moment ? result.moment_residual : result.force_residual; + EXPECT_FALSE(decision.passed); + EXPECT_FALSE(result.combined_passed); + } + } + } + + auto input = RelativeConvergenceInput(); + const double smallest_external = std::nextafter( + 0.0, std::numeric_limits::infinity()); + input.force_residual.free_residual = VectorFrom({0.0}); + input.force_residual.free_internal = VectorFrom({0.0}); + input.force_residual.free_external = VectorFrom({smallest_external}); + const auto relative = fesa::EvaluateNewtonConvergence(input); + EXPECT_TRUE(relative.force_residual.passed); + EXPECT_DOUBLE_EQ(relative.force_residual.denominator_scale, + smallest_external); + EXPECT_EQ(relative.force_residual.branch, + fesa::NewtonConvergenceBranch::kRelative); + EXPECT_DOUBLE_EQ(relative.force_residual.threshold, + fesa::kNewtonRelativeThreshold); + EXPECT_EQ(relative.force_residual.threshold_unit, + fesa::NewtonChannelUnit::kDimensionless); +} + +// NSNR-CTRL-021 +TEST(NonlinearConvergence, RequiresEveryResidualAndCorrectionChannelToPass) { + const auto accepted = fesa::EvaluateNewtonConvergence(RelativeConvergenceInput()); + EXPECT_TRUE(accepted.combined_passed); + EXPECT_DOUBLE_EQ(accepted.translation_correction.denominator_scale, 1.0); + EXPECT_DOUBLE_EQ(accepted.rotation_correction.denominator_scale, 1.0); + EXPECT_DOUBLE_EQ(accepted.translation_correction.threshold, + fesa::kNewtonRelativeThreshold); + EXPECT_DOUBLE_EQ(accepted.rotation_correction.threshold, + fesa::kNewtonRelativeThreshold); + EXPECT_EQ(accepted.translation_correction.threshold_unit, + fesa::NewtonChannelUnit::kDimensionless); + EXPECT_EQ(accepted.rotation_correction.threshold_unit, + fesa::NewtonChannelUnit::kDimensionless); + + for (const std::size_t failed_channel : {0U, 1U, 2U, 3U}) { + auto input = RelativeConvergenceInput(); + const double just_over = std::nextafter( + 1.0e-2, std::numeric_limits::infinity()); + if (failed_channel == 0U) { + input.force_residual.free_residual = VectorFrom({just_over}); + } else if (failed_channel == 1U) { + input.moment_residual.free_residual = VectorFrom({just_over}); + } else if (failed_channel == 2U) { + input.translation_correction.fresh_correction = VectorFrom({just_over}); + } else { + input.rotation_correction.fresh_correction = VectorFrom({just_over}); + } + const auto result = fesa::EvaluateNewtonConvergence(input); + EXPECT_FALSE(result.combined_passed); + } +} + } // namespace diff --git a/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp b/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp index b2cfb77..a210b1c 100644 --- a/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp +++ b/tests/unit/io/hdf5/nonlinear_hdf5_results_writer_test.cpp @@ -534,6 +534,31 @@ TEST(NonlinearHdf5ResultsWriter, ProjectsRotationalReactionToSpatialMoment) { EXPECT_GT(quadratic, 0.0); } +// NSNR-HDF5-014. +TEST(NonlinearHdf5ResultsWriter, WritesSchemaV1GlobalBalanceErrorLocation) { + TempDirectory directory{"global-balance-location"}; + auto fixture = MakeFixture(directory.Path() / "global-balance.inp"); + const auto output = directory.Path() / "global-balance_results.h5"; + + fesa::NonlinearHdf5ResultsWriter writer; + ASSERT_TRUE(writer.Write(output, *fixture.domain, fixture.state, {}).IsOk()); + + const auto file = OpenFile(output); + const auto equilibrium = OpenDataset( + file.Get(), "/steps/Step-1/frames/1/global/equilibrium"); + EXPECT_EQ(DatasetDimensions(file.Get(), + "/steps/Step-1/frames/1/global/equilibrium"), + std::vector({6U})); + EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), "component_names"), + "FORCE_1,FORCE_2,FORCE_3,MOMENT_1,MOMENT_2,MOMENT_3"); + EXPECT_EQ(ReadStringAttribute(equilibrium.Get(), "location"), + "global-balance-error"); + Hdf5Handle metadata{H5Gopen2(file.Get(), "/metadata", H5P_DEFAULT), + H5Gclose}; + ASSERT_GE(metadata.Get(), 0); + EXPECT_EQ(ReadUint64Attribute(metadata.Get(), "schema_version"), 1U); +} + // NSNR-HDF5-012 and NSNR-HDF5-013. TEST(NonlinearHdf5ResultsWriter, StoresSortedDiagnosticsThroughBackendNeutralBoundary) { static_assert(std::is_base_of_v Date: Fri, 28 Aug 2026 09:22:34 +0900 Subject: [PATCH 24/32] chore(nonlinear-static-newton-raphson): step 11 output --- phases/nonlinear-static-newton-raphson/index.json | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 53bbb37..a13a3b6 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -92,8 +92,11 @@ }, { "step": 11, - "name": "reference-comparison-gate", - "status": "pending" + "name": "equilibrium-projection-and-reference-gate", + "status": "completed", + "summary": "Verified accepted current-arm spatial balance output and the comparator-only inclusive 1e-8/zero-scale global balance gates with focused boundary and schema/procedure checks.", + "started_at": "2026-08-24T15:49:08+0900", + "completed_at": "2026-08-28T09:22:33+0900" }, { "step": 12, From af5d72233c2bcd00edc087531d10eb92f7232d3e Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 19:34:36 +0900 Subject: [PATCH 25/32] docs(nonlinear-static-newton-raphson): record step 11 audit --- .../coordination.md | 80 +++++++++---------- 1 file changed, 37 insertions(+), 43 deletions(-) diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index e80f5a8..6c4c4a6 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -6,12 +6,12 @@ - workflow_state: `needs-implementation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-28` (REWORK-009 passed; bounded Step 11 all-WindowsApps-filter rerun package prepared) +- last_updated: `2026-08-28` (STEP11-EXECUTION-004 passed; awaiting explicit Step 12 execution request) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Run one bounded Step `11` only no-push Harness/Implementation rerun after REWORK-009 proved the all-WindowsApps PATH filter; Step `12`, push, reference mutation, `danger-full-access`, `fesa.env` and runtime/product configuration remain forbidden. +- current_goal: Step `11` is completed and committed; stop before Step `12`, Physics and Release. Await explicit Step `12` Harness/Implementation execution request for evidence-doc closure. - constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O, Stage 6 Implementation Planning materialization, then Step `11` only no-push Harness/Implementation under Codex CLI `0.150.1` USER-DECISION-005A envelope. No push, no `danger-full-access`, no reference mutation/solver and no Step `12` auto-advance. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. @@ -24,7 +24,7 @@ | 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | §14.1만 USER-DECISION-003 option 1로 갱신하고 strong/weak form, kinematics, tangent/residual, integration, state/recovery, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure를 보존함 | Owner returned `ready-for-coordinator-and-user-reapproval`, SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, §14.1-only diff `34` additions/`5` deletions, revised requirements hash matched, 13/13 contract assertions and diff check passed, no other owner file changes. Coordinator audit passed and user explicitly re-approved this hash on 2026-08-24: exact-zero branch selector is matching external residual-channel scale, nonzero external scale retains relative `max(internal, external)` denominator and `1e-2`, typed absolutes remain `1e-3`, correction gates/four-channel AND/lifecycle/reference disposition unchanged. | 없음 | 3 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | USER-DECISION-006 delegated reapproval: both normalized factor-one global FORCE and MOMENT balance gates are fixed `<=1e-8`, with exact formulas, sum-of-contribution scales, zero-scale rule, source identity and USER-DECISION-004 dispositions preserved | Owner returned `pass-for-io-definition`, blockers none. Coordinator audit verified hashes `numerical-review.md` `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; both reports record global force/moment normalized gate `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, 12 reference hashes/length/mtime unchanged, fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and `RM3`/stress excluded. Root independently verified hashes, target occurrences and `git diff --check` with only LF/CRLF warnings. | 없음 | 6 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `11` only no-push rerun uses Codex CLI `0.150.1`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and a child launch PATH that removes every entry matching `\\WindowsApps(?:\\|$)`; Step `12` remains outside scope | REWORK-009 owner returned `corrected-for-implementation-rerun`, blockers none, `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator/root audit verified Section 14 records the confirmed all-WindowsApps filter, exact shell smoke, recovered RED->GREEN, focused passes, Stop `302/302`, no runner/source/test/CMake/phase/upstream/reference/tolerance edits, and one bounded Step `11` rerun recommendation. Step `11` and top phase remain `pending`, Step `12` pending, HEAD `65b56b1`, and canonical evidence docs are absent. | Step `11` rerun owner return missing; Step `12` not authorized | 33 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `11` passed; Stage 6 still requires Step `12` evidence-doc closure before Physics eligibility | STEP11-EXECUTION-004 completed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`, metadata commit `c58ba9f`, HEAD `c58ba9f609acdaaaf126074d1eb2a52202e82cb8`, branch `feat-nonlinear-static-newton-raphson`, no push and clean worktree before Coordinator update. Step `11` completed at `2026-08-28T09:22:33+0900`; Step `12` remains pending; top phase remains pending. Coordinator audit verified `step11-output.json` SHA-256 `292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`, focused procedure/HDF5 `7/7`, threshold `2/2`, fresh natural Stop LastTest.log mtime `2026-08-28 09:22:32` with `302` entries, `302` `Test Passed.` and `0` failed markers, plus long fine/coarse and global-balance tests passed. | Step `12` evidence docs are absent and not authorized in this audit | 34 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | @@ -33,41 +33,34 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `STEP11-EXECUTION-004-all-windowsapps-filter-step11-only-rerun-root-executor-required` -- target_sub_agent: `implementation-agent` via Harness Executor -- required_inputs: - - Use `fesa-cpp-msvc-tdd` and project-local `harness`; execute only Executor-selected Step `11` `equilibrium-projection-and-reference-gate`. - - Read `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.codex/hooks.json`, `docs/nonlinear-static-newton-raphson/coordination.md`, approved Stage 4/5/6 documents, phase indexes, `step11.md`, `step11-output.json`, and `corrections.md` Section 14. - - Preserve USER-DECISION-006: both normalized factor-one global FORCE and MOMENT balance gates are fixed inclusive `<=1e-8`; no `fesa.env`, config parsing, runtime API, CLI option, public API, HDF5 schema change or product solver acceptance behavior. - - Preserve exact formulas, sum-of-contribution scales, exact-zero rule, source identities, NSNR-069 free residual gates, `docs/TOLERANCE.md` separation, reference artifact immutability, local RF/RM review-only, U blocking, UR warning-only, and `RM3`/stress exclusions. - - Launch environment: Codex CLI `0.150.1`, app SHA-256 `CBD657DDFE151D1A6EBAD660BEFFDBD3265DC5AFF4B3A6095124D3E2F0156F2F`, `CODEX_HOME=C:\Users\baram\.codex`, `workspace-write`, hooks retained, implementation-agent `gpt-5.6-terra`/`xhigh`, `--disable unified_exec`, VsDevCmd Hostx64/x64 with approved dependency env vars and Ninja/MSVC Debug preset. - - Before nested Codex execution, after VsDevCmd/dependency setup, filter child PATH exactly with entries satisfying `$_ -and $_ -notmatch '\\WindowsApps(?:\\|$)'`; preflight must leave `pwsh` unresolved, resolve `powershell` to `C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe`, and print exact `FESA_CODEX_SHELL_SMOKE_OK` with exit `0`. - - Use the previously approved Step `11` only no-push wrapper/private single-step path that hard-stops before Step `12`; if only the public all-pending runner path is available and Step `12` cannot be blocked, stop and return to Coordinator. - - Preserve current dirty Step `11` implementation/test/comparator/CMake work and recovered RED->GREEN evidence; do not fabricate a new RED by reverting code. Run the Step `11` required focused/full VERIFY commands and let automatic hooks run. - - Current workdir: `C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson`. -- expected_outputs: - - `phases/nonlinear-static-newton-raphson/step11-output.json` - - Executor-owned phase metadata and Step `11` source/test/comparator commit if the Step passes - - No `implementation-report.md`, `build-test.md` or canonical `reference-comparison.md` in this Step -- acceptance_gate: Implementation/Harness returns Step `11` completed with output path/status/evidence/blockers, no push, Stop/focused CTest evidence green under `windows-msvc-ninja-debug`, fixed `<=1e-8` force/moment gates verified, reference artifact hashes/mtimes unchanged and `git diff -- reference` clean; Step `12` remains pending. -- stop_condition: Stop and return classified blocker if the same user-local WindowsApps `pwsh.exe`/`CreateProcessAsUserW` failure recurs after the all-WindowsApps filter, if any change beyond fixed `<=1e-8` is needed, if Step `12` would start, if push/`danger-full-access`/manual hook/reference solver/reference mutation is required, or if runner/source/test/phase/upstream/tolerance edits outside `step11.md` contract are needed. -- missing_evidence: Step `11` rerun owner return and Executor commit/status evidence. This Coordinator runtime has no callable `spawn_agent` tool (`tool_search` found no dispatch tool), so root/Executor launch is required. +- current_dispatch: `none` +- target_sub_agent: `none` +- required_inputs: 없음 +- expected_outputs: 없음 +- acceptance_gate: Step `12` may be dispatched only after a separate explicit Harness/Implementation execution request. It must produce actual-evidence-only `implementation-report.md`, `build-test.md` and `reference-comparison.md` per approved Step `12`; no Physics/Release before that evidence. +- stop_condition: Do not start Step `12`, Physics, Release, push, reference solver/artifact mutation, `danger-full-access`, `fesa.env` or runtime/product configuration from this audit. +- missing_evidence: Stage 6 closure documents remain absent: `implementation-report.md`, `build-test.md`, `reference-comparison.md`. ### Latest Sub-Agent Return -- target_sub_agent: `correction-agent` +- target_sub_agent: `implementation-agent` via Harness Executor - output_paths: - - `docs/nonlinear-static-newton-raphson/corrections.md` -- status: `corrected-for-implementation-rerun`; Coordinator decision `passed` + - `phases/nonlinear-static-newton-raphson/step11-output.json` +- status: Step `11` `completed`; Coordinator decision `passed` - evidence_summary: - - Coordinator/root verified `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A` and scoped `git diff --check` exit `0` with only LF/CRLF warning. - - Section 14 confirms the prior launch filter missed `C:\Users\baram\AppData\Local\Microsoft\WindowsApps`; filtering all entries matching `\\WindowsApps(?:\\|$)` makes `pwsh` unresolved, selects system Windows PowerShell and passes exact `FESA_CODEX_SHELL_SMOKE_OK`. - - Owner recorded recovered old-gate RED, `<=1e-8` GREEN, focused implementation/reference passes, Stop `302/302`, no blockers, no Harness phase/build/full CTest rerun, no commit/push, no reference mutation and no runner/source/test/CMake/phase/upstream/tolerance edits. + - Harness Step `11` succeeded with implementation commit `6dbf1b2` and metadata commit `c58ba9f`; current HEAD is `c58ba9f609acdaaaf126074d1eb2a52202e82cb8`. + - Phase index records Step `11` `completed` at `2026-08-28T09:22:33+0900` with summary; Step `12` remains `pending`; top phase remains `pending`. + - `step11-output.json` SHA-256 is `292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`, exitCode `0`, stderr empty, and command output shows system Windows PowerShell under the corrected PATH filter. + - Focused procedure/HDF5 verification passed `7/7`; focused `GlobalForceAndMoment` threshold tests passed `2/2`. + - Fresh natural Stop LastTest.log mtime `2026-08-28 09:22:32`: `302` testing entries, `302` `Test Passed.`, `0` failed markers; long `AuditsFinePrimaryAndCoarseCompanionArtifacts` and `BlocksOnGlobalBalanceAndAcceptedFreeResidual` passed; inclusive `1e-8` boundary and exact-zero tests passed. + - `LastTestsFailed.log` exists but is stale from `2026-08-28 07:57:35` prior RED and is not authoritative for this pass. + - Coordinator verified `tests/reference/nonlinear_static_reference_comparison.cpp:47` uses `1.0e-8`; no `fesa.env`/runtime config/product behavior was introduced. + - Reference diff is clean and the 12 current reference artifact hashes/length/mtimes match the recorded baselines supplied for this run. - blockers: - 없음 -- self_audit_findings: Coordinator accepts REWORK-009 as a report-only environment correction. It does not reopen Stage 4/5/6 semantics and does not itself complete Step `11`. -- return_contract_check: Return includes output path, status, evidence summary and blockers; owner scope was limited to `corrections.md` and root verified the hash. -- acceptance_evidence_check: The next eligible action is one bounded Step `11` only no-push Harness/Implementation rerun under the corrected all-WindowsApps child PATH filter. +- self_audit_findings: Coordinator accepts STEP11-EXECUTION-004 as a Step `11` pass. This does not pass the full Stage 6 gate because Step `12` evidence documents are intentionally absent and not authorized by this audit. +- return_contract_check: Return includes output path, completed status, evidence summary, commits and blockers. Executor-owned metadata and commits are present; no push occurred. +- acceptance_evidence_check: Do not start Step `12` automatically. Next eligible action is a separate explicit Step `12` Harness/Implementation execution request. ### USER-DECISION-004 Selected Path @@ -239,10 +232,11 @@ | 2026-08-28 | STEP11-EXECUTION-003 runtime/environment return and Coordinator audit | `needs-rework` | Step `11` only wrapper attempt 1 timed out and attempt 2 selected user-local WindowsApps `pwsh.exe`, producing `CreateProcessAsUserW failed: 5 (Access denied)` on every exec. Stop-hook CTest evidence nevertheless passed all `302/302`, including the Step `11` global balance/reference tests; Step `11` remains pending because the agent did not update status/summary and Executor did not commit. Root stopped retry 3 and cleaned PIDs `4240`/`12000`/`16924`. | `needs-correction` | Dispatch bounded report-only `correction-agent` for launch PATH filter diagnosis; no Step `11` rerun or Step `12` before correction return | | 2026-08-28 | REWORK-009 user-local WindowsApps `pwsh.exe` launch filter return and Coordinator audit | `passed` | Correction Agent returned `corrected-for-implementation-rerun`, blockers none, `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator/root verified Section 14: all PATH entries matching `\\WindowsApps(?:\\|$)` filtered, `pwsh` unresolved, system Windows PowerShell selected, exact `FESA_CODEX_SHELL_SMOKE_OK`, recovered RED->GREEN, focused passes, Stop `302/302`, no forbidden edits/execution/commit/push/reference mutation. | `needs-implementation` | Issue one bounded Step `11` only no-push rerun package using corrected launch PATH filter | | 2026-08-28 | STEP11-EXECUTION-004 all-WindowsApps-filter Step 11 rerun package | `in-progress` | Coordinator prepared bounded `implementation-agent`/Harness package: run only Step `11`, preserve fixed `<=1e-8` force/moment gates and all Stage 4/5/6 contracts, use Codex CLI `0.150.1` with `CODEX_HOME`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and child PATH filtered by `\\WindowsApps(?:\\|$)`. | `needs-implementation` | Root/Executor may launch Step `11` only; hard-stop before Step `12`; no push, `danger-full-access`, reference mutation/solver or manual hooks | +| 2026-08-28 | STEP11-EXECUTION-004 return and Coordinator audit | `passed` | Harness Step `11` completed with implementation commit `6dbf1b2`, metadata commit `c58ba9f`, phase completion `2026-08-28T09:22:33+0900`, Step `12` pending, clean worktree before Coordinator update, no push. Fresh LastTest.log mtime `2026-08-28 09:22:32` has `302/302` pass; focused procedure/HDF5 `7/7` and threshold `2/2` pass; stale LastTestsFailed.log is from prior RED; reference diff clean and reference artifacts unchanged by supplied hash/mtime evidence. | `needs-implementation` | Stop before Step `12`; await explicit Step `12` Harness/Implementation request | -- current_dispatch: `STEP11-EXECUTION-004-all-windowsapps-filter-step11-only-rerun-root-executor-required` +- current_dispatch: `none` - current_workflow_state: `needs-implementation` -- next_gate_requires_user_approval: `false` only for the delegated threshold-only Stage 4 -> Stage 5 -> Stage 6 planning/materialization -> Step `11` path; `true` for any change beyond fixed `<=1e-8` global force/moment balance gates, `fesa.env`/runtime config, formula/source identity/zero-scale/NSNR-069/HDF5/reference/TOLERANCE change, Step `12`, Physics or Release. +- next_gate_requires_user_approval: `true` for Step `12` Harness/Implementation execution and for any change beyond fixed `<=1e-8` global force/moment balance gates, `fesa.env`/runtime config, formula/source identity/zero-scale/NSNR-069/HDF5/reference/TOLERANCE change, Physics or Release. ## 5. Risk, Blocker, and User-Decision Register @@ -273,9 +267,9 @@ | REAPPROVAL-012 | planning-materialization | Passed under delegated USER-DECISION-006 authority: Planning owner returned `ready-for-implementation`, blockers none; `implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8`, `step12.md` `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`; Coordinator audit passed. | `implementation-planning-agent` / Coordinator | passed | | STEP11-EXECUTION-003 | implementation-dispatch | Needs rework: Step `11` only no-push wrapper attempt 1 timed out and attempt 2 hit inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe` with `CreateProcessAsUserW failed: 5`; Stop-hook CTest evidence passed `302/302`, but Step `11` status/summary/commit are absent. | `implementation-agent` / Harness Executor / Coordinator | needs-rework | | REWORK-009 | harness-environment | Passed: Correction Agent diagnosed the user-local WindowsApps `pwsh.exe` launch filter miss and proved an all-`WindowsApps` PATH-filter same-envelope shell smoke. Output `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`; changed `corrections.md` only; no runner/source/test/CMake/phase/upstream/reference/tolerance edits. | `correction-agent` / Coordinator | passed | -| STEP11-EXECUTION-004 | implementation-dispatch | In progress/dispatch-ready: one bounded Step `11` only no-push Harness rerun is authorized under corrected all-WindowsApps child PATH filter. Step `12` is not authorized; same WindowsApps `pwsh.exe` access-denied recurrence must stop without automatic retry. | `implementation-agent` / Harness Executor / Coordinator | in-progress | -| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed Stage 4, Stage 5, Stage 6 planning and REWORK-009 profile dispatches; the current Step `11` rerun package is ready, but root/Executor launch is still required before owner evidence can be produced. | coordinator/root tooling | open-root-executor-required | -| AUDIT-001 | projection-implementation | Stage 5 `io.md` now separates global applied+reaction balance error, constrained reaction resultant and accepted free residual as distinct deterministic HDF5 projections. Stage 6 planning/implementation must still update tests/implementation so `/global/equilibrium` uses current nodal positions and spatial physical nodal moments about global origin instead of raw full residual, initial coordinates or raw rotational residual shortcuts for general supported nonzero prescribed displacement/rotation cases. | `implementation-planning-agent` / `implementation-agent` | open | +| STEP11-EXECUTION-004 | implementation-dispatch | Passed: Step `11` completed and committed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`; metadata commit `c58ba9f`; focused and Stop evidence passed; Step `12` remains pending and unstarted. | `implementation-agent` / Harness Executor / Coordinator | passed | +| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed Stage 4, Stage 5, Stage 6 planning, REWORK-009 and Step `11` Executor/profile dispatches. No active dispatch remains. | coordinator/root tooling | closed-no-current-dispatch | +| AUDIT-001 | projection-implementation | Passed by STEP11-EXECUTION-004: `/global/equilibrium` and reference comparator tests cover current nodal positions, spatial physical nodal moments about global origin, distinct global balance/free residual projections, and nonzero prescribed motion without raw full residual/initial-coordinate shortcut. | `implementation-planning-agent` / `implementation-agent` | passed | | MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | | TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | | USER-DECISION-002 | user decision | User explicitly chose option A: approve Ninja/MSVC evidence contract for Stage 6 continuation. Option B `danger-full-access` and option C external sandbox wait are not selected. | user via Coordinator | closed | @@ -340,8 +334,8 @@ - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. -- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, and REWORK-009 is now passed. STEP11-EXECUTION-004 is the only active implementation dispatch; same WindowsApps `pwsh.exe` access-denied recurrence after the corrected filter stops without another automatic retry. -- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, and REWORK-009 environment correction is passed. Current delegated order is Step `11` no-push Harness/Implementation rerun with corrected all-WindowsApps filter. No intermediate user approval wait is required within the fixed `<=1e-8` global force/moment threshold scope, but runner/test/source/phase/upstream/reference/tolerance edits require separate approval. +- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, and STEP11-EXECUTION-004 passed. No active correction loop remains. +- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, and Step `11` implementation is passed. Current workflow stops before Step `12`; Step `12` requires a separate explicit Harness/Implementation request. ## 7. Final Workflow Closure @@ -351,12 +345,12 @@ ## 8. No-Change Assertion -- source_code: Steps 0..10 implementation source changes are committed through Harness; current Step 11 uncommitted implementation edits are preserved, including USER-DECISION-005A current-arm/spatial projection and USER-DECISION-006 fixed `<=1e-8` global balance work. Coordinator did not edit source code. -- tests: Current Step 11 uncommitted comparator/test edits are preserved. Recovered rollout evidence shows old-gate RED failure, minimal GREEN for `<=1e-8`, focused procedure/writer/log/reference tests passing, and latest Stop-hook CTest evidence `302/302` passed. Coordinator did not edit tests. -- CMake: Step 11 owner modified `tests/CMakeLists.txt`; REWORK-006 added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation. Coordinator did not edit CMake configuration. +- source_code: Steps 0..11 implementation source changes are committed through Harness; Step `11` implementation commit is `6dbf1b2`. Coordinator did not edit source code. +- tests: Step `11` comparator/test changes are committed through Harness. Focused procedure/HDF5 `7/7`, threshold `2/2`, and fresh Stop `302/302` passed. Coordinator did not edit tests. +- CMake: Step `11` owner committed `tests/CMakeLists.txt` changes; REWORK-006 added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation. Coordinator did not edit CMake configuration. - reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 -- phase_files: REAPPROVAL-012 Planning owner updated `phases/index.json` and `phases/nonlinear-static-newton-raphson/index.json`; top phase is now `pending`, Steps 0..10 remain completed with existing metadata, Step 11 is `pending` as `equilibrium-projection-and-reference-gate` with historical `started_at=2026-08-24T15:49:08+09:00` retained, and Step 12 is pending. Coordinator did not edit phase files. -- Harness: Historical Step `11` executions include DECISION-042 timeout, USER-DECISION-005A `1e-10` global-moment blocker, then REAPPROVAL-012 reset for fixed `<=1e-8`. STEP11-EXECUTION-003 did not complete Harness metadata because nested Codex selected inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe`; REWORK-009 is now passed and STEP11-EXECUTION-004 is the active Step `11` rerun package with all-WindowsApps child PATH filtering. Step `11` and top phase remain `pending`; Step `12` remains pending and outside the active dispatch. Coordinator did not run Harness/phase/build/test command, advance Step 12, use `danger-full-access`, clean build outputs, commit or push. +- phase_files: Metadata commit `c58ba9f` records Step `11` `completed` with summary and `completed_at=2026-08-28T09:22:33+0900`; Steps 0..10 remain completed, Step `12` remains pending, and top phase remains pending. Coordinator did not edit phase files. +- Harness: STEP11-EXECUTION-004 completed with all-WindowsApps child PATH filtering under Codex CLI `0.150.1`; no push occurred and worktree was clean before Coordinator update. Historical DECISION-042 timeout, USER-DECISION-005A `1e-10` global-moment blocker and STEP11-EXECUTION-003 environment failure remain historical only. Step `12` remains pending and outside this audit. Coordinator did not run Harness/phase/build/test command, advance Step 12, use `danger-full-access`, clean build outputs, commit or push. - feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` SHA-256 `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index SHA-256 `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. Implementation Agent created only `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`. This coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, and canonical `reference-comparison.md` are still absent. - correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. From d275e844f27107cfab52309025e259f2156345d2 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 19:43:40 +0900 Subject: [PATCH 26/32] docs(nonlinear-static-newton-raphson): authorize step 12 execution --- .../coordination.md | 55 ++++++++++++------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index 6c4c4a6..289f4a5 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -6,13 +6,13 @@ - workflow_state: `needs-implementation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-28` (STEP11-EXECUTION-004 passed; awaiting explicit Step 12 execution request) +- last_updated: `2026-08-28` (Step 12 execution explicitly approved; bounded evidence-closure dispatch package prepared) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Step `11` is completed and committed; stop before Step `12`, Physics and Release. Await explicit Step `12` Harness/Implementation execution request for evidence-doc closure. -- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O, Stage 6 Implementation Planning materialization, then Step `11` only no-push Harness/Implementation under Codex CLI `0.150.1` USER-DECISION-005A envelope. No push, no `danger-full-access`, no reference mutation/solver and no Step `12` auto-advance. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. +- current_goal: Run bounded Step `12` Harness/Implementation evidence-doc closure from clean HEAD `af5d722` after explicit user approval; do not dispatch Physics/Release until Stage 6 canonical reports pass Coordinator audit. +- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Step `11` completed under Codex CLI `0.150.1` USER-DECISION-005A envelope, and Step `12` is now separately authorized for evidence-doc closure only. No push, no `danger-full-access`, no reference mutation/solver and no automatic advance beyond the recorded Step `12` dispatch. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -24,7 +24,7 @@ | 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | §14.1만 USER-DECISION-003 option 1로 갱신하고 strong/weak form, kinematics, tangent/residual, integration, state/recovery, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure를 보존함 | Owner returned `ready-for-coordinator-and-user-reapproval`, SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, §14.1-only diff `34` additions/`5` deletions, revised requirements hash matched, 13/13 contract assertions and diff check passed, no other owner file changes. Coordinator audit passed and user explicitly re-approved this hash on 2026-08-24: exact-zero branch selector is matching external residual-channel scale, nonzero external scale retains relative `max(internal, external)` denominator and `1e-2`, typed absolutes remain `1e-3`, correction gates/four-channel AND/lifecycle/reference disposition unchanged. | 없음 | 3 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | USER-DECISION-006 delegated reapproval: both normalized factor-one global FORCE and MOMENT balance gates are fixed `<=1e-8`, with exact formulas, sum-of-contribution scales, zero-scale rule, source identity and USER-DECISION-004 dispositions preserved | Owner returned `pass-for-io-definition`, blockers none. Coordinator audit verified hashes `numerical-review.md` `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; both reports record global force/moment normalized gate `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, 12 reference hashes/length/mtime unchanged, fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and `RM3`/stress excluded. Root independently verified hashes, target occurrences and `git diff --check` with only LF/CRLF warnings. | 없음 | 6 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `11` passed; Stage 6 still requires Step `12` evidence-doc closure before Physics eligibility | STEP11-EXECUTION-004 completed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`, metadata commit `c58ba9f`, HEAD `c58ba9f609acdaaaf126074d1eb2a52202e82cb8`, branch `feat-nonlinear-static-newton-raphson`, no push and clean worktree before Coordinator update. Step `11` completed at `2026-08-28T09:22:33+0900`; Step `12` remains pending; top phase remains pending. Coordinator audit verified `step11-output.json` SHA-256 `292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`, focused procedure/HDF5 `7/7`, threshold `2/2`, fresh natural Stop LastTest.log mtime `2026-08-28 09:22:32` with `302` entries, `302` `Test Passed.` and `0` failed markers, plus long fine/coarse and global-balance tests passed. | Step `12` evidence docs are absent and not authorized in this audit | 34 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `12` evidence-doc closure must follow `phases/nonlinear-static-newton-raphson/step12.md` exactly and may create canonical Stage 6 reports plus minimal directly-superseded PRD/ARCHITECTURE/ADR sync only | User explicitly approved Step `12` execution. Coordinator audit verified clean worktree, branch `feat-nonlinear-static-newton-raphson`, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`, Step `11` completed, Step `12` pending, canonical reports absent, and Step `12` contract allowing `implementation-report.md`, `build-test.md`, `reference-comparison.md` plus minimal PRD/ARCHITECTURE/ADR sync while forbidding C++/tests/CMake/Harness/reference/tolerance changes. Initial push of `af5d722` failed remote authentication; record as external push evidence, not Step `12` scope expansion. | Step `12` owner return missing; Physics/Release ineligible until Stage 6 reports pass Coordinator audit | 35 | | 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | @@ -33,13 +33,25 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `none` -- target_sub_agent: `none` -- required_inputs: 없음 -- expected_outputs: 없음 -- acceptance_gate: Step `12` may be dispatched only after a separate explicit Harness/Implementation execution request. It must produce actual-evidence-only `implementation-report.md`, `build-test.md` and `reference-comparison.md` per approved Step `12`; no Physics/Release before that evidence. -- stop_condition: Do not start Step `12`, Physics, Release, push, reference solver/artifact mutation, `danger-full-access`, `fesa.env` or runtime/product configuration from this audit. -- missing_evidence: Stage 6 closure documents remain absent: `implementation-report.md`, `build-test.md`, `reference-comparison.md`. +- current_dispatch: `STEP12-EXECUTION-001-evidence-doc-closure-root-executor-required` +- target_sub_agent: `implementation-agent` via Harness Executor +- required_inputs: + - Use `fesa-cpp-msvc-tdd` and project-local `harness`; execute only pending Step `12` `execution-closure-and-evidence-docs`. + - Runner command: `python scripts/execute.py phases/nonlinear-static-newton-raphson` with the already approved Step `12` boundary; if the local runner requires the slug form, use the equivalent verified command for exactly this phase and record it in the owner return. + - Read `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.codex/hooks.json`, `docs/nonlinear-static-newton-raphson/coordination.md`, approved Stage 1-6 docs, phase indexes, Step `11` output/evidence, and `phases/nonlinear-static-newton-raphson/step12.md`. + - Starting state: clean worktree, branch `feat-nonlinear-static-newton-raphson`, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`; Step `11` completed, Step `12` pending, top phase pending. + - Runtime envelope: Codex CLI `0.150.1`, all-WindowsApps child PATH filter, system Windows PowerShell, `workspace-write`, hooks retained, VsDevCmd x64, required dependency vars, and `windows-msvc-ninja-debug` preset. + - Allowed outputs only: `docs/nonlinear-static-newton-raphson/implementation-report.md`, `docs/nonlinear-static-newton-raphson/build-test.md`, `docs/nonlinear-static-newton-raphson/reference-comparison.md`, minimal directly-superseded `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, Executor-owned phase metadata/step output and local commits. + - User requested final commits and push, but initial push of `af5d722` failed remote authentication. Push/auth failure is external to Step `12` evidence; do not change credentials, remotes, branch history or broaden implementation scope to make push work. +- expected_outputs: + - `docs/nonlinear-static-newton-raphson/implementation-report.md` + - `docs/nonlinear-static-newton-raphson/build-test.md` + - `docs/nonlinear-static-newton-raphson/reference-comparison.md` + - optional minimal directly-superseded updates to `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md` + - `phases/nonlinear-static-newton-raphson/step12-output.json`, Step `12` metadata and local Executor commits +- acceptance_gate: Step `12` returns `completed` with actual-evidence-only reports, fresh configure/build/discovery/focused/full CTest evidence, `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`, reference artifact hashes/mtimes unchanged, `git diff -- reference` clean, no C++/tests/CMake/Harness/tolerance changes and no Physics/Release dispatch. +- stop_condition: Stop and return classified blocker if Step `12` needs C++/tests/CMake/Harness/reference/tolerance changes, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, `danger-full-access`, manual hook invocation, unapproved scope beyond minimal PRD/ARCHITECTURE/ADR sync, or if push fails due remote authentication after local evidence/commits. +- missing_evidence: Step `12` owner return, canonical Stage 6 reports, final local commit/push status. ### Latest Sub-Agent Return @@ -48,7 +60,7 @@ - `phases/nonlinear-static-newton-raphson/step11-output.json` - status: Step `11` `completed`; Coordinator decision `passed` - evidence_summary: - - Harness Step `11` succeeded with implementation commit `6dbf1b2` and metadata commit `c58ba9f`; current HEAD is `c58ba9f609acdaaaf126074d1eb2a52202e82cb8`. + - Harness Step `11` succeeded with implementation commit `6dbf1b2` and metadata commit `c58ba9f`; subsequent Coordinator audit commit advanced current HEAD to `af5d72233c2bcd00edc087531d10eb92f7232d3e`. - Phase index records Step `11` `completed` at `2026-08-28T09:22:33+0900` with summary; Step `12` remains `pending`; top phase remains `pending`. - `step11-output.json` SHA-256 is `292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`, exitCode `0`, stderr empty, and command output shows system Windows PowerShell under the corrected PATH filter. - Focused procedure/HDF5 verification passed `7/7`; focused `GlobalForceAndMoment` threshold tests passed `2/2`. @@ -58,9 +70,9 @@ - Reference diff is clean and the 12 current reference artifact hashes/length/mtimes match the recorded baselines supplied for this run. - blockers: - 없음 -- self_audit_findings: Coordinator accepts STEP11-EXECUTION-004 as a Step `11` pass. This does not pass the full Stage 6 gate because Step `12` evidence documents are intentionally absent and not authorized by this audit. +- self_audit_findings: Coordinator accepts STEP11-EXECUTION-004 as a Step `11` pass. This does not pass the full Stage 6 gate because Step `12` evidence documents are still absent; user has now separately authorized the bounded STEP12-EXECUTION-001 evidence-doc closure. - return_contract_check: Return includes output path, completed status, evidence summary, commits and blockers. Executor-owned metadata and commits are present; no push occurred. -- acceptance_evidence_check: Do not start Step `12` automatically. Next eligible action is a separate explicit Step `12` Harness/Implementation execution request. +- acceptance_evidence_check: User now explicitly approved Step `12`; STEP12-EXECUTION-001 is the active bounded dispatch, but Coordinator does not run Harness/CTest/commit/push. ### USER-DECISION-004 Selected Path @@ -233,10 +245,11 @@ | 2026-08-28 | REWORK-009 user-local WindowsApps `pwsh.exe` launch filter return and Coordinator audit | `passed` | Correction Agent returned `corrected-for-implementation-rerun`, blockers none, `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator/root verified Section 14: all PATH entries matching `\\WindowsApps(?:\\|$)` filtered, `pwsh` unresolved, system Windows PowerShell selected, exact `FESA_CODEX_SHELL_SMOKE_OK`, recovered RED->GREEN, focused passes, Stop `302/302`, no forbidden edits/execution/commit/push/reference mutation. | `needs-implementation` | Issue one bounded Step `11` only no-push rerun package using corrected launch PATH filter | | 2026-08-28 | STEP11-EXECUTION-004 all-WindowsApps-filter Step 11 rerun package | `in-progress` | Coordinator prepared bounded `implementation-agent`/Harness package: run only Step `11`, preserve fixed `<=1e-8` force/moment gates and all Stage 4/5/6 contracts, use Codex CLI `0.150.1` with `CODEX_HOME`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and child PATH filtered by `\\WindowsApps(?:\\|$)`. | `needs-implementation` | Root/Executor may launch Step `11` only; hard-stop before Step `12`; no push, `danger-full-access`, reference mutation/solver or manual hooks | | 2026-08-28 | STEP11-EXECUTION-004 return and Coordinator audit | `passed` | Harness Step `11` completed with implementation commit `6dbf1b2`, metadata commit `c58ba9f`, phase completion `2026-08-28T09:22:33+0900`, Step `12` pending, clean worktree before Coordinator update, no push. Fresh LastTest.log mtime `2026-08-28 09:22:32` has `302/302` pass; focused procedure/HDF5 `7/7` and threshold `2/2` pass; stale LastTestsFailed.log is from prior RED; reference diff clean and reference artifacts unchanged by supplied hash/mtime evidence. | `needs-implementation` | Stop before Step `12`; await explicit Step `12` Harness/Implementation request | +| 2026-08-28 | STEP12-EXECUTION-001 evidence-doc closure dispatch package | `in-progress` | User explicitly approved Step `12` execution. Coordinator verified clean worktree, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`, Step `11` completed, Step `12` pending, canonical reports absent and Step `12` scope: create actual-evidence-only `implementation-report.md`, `build-test.md`, `reference-comparison.md`, plus minimal directly-superseded PRD/ARCHITECTURE/ADR sync only. | `needs-implementation` | Root/Executor may run Step `12` under the prior successful Codex `0.150.1` all-WindowsApps-filter envelope; C++/tests/CMake/Harness/reference/tolerance changes, reference solver, Physics/Release dispatch and Coordinator execution remain forbidden | -- current_dispatch: `none` +- current_dispatch: `STEP12-EXECUTION-001-evidence-doc-closure-root-executor-required` - current_workflow_state: `needs-implementation` -- next_gate_requires_user_approval: `true` for Step `12` Harness/Implementation execution and for any change beyond fixed `<=1e-8` global force/moment balance gates, `fesa.env`/runtime config, formula/source identity/zero-scale/NSNR-069/HDF5/reference/TOLERANCE change, Physics or Release. +- next_gate_requires_user_approval: `false` for STEP12-EXECUTION-001 within the explicitly approved evidence-doc closure package; `true` for C++/tests/CMake/Harness/reference/tolerance changes, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, push credential/remote/history changes, Physics or Release. ## 5. Risk, Blocker, and User-Decision Register @@ -268,7 +281,9 @@ | STEP11-EXECUTION-003 | implementation-dispatch | Needs rework: Step `11` only no-push wrapper attempt 1 timed out and attempt 2 hit inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe` with `CreateProcessAsUserW failed: 5`; Stop-hook CTest evidence passed `302/302`, but Step `11` status/summary/commit are absent. | `implementation-agent` / Harness Executor / Coordinator | needs-rework | | REWORK-009 | harness-environment | Passed: Correction Agent diagnosed the user-local WindowsApps `pwsh.exe` launch filter miss and proved an all-`WindowsApps` PATH-filter same-envelope shell smoke. Output `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`; changed `corrections.md` only; no runner/source/test/CMake/phase/upstream/reference/tolerance edits. | `correction-agent` / Coordinator | passed | | STEP11-EXECUTION-004 | implementation-dispatch | Passed: Step `11` completed and committed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`; metadata commit `c58ba9f`; focused and Stop evidence passed; Step `12` remains pending and unstarted. | `implementation-agent` / Harness Executor / Coordinator | passed | -| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed Stage 4, Stage 5, Stage 6 planning, REWORK-009 and Step `11` Executor/profile dispatches. No active dispatch remains. | coordinator/root tooling | closed-no-current-dispatch | +| STEP12-EXECUTION-001 | implementation-dispatch | In progress/dispatch-ready: user approved Step `12` evidence-doc closure. Allowed outputs are canonical Stage 6 reports, minimal PRD/ARCHITECTURE/ADR sync, Executor-owned metadata/output and local commits; C++/tests/CMake/Harness/reference/tolerance changes and Physics/Release dispatch are forbidden. | `implementation-agent` / Harness Executor / Coordinator | in-progress | +| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed prior profile dispatches; the current Step `12` dispatch package is ready, but root/Executor launch is required before owner evidence can be produced. | coordinator/root tooling | open-root-executor-required | +| PUSH-001 | external-push | User requested final commits and push, but initial push of `af5d722` failed remote authentication. This is external to Step `12` evidence and must not alter credentials, remotes, branch history or implementation scope. | root/user remote auth | open | | AUDIT-001 | projection-implementation | Passed by STEP11-EXECUTION-004: `/global/equilibrium` and reference comparator tests cover current nodal positions, spatial physical nodal moments about global origin, distinct global balance/free residual projections, and nonzero prescribed motion without raw full residual/initial-coordinate shortcut. | `implementation-planning-agent` / `implementation-agent` | passed | | MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | | TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | @@ -334,8 +349,8 @@ - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. -- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, and STEP11-EXECUTION-004 passed. No active correction loop remains. -- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, and Step `11` implementation is passed. Current workflow stops before Step `12`; Step `12` requires a separate explicit Harness/Implementation request. +- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, and STEP11-EXECUTION-004 passed. STEP12-EXECUTION-001 is active; no correction loop is active. +- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, Step `11` implementation is passed and Step `12` is explicitly authorized for evidence-doc closure. Physics/Release remain ineligible until Step `12` owner return and Coordinator audit pass. ## 7. Final Workflow Closure @@ -351,6 +366,6 @@ - reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 - phase_files: Metadata commit `c58ba9f` records Step `11` `completed` with summary and `completed_at=2026-08-28T09:22:33+0900`; Steps 0..10 remain completed, Step `12` remains pending, and top phase remains pending. Coordinator did not edit phase files. -- Harness: STEP11-EXECUTION-004 completed with all-WindowsApps child PATH filtering under Codex CLI `0.150.1`; no push occurred and worktree was clean before Coordinator update. Historical DECISION-042 timeout, USER-DECISION-005A `1e-10` global-moment blocker and STEP11-EXECUTION-003 environment failure remain historical only. Step `12` remains pending and outside this audit. Coordinator did not run Harness/phase/build/test command, advance Step 12, use `danger-full-access`, clean build outputs, commit or push. +- Harness: STEP11-EXECUTION-004 completed with all-WindowsApps child PATH filtering under Codex CLI `0.150.1`; no push occurred and worktree was clean before Coordinator update. STEP12-EXECUTION-001 is now dispatch-ready under the same envelope. Coordinator did not run Harness/phase/build/test command, advance Physics/Release, use `danger-full-access`, clean build outputs, commit or push. - feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` SHA-256 `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index SHA-256 `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. Implementation Agent created only `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`. This coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, and canonical `reference-comparison.md` are still absent. - correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. From bf9487efc282d04f6e5d34f0c7a1c7788689adc9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 21:08:58 +0900 Subject: [PATCH 27/32] feat(nonlinear-static-newton-raphson): step 12 - execution-closure-and-evidence-docs --- docs/ADR.md | 27 +++++ docs/ARCHITECTURE.md | 35 +++++- docs/PRD.md | 30 ++++- .../build-test.md | 44 +++++++ .../implementation-report.md | 84 ++++++++++++++ .../reference-comparison.md | 108 ++++++++++++++++++ 6 files changed, 317 insertions(+), 11 deletions(-) create mode 100644 docs/nonlinear-static-newton-raphson/build-test.md create mode 100644 docs/nonlinear-static-newton-raphson/implementation-report.md create mode 100644 docs/nonlinear-static-newton-raphson/reference-comparison.md diff --git a/docs/ADR.md b/docs/ADR.md index 82238ca..4ffd9b1 100644 --- a/docs/ADR.md +++ b/docs/ADR.md @@ -346,3 +346,30 @@ gate와 family RMS gate를 모두 유지해야 한다. Reference family 전체 MITC4 verification report 및 comparator schema는 새 정책에 맞춰 다시 생성해야 하지만 reference artifact, HDF5 schema, element formulation과 blocking/warning 분류는 변경하지 않는다. + +### ADR-023: Nonlinear Static은 prepared dispatch와 accepted-frame evidence로 분리한다 + +**결정**: CLI는 하나의 `.inp` operand만 받고 input lexical sibling +`_results.h5`와 `_log.txt`를 유도한다. `--output`은 지원하지 않는다. +`PrepareAnalysisInput()`이 syntax/semantic map을 한 번만 수행하고, prepared Domain의 +procedure identity가 linear static 또는 separate nonlinear full-Newton procedure를 선택한다. +Nonlinear procedure는 trial/committed state, unsymmetric tangent solver와 iteration log를 +독립적으로 소유하며 log close 뒤에만 schema-v1 HDF5 writer가 accepted frames를 atomic publish한다. + +schema-v1 `/global/equilibrium`의 six values는 global origin `[0,0,0]`에서 current `X+u` +force arm과 spatial physical nodal moments를 쓴 applied-plus-constrained-reaction balance +error다. Accepted free generalized residual과 constrained-reaction resultant는 distinct +projections이며 result dataset을 서로 대체하지 않는다. Nonlinear reference portfolio는 fine +primary `shellNL-meshfine`, coarse companion `shellNL`, linear control `shell`을 분리한다. +External U is blocking, UR is warning-only, local RF/RM is review-only, and RM3/stress is excluded; +the factor-one internal global force/moment balance and accepted free residual remain blocking. + +**이유**: Input parse, linear lifecycle, nonlinear trial state와 writer finalization을 한 +procedure에 섞으면 output lifetime과 failure atomicity를 검증할 수 없다. Applied-plus-reaction +balance, constrained reaction과 free residual을 구분하면 nonzero prescribed translation/rotation +case에서도 force arm, mask와 rotation-coordinate conversion의 의미가 보존된다. + +**트레이드오프**: Nonlinear path는 linear procedure보다 state/backend/writer 수가 늘고 fine +reference run 시간이 길다. 대신 HDF5 authoritative output, immutable CSV artifact와 external +solver internal-algorithm non-equivalence 원칙을 유지하며 local support-force distribution을 +blocking tolerance로 위장하지 않는다. diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index d2de1c8..1a9e02a 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -317,9 +317,25 @@ Abaqus input file -> LinearSolver::solve(rhs, df) substitution -> full displacement 복구 -> full residual/reaction = K*d - F 및 ElementResultBundle 복구 --> ResultsWriter로 results.h5 atomic finalization +-> ResultsWriter로 derived `_results.h5` atomic finalization ``` +### 승인된 Nonlinear Static 경로 + +`PrepareAnalysisInput()`은 input syntax와 semantic Domain을 정확히 한 번 만든다. +`ExecutePreparedAnalysis()`는 sole static step의 procedure identity로 linear static 또는 +nonlinear static executor를 선택하며 두 procedure의 mutable state를 공유하지 않는다. +Nonlinear executor는 committed/trial `NonlinearAnalysisState`, full unsymmetric CSR tangent +solver와 closed-before-finalization Newton iteration log를 소유한다. Completion 뒤 +`FinalizePreparedAnalysisResult()`가 selected backend-neutral writer로 only accepted frames를 +atomic finalization한다. + +Nonlinear schema v1의 factor-one `/global/equilibrium`은 raw full-residual sum이 아니라 +global origin `[0,0,0]`에서 current `X+u` force arm과 independently spatialized applied and +masked constrained-reaction moments를 합한 applied-plus-reaction balance error다. Accepted +free residual은 generalized residual의 free mask projection이고 constrained-reaction resultant는 +별도 review summary다. 어느 quantity도 다른 quantity의 substitute가 아니다. + 강성행렬 factorization은 하중벡터 조립보다 먼저 수행한다. 반력은 element end action의 별도 합이 아니라 조립된 전체 residual에서 구한다. Constrained component는 physical reaction이고 free component는 equilibrium residual evidence로 full-index vector에 남긴다. @@ -400,7 +416,8 @@ Schema requirements: - schema version, units, coordinate system, solver version, source input identity를 metadata에 기록한다. - field output과 history output을 구분한다. - reference comparison을 위한 row identity는 node id, element id, integration point id, step/frame id를 포함한다. -- FESA solver는 `results.h5`를 authoritative output으로 쓴다. +- FESA solver는 input lexical sibling `_results.h5`를 authoritative output으로 쓰며, + 같은 directory의 `_log.txt`는 procedure log다. - Abaqus reference results는 기능 문서가 선언한 기존 CSV 파일이다. Directory/file naming, README, metadata 또는 provenance는 architecture readiness 조건이 아니다. - Verification은 기능이 요구하는 source identity와 component를 결정적으로 대응시키고 @@ -410,7 +427,7 @@ Schema requirements: - Writer는 final과 같은 directory의 임시 HDF5에 전체 schema를 쓴 뒤 flush, checked close, read-only reopen/self-check를 수행한다. Existing final은 `ReplaceFileW`, 새 final은 `MoveFileExW(..., MOVEFILE_WRITE_THROUGH)`로 완료하며 실패 시 temporary artifact를 - 정리하고 불완전한 파일을 정상 `results.h5`로 노출하지 않는다. + 정리하고 불완전한 파일을 정상 `_results.h5`로 노출하지 않는다. ## V0 결과 복구와 reference normalization @@ -438,10 +455,11 @@ Schema requirements: ## CLI와 diagnostics ```powershell -fesa.exe --output +fesa.exe ``` -`--output`을 생략하면 현재 작업 디렉터리의 `results.h5`를 사용한다. Exit code는 +CLI는 input과 같은 lexical sibling directory에 `_results.h5`와 +`_log.txt`를 유도하고 `--output`을 거부한다. Exit code는 `0=success`, `2=usage`, `3=input syntax/semantic mapping`, `4=model validation`, `5=factorization/substitution`, `6=HDF5 output`으로 고정한다. Diagnostic은 `severity`, `code`, `file`, `line`, `keyword`, `entity_identity`, `message`를 가지며 stderr에 @@ -479,3 +497,10 @@ displacement CSV만 사용한다. Global `U1/U2/U3` translation family만 blocki family-scale row/RMS 정책을 사용한다. S4R은 같은 kernel을 선택하는 source mapping과 metadata를 unit/integration tests로 검증하며 `reference/shellR/` artifact는 acceptance comparison에 포함하지 않는다. + +Approved nonlinear MITC4 verification은 `reference/shellNL-meshfine/` fine primary, +`reference/shellNL/` coarse companion과 `reference/shell/` linear control을 각각 독립 +copied-input directory에서 실행한다. Factor-one global force/moment balance와 accepted free +residual은 blocking internal evidence다. External `U1/U2/U3`는 blocking, `UR1/UR2/UR3`는 +warning-only이며 local nodal `RF1/RF2/RF3/RM1/RM2`는 deterministic review-only evidence다; +`RM3`와 stress는 nonlinear numerical comparison에서 제외한다. diff --git a/docs/PRD.md b/docs/PRD.md index 4eae466..71b3964 100644 --- a/docs/PRD.md +++ b/docs/PRD.md @@ -2,7 +2,7 @@ ## 목표 FESA는 Abaqus `.inp` keyword subset을 입력으로 받아 자체 유한요소 정식화로 구조해석을 -수행하고, step/frame 단위 결과를 `results.h5` HDF5로 저장하며, 기능이 지정한 Abaqus +수행하고, step/frame 단위 결과를 input lexical sibling `_results.h5` HDF5로 저장하며, 기능이 지정한 Abaqus reference CSV 수치와 비교 가능한 C++17/MSVC 솔버를 제공한다. Abaqus의 요소 알고리즘, 적분법, stabilization 또는 내부 결과 생성 절차를 재현하는 것은 목표가 아니다. @@ -36,7 +36,7 @@ Element/material 계층의 일반적인 runtime polymorphism, iterative solver, 2. FESA는 syntax를 읽은 뒤 semantic mapping과 model validation을 수행한다. 지원하지 않는 모델 의미는 구조화된 diagnostic과 안정된 exit code로 거부한다. 3. 해석 procedure는 active model view, DOF/equation map과 sparse system을 만들고, essential constraint elimination을 적용해 선형계를 factorize하고 substitution한다. 4. FESA는 full displacement를 복구하고 equilibrium residual/reaction과 element 결과를 계산한다. -5. 성공 시 output request와 무관한 mandatory 결과, metadata와 diagnostic을 versioned `results.h5`에 기록한다. 실패 시 불완전한 최종 결과 파일을 정상 결과처럼 남기지 않는다. +5. 성공 시 output request와 무관한 mandatory 결과, metadata와 diagnostic을 versioned lexical sibling `_results.h5`에 기록한다. 실패 시 불완전한 최종 결과 파일을 정상 결과처럼 남기지 않는다. 6. 검증 workflow는 기능이 지정한 HDF5 quantity를 기존 Abaqus CSV의 source identity와 component에 대응시켜 tolerance를 판정하고, 별도로 equilibrium과 물리적 타당성을 검토한다. Reference bundle naming이나 provenance는 수치 비교 gate가 아니다. @@ -76,10 +76,27 @@ Parser keyword, element kernel, solver backend 또는 output dataset 중 하나 - displacements, reactions, equilibrium end actions, section resultants, generalized results, axial `S11` output - HDF5 result schema v0 -- `fesa.exe --output ` CLI +- `fesa.exe ` CLI with lexical sibling result/log names - 승인된 `reference/cantilever beam/` B33 결과와 displacement, reaction, section resultant comparison; beam stress reference comparison은 N/A +## 승인된 Nonlinear Static 확장 + +- `*STATIC, NLGEOM=YES` 단일 step은 parse/map을 정확히 한 번 수행한 뒤 linear static과 + 분리된 full-Newton procedure로 dispatch한다. Nonlinear path는 별도 mutable state, + unsymmetric tangent solver, iteration log writer와 schema-v1 HDF5 writer를 사용한다. +- CLI는 정확히 하나의 ``만 받고 `_results.h5`와 `_log.txt`를 같은 + lexical sibling directory에 유도한다. `--output`은 지원하지 않는다. +- Nonlinear HDF5 schema v1은 committed accepted frame만 기록한다. factor-zero는 metadata + baseline이며 accepted frame이 아니고, successful factor-one row는 unique + `load_factor=1.0` accepted frame이다. +- Factor-one `/global/equilibrium`은 global origin에서 current `X+u` arm과 spatial physical + moment를 사용한 applied-plus-constrained-reaction balance error다. Accepted free residual과 + constrained-reaction resultant는 그 dataset의 대체 quantity가 아니다. +- `shellNL-meshfine`는 primary nonlinear case, `shellNL`은 companion, `shell`은 linear + regression control이다. `U1/U2/U3`는 blocking, `UR1/UR2/UR3`는 warning-only이며 local + `RF/RM`은 review-only (`RM3` 및 stress 제외)로 비교한다. + ## 신규 기능의 제품 완료 정의 새로운 element, load, constraint, material, analysis procedure 또는 output quantity는 다음 조건을 모두 만족할 때 FESA 제품 기능으로 취급한다. @@ -102,7 +119,7 @@ Parser keyword, element kernel, solver backend 또는 output dataset 중 하나 | FESA-PRD-003 | FESA는 현재 step의 실행 view를 `AnalysisModel`로 구성해야 한다. | active elements, loads, boundary conditions, properties/materials가 Domain 복사 없이 참조 또는 id view로 연결된다. | analysis model unit test | | FESA-PRD-004 | FESA는 equation numbering과 constraint/free mapping을 `DofManager`에 집중해야 한다. | Node/Element 내부에 equation id를 분산 저장하지 않는다. | code review, DofManager unit test | | FESA-PRD-005 | FESA는 해석 중 변하는 물리량을 `AnalysisState`에 저장해야 한다. | V0 displacement, external/internal force, residual, constrained reaction, step/frame identity와 element recovery rows가 출력에 연결되고 velocity, acceleration, temperature, iteration history는 할당하지 않는다. | state unit test, integration test | -| FESA-PRD-006 | FESA는 solver 결과를 HDF5 authoritative output `results.h5`로 저장해야 한다. | V0 step/frame field results, metadata, diagnostics가 schema version과 함께 저장된다. | HDF5 schema test | +| FESA-PRD-006 | FESA는 solver 결과를 derived HDF5 authoritative output `_results.h5`로 저장해야 한다. | V0 step/frame field results, metadata, diagnostics가 schema version과 함께 저장된다. | HDF5 schema test | | FESA-PRD-007 | FESA는 기능이 지정한 Abaqus reference CSV quantity와 비교 가능한 deterministic source-row/component mapping을 제공해야 한다. | Required source IDs/components는 일대일 대응되고 missing/extra/duplicate/nonfinite row는 tolerance 전에 실패한다. Canonical naming, README, metadata, provenance 또는 CSV schema version은 요구하지 않는다. | reference comparison report | | FESA-PRD-008 | FESA의 production C++ 변경은 테스트를 먼저 작성하고 실패를 확인한 뒤 구현해야 한다. | 관련 C++ test file, RED 실패와 후속 GREEN 성공 증거가 있고 Stop의 전체 MSVC build/test가 통과한다. | implementation report, Hook guardrail, CTest | | FESA-PRD-009 | FESA는 외부 라이브러리 API를 solver core에 직접 노출하지 않아야 한다. | MKL, TBB, HDF5 의존은 adapter module에 제한된다. | architecture review, dependency review | @@ -139,7 +156,7 @@ Parser keyword, element kernel, solver backend 또는 output dataset 중 하나 required reference quantity의 최소 source-ID/component matching이 승인되어 있다. 5. Tests fail before implementation: C++/integration/reference test를 제품 코드보다 먼저 작성하고 같은 Step 안에서 RED 실패와 후속 GREEN 성공을 확인한다. 6. CMake/CTest pass: MSVC/x64/Debug 기준 configure, build, test가 통과한다. -7. Reference comparison pass: 기능이 blocking으로 선언한 FESA `results.h5` quantity가 +7. Reference comparison pass: 기능이 blocking으로 선언한 FESA `_results.h5` quantity가 선언된 Abaqus CSV와 source identity/component별로 대응되고 승인된 tolerance 안에 있다. 8. Physics sanity pass: equilibrium, reaction consistency, displacement direction, symmetry, section-force consistency와 normalized residual이 검토되어 있다. 9. Release readiness pass: acceptance traceability, known limitations, release notes draft가 준비되어 있다. @@ -151,7 +168,8 @@ Parser keyword, element kernel, solver backend 또는 output dataset 중 하나 - instance translation/rotation, nested assembly 및 dependent/independent mesh semantics - `I12 != 0`, taper, offset, release, curved beam, warping - Abaqus `*DLOAD` 입력과 Domain distributed-load object -- 기하·재료비선형, dynamics, contact, thermal effects +- 승인된 fixed-load-factor nonlinear-static 범위를 벗어난 기하·재료비선형, dynamics, + contact, thermal effects - transverse shear stress와 torsional shear stress recovery - beam stress에 대한 Abaqus reference comparison - Abaqus, Nastran 또는 reference solver 직접 실행 자동화 diff --git a/docs/nonlinear-static-newton-raphson/build-test.md b/docs/nonlinear-static-newton-raphson/build-test.md new file mode 100644 index 0000000..8e65b82 --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/build-test.md @@ -0,0 +1,44 @@ +# Nonlinear Static Newton-Raphson Build and Test Report + +## Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| owner_agent | `implementation-agent` | +| working directory | `C:\git\FESADev\.worktrees\nonlinear-static-newton-raphson` | +| configuration | `windows-msvc-ninja-debug`, x64 Debug | +| compiler | MSVC `cl.exe` from VS 18, toolset `14.51.36231` | +| generator | Ninja | +| dependency configuration | `FESA_GTEST_SOURCE_DIR=C:/git/googletest`; MKL `2026.1`; TBB `2023.1`; HDF5 `2.1.1` | +| final classification | none; all commands passed | + +## Fresh command log + +| stage | command | exit | duration | output tail | +| --- | --- | ---: | ---: | --- | +| configure | `cmake --preset windows-msvc-ninja-debug` | 0 | 1.066 s | `Configuring done`; `Generating done`; build files written to `.harness/build-ninja-msvc-debug` | +| build | `cmake --build --preset windows-msvc-ninja-debug` | 0 | 0.113 s | `ninja: no work to do.` | +| discovery | `ctest --preset windows-msvc-ninja-debug --show-only=json-v1` | 0 | 0.219 s | 302 tests discovered | +| focused control/log | `ctest --preset windows-msvc-ninja-debug -R "^(NonlinearConvergence|NewtonIterationLog)\." --output-on-failure` | 0 | 0.471 s | 14/14 passed | +| focused procedure/writer | `ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter)\." --output-on-failure` | 0 | 2.524 s | 7/7 passed | +| nonlinear reference | `ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure` | 0 | 905.404 s | 9/9 passed | +| extended reference | `ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure` | 0 | 930.617 s | 9/9 matched tests passed | +| full CTest | `ctest --preset windows-msvc-ninja-debug --output-on-failure` | 0 | 956.498 s | 302/302 passed; integration 16, unit 256, reference 30 | + +The full CTest output reported no failed-test inventory. The build emitted no compiler/linker +output beyond `ninja: no work to do.`; the build tree audit found no new `warning C####` or +`: warning:` record. The only diagnostic setup issue was that standalone HDF5 inspection tools +need Intel `libmmd.dll` on `PATH`; this did not affect the staged test executables, CMake build, or +CTest and is not a product failure. + +## Results and handoff + +The selected `.harness/config.json` preset was used throughout. All commands were run from the +repository root in an x64 VsDevCmd environment. The final status is +`pass-for-physics-evaluation`; no Harness Python command was required because this Step did not +change Python, hooks, or agent configuration. + +This Step changed documentation and its own phase status only. It did not modify C++ production, +tests, CMake, Harness configuration, tolerance, reference artifacts, or output data. The immutable +reference artifact audit before and after comparison was identical; see `reference-comparison.md`. diff --git a/docs/nonlinear-static-newton-raphson/implementation-report.md b/docs/nonlinear-static-newton-raphson/implementation-report.md new file mode 100644 index 0000000..ed704fa --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/implementation-report.md @@ -0,0 +1,84 @@ +# Nonlinear Static Newton-Raphson Implementation Report + +## Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| phase step | `12: execution-closure-and-evidence-docs` | +| owner_agent | `implementation-agent` | +| evidence date | `2026-08-28` | +| repository HEAD before this Step's documentation edits | `d275e844f27107cfab52309025e259f2156345d2` | +| classification | `pass-for-physics-evaluation` | + +## Freshness audit (RED) + +Before any build or reference command, `NSNR-EVID-001..007` failed as expected. +`implementation-report.md`, `build-test.md`, and `reference-comparison.md` were absent. The +global documents still advertised `--output`, only the prior linear output path, and did not state +the approved nonlinear current-arm/reaction and fine/coarse reference dispositions. This was an +evidence freshness failure, not a solver failure. No report was created until the fresh commands +below completed. + +## Approved inputs and preserved Step history + +The consumed upstream document SHA-256 values were: requirements +`89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`, research +`4F63D23E03D1A68E5F8563B678FDD6F761F9558165778EF0433133EFAD303570`, formulation +`878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, numerical review +`C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C`, reference model +`B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`, I/O +`ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, implementation plan +`CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, and corrections +`4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. + +Steps 0--10 remain unchanged: derived output/log lease; NLGEOM Domain controls; finite rotations; +nonlinear MITC4 kinematics/recovery; residual/tangent; load/BC/convergence gates; tangent solver; +iteration log; transactional state; nonlinear HDF5 v1; and prepared parse-once dispatch/finalization. + +## Step 11 RED to GREEN evidence + +The preserved Step 11 transcript SHA-256 is +`292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`. +Its RED evidence covered: initial-arm/raw rotation balance (`NSNR-PROC-019`), obsolete +`location=global-origin` (`NSNR-HDF5-014`), missing fine inventory (`NSNR-REF-020`), blocking +local RF/RM (`NSNR-REF-021`), obsolete `1e-10` balance rejection (`NSNR-REF-022`), pre-tolerance +row rejection (`NSNR-REF-023`), inclusive `1e-8` boundary (`NSNR-REF-024`), and exact-zero scale +(`NSNR-REF-025`). + +The minimal GREEN slice was limited to the nonlinear procedure current-arm/spatial balance +projection, HDF5 location metadata/self-check, and test-private reference comparator/case +inventory. The relevant production files were `nonlinear_static_procedure.cpp`, +`nonlinear_hdf5_results_writer.cpp`, and `hdf5_self_check.cpp`; test changes remained in the +procedure, writer, convergence/log, and reference-comparator tests. This Step made no C++, test, +CMake, Harness, tolerance, or reference-artifact change. + +Fresh VERIFY reran the preserved controls. The focused `NonlinearStaticProcedure` and +`NonlinearHdf5ResultsWriter` command passed 7/7, including +`NonzeroPrescribedMotionWritesCurrentArmSpatialAppliedPlusReactionBalance` and +`WritesSchemaV1GlobalBalanceErrorLocation`. The reference command passed the inclusive and +exact-zero global gate tests. This closes `AUDIT-001`: the tests exercise nonzero prescribed +translation and rotation, `x=X+u`, component-mask-before-conversion, independently converted +applied and constrained rotation covectors, and `location=global-balance-error`. + +## Requirement and test traceability + +| evidence | fresh result | +| --- | --- | +| `NSNR-CTRL-018..021` convergence controls | 6/6 `NonlinearConvergence.*` passed | +| `NSNR-LOG-012` iteration-log contract | 8/8 `NewtonIterationLog.*` passed | +| `NSNR-PROC-019` current-arm balance | passed in focused 7-test procedure/writer run | +| `NSNR-HDF5-014` v1 equilibrium location | passed in focused 7-test procedure/writer run | +| `NSNR-REF-020..025` portfolio, dispositions, prechecks, 1e-8 and zero-scale | 9/9 `NonlinearStaticReference.*` passed twice and in full CTest | +| blocking external/internal final gate | all 302 CTest tests passed; detailed metrics are in `reference-comparison.md` | + +## Handoff and open issues + +Implementation-owned classification is `pass-for-physics-evaluation`. The only numerical +differences retained are six deterministic local RF/RM review-only findings; they do not alter +the blocking verdict. No warning-only UR family failed. This report does not claim physics or +release readiness, and numerical agreement does not assert Abaqus S4 internal formulation +equivalence. + +No Step 12 production behavior changed. Reference inputs and CSV files were read-only and their +pre/post inventory, byte sizes, timestamps, and SHA-256 values were identical. diff --git a/docs/nonlinear-static-newton-raphson/reference-comparison.md b/docs/nonlinear-static-newton-raphson/reference-comparison.md new file mode 100644 index 0000000..1039ef4 --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/reference-comparison.md @@ -0,0 +1,108 @@ +# Nonlinear Static Newton-Raphson Reference Comparison + +## Verdict + +`blocking-pass-with-review-only-findings`. FESA HDF5 is the authoritative solver output. The +Abaqus CSV files are read-only external comparison evidence; the observed agreement does not imply +Abaqus S4 internal formulation, integration, stabilization, or recovery equivalence. + +The literal execution order was `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. + +The `COMPARE` commands were +`ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure` +(exit 0, 905.404 s, 9/9 passed), followed by +`ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure` +(exit 0, 930.617 s, 9/9 matched tests passed). The fresh full CTest run then passed 302/302; +its command and output tail are recorded in `build-test.md`. + +## Artifact check + +Every input, displacement CSV, reaction CSV, and stress-inventory CSV was readable, finite where +required, unique by declared source key, and identical before and after all copied-input executions. + +| case / role | exact path | bytes | pre/post UTC mtime | SHA-256 | +| --- | --- | ---: | --- | --- | +| fine primary input | `reference/shellNL-meshfine/shellNL-meshfine.inp` | 56,516 | `2026-08-25T13:53:49.1919675Z` | `40DF1CE77311C8D799564A21A60F3BDEBB8148D52CAE22B7292FDFAD32018220` | +| fine U | `reference/shellNL-meshfine/shellNL-meshfine displacements.csv` | 111,184 | `2026-08-25T14:06:00.1262830Z` | `740819FF8AED0E279961581F7CDBFA12784CFBA3A488C35A652E80103F64433F` | +| fine local reaction | `reference/shellNL-meshfine/shellNL-meshfine reactions.csv` | 108,951 | `2026-08-25T14:05:06.2950127Z` | `AEB01C98C596792B0E5F2B86A81945CAB0BEB0C6969CFC6738C6F81DF1F94363` | +| fine stress inventory | `reference/shellNL-meshfine/shellNL-meshfine stresses.csv` | 1,036,869 | `2026-08-25T14:04:24.2027682Z` | `6D6213AB5DB9D6B1F5FBD641367D08BACC805967B6C5A95BCE0E1A5395377782` | +| coarse companion input | `reference/shellNL/shellNL.inp` | 4,778 | `2026-08-23T16:36:23.9302881Z` | `4BF3ECB0F7F1E8462C573E993DBC97AC5D920C91CF6F23AD4C6891D77FFBADA2` | +| coarse U | `reference/shellNL/shellNL displacements.csv` | 7,542 | `2026-08-23T16:36:23.9282815Z` | `4E0F99CA9372B1ADF7FAF102F43BC0B887DC743FDEDA378E4342D2CF8E0C0786` | +| coarse local reaction | `reference/shellNL/shellNL reactions.csv` | 7,443 | `2026-08-23T16:36:23.9292877Z` | `001CB1541A9E94424E5E650509D46BC8724970DF4DE47184D9DB09C7938AB069` | +| coarse stress inventory | `reference/shellNL/shellNL stresses.csv` | 54,720 | `2026-08-23T16:36:23.9302881Z` | `5500E5114B1C44887528E30CEC054A1EB0F68BE3F4B8CE81FA59FC74A881483F` | +| linear control input | `reference/shell/shell.inp` | 4,770 | `2026-08-23T16:36:23.9272805Z` | `4005851E1AB22FD3A16AC17A8D5DA3E051233F69F37419079F3553AD134ECFCF` | +| linear U | `reference/shell/shell displacements.csv` | 5,592 | `2026-08-23T16:36:23.9262810Z` | `C81D94E0B4A849F87AA0F79C83A79B94D5661AC79E44ED826919AB432C87746B` | +| linear reaction inventory | `reference/shell/shell reactions.csv` | 5,524 | `2026-08-23T16:36:23.9262810Z` | `0E34EEC27E700C3C0C744C1DAFD8A3B95EFEF34B8616FE96665876586FE82D41` | +| linear stress inventory | `reference/shell/shell stresses.csv` | 43,502 | `2026-08-23T16:36:23.9272805Z` | `2B75A5B0DEB045A283C9BB7E9B1153B79F7537FF487214BF4A23316B59B660A7` | + +Fine and coarse required nonlinear CSV rows had exact `Frame=Increment 10: Step Time = 1.000`. +The HDF5 `/steps/Step-1/accepted_frames` table had exactly one factor-one row: frame 9, increment +10, load factor 1.0, two Newton iterations. Reference copies and generated artifacts were confined +to these build-local directories: + +| case | copied input | generated results / log | +| --- | --- | --- | +| fine | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine.inp` | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine_results.h5`, SHA-256 `2E9817E173D73FD91C2D34864B69A1EC37483CB25951FB7CCE85895A6C87D2C6`; `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL-meshfine/shellnl-meshfine-s4-final-72767400538200-0/shellNL-meshfine_log.txt`, SHA-256 `1DB6FE4AAA2F1443ACC7F9B3F919CC8DD873C90392121DAB6509F1693435DA27` | +| coarse | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL.inp` | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL_results.h5`, SHA-256 `130E2E7B73B022F216A7A34C88D58114A62595ADD556A0D202B8A7FAC7391F39`; `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shellNL/shellnl-s4-final-73175241456500-1/shellNL_log.txt`, SHA-256 `3D5C4F1B20384655F9012ADE842B99E3B06B3799FC9AB16DD6FD141E18B77906` | +| linear | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell.inp` | `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell_results.h5`, SHA-256 `8AEE34D5BC80382D7E6DE85C51F0F8BCBF451CD5F5C7B8DDA6C585EB22B31763`; `.harness/build-ninja-msvc-debug/reference/nonlinear-static-reference/shell/shell-s4-linear-limit-72742739390700-2/shell_log.txt`, zero bytes, SHA-256 `E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855` | + +## Compare and classify + +Rows were matched by `(case_id, accepted_state, canonical_instance_name, source_node_label, +component)`, never CSV order. Required HDF5 projections were factor-one +`/steps/Step-1/frames/9/nodal/displacement`, `generalized_internal_force`, +`generalized_external_force`, `generalized_residual`, `reaction`, `/model/nodal_constraint_mask`, +and `/global/equilibrium`; the linear control uses `/steps/Step-1/frames/0/nodal/displacement`. +All required source keys, components, uniqueness and finite checks passed before tolerance. + +External families use `docs/TOLERANCE.md`: reference-only scale, near-zero band `0.01*S`, row +relative limit `0.05`, and family RMS limit `0.01`. `rows passed` is the deterministic per-row +decision count; U is blocking and UR is warning-only. + +| family | disposition | rows passed | scale | max abs | max relative | relative RMS | result | +| --- | --- | ---: | ---: | ---: | ---: | ---: | --- | +| fine.translation | blocking | 2187/2187 | 2.57957054e-05 | 1.6193812501e-07 | 6.27771648e-03 | 2.27230258e-04 | pass | +| fine.rotation | warning-only | 2187/2187 | 6.58704994e-06 | 3.0109969916e-08 | 3.54510604e-02 | 4.68253850e-04 | pass | +| coarse.translation | blocking | 147/147 | 2.37408203e-05 | 1.9037855439e-07 | 8.57111694e-03 | 1.03327572e-03 | pass | +| coarse.rotation | warning-only | 147/147 | 7.60725743e-06 | 6.8828551252e-08 | 4.69071871e-02 | 2.97713732e-03 | pass | +| linear.translation | blocking | 147/147 | 2.37408203e-05 | 1.9037853492e-07 | 8.57111604e-03 | 1.03327567e-03 | pass | +| linear.rotation | warning-only | 147/147 | 7.60725743e-06 | 6.8828549627e-08 | 4.69071860e-02 | 2.97713730e-03 | pass | + +Worst absolute rows were fine U `PART-1-1/node 2/U3`, fine UR +`PART-1-1/node 442/UR1`, coarse U `PART-1-1/node 2/U3`, coarse UR +`PART-1-1/node 37/UR1`, linear U `PART-1-1/node 2/U3`, and linear UR +`PART-1-1/node 44/UR1`. No warning-only family failed. + +The eight blocking internal families are independent of Abaqus CSV tolerance. + +| family | rows | numerator | scale | metric | gate | result | +| --- | ---: | ---: | ---: | ---: | --- | --- | +| fine.global_force_balance | 3 | 2.6775524023e-07 | 1.2773012379e+05 | 2.09625758e-12 | `<=1e-8` | pass | +| fine.global_moment_balance | 3 | 1.3258637157e-04 | 4.8292847478e+05 | 2.74546602e-10 | `<=1e-8` | pass | +| fine.accepted_free_force_residual | 1875 | 3.8659904671e-03 | 1.0000000000e+05 | 3.86599047e-08 | `<=1e-2` | pass | +| fine.accepted_free_moment_residual | 1875 | 1.3760745787e-06 | 0 | exact-zero typed `<=1e-3` | exact-zero branch | pass | +| coarse.global_force_balance | 3 | 8.2512269735e-07 | 1.0000000439e+05 | 8.25122661e-12 | `<=1e-8` | pass | +| coarse.global_moment_balance | 3 | 4.1788609354e-05 | 2.9558678960e+05 | 1.41375091e-10 | `<=1e-8` | pass | +| coarse.accepted_free_force_residual | 75 | 3.1462885132e-02 | 1.0000000000e+05 | 3.14628851e-07 | `<=1e-2` | pass | +| coarse.accepted_free_moment_residual | 75 | 3.3292052422e-06 | 0 | exact-zero typed `<=1e-3` | exact-zero branch | pass | + +The constrained-reaction resultant remains a distinct review summary: fine force +`[1.2306822228e-12, -3.5943123478e-12, 1.0000000000e+05]`, moment +`[2.7057467378e-11, -5.6934368331e-10, -1.3258637157e-04]`; coarse force +`[7.9591888635e-12, 7.2906680693e-12, 1.0000000000e+05]`, moment +`[-1.7826096155e-10, -2.5829649530e-10, -4.1788609352e-05]`. + +Local reaction RF/RM source-key/inventory/finite prechecks passed, but the following direct +row/RMS findings remain review-only and therefore do not change the blocking classification. + +| review family | rows passed | relative RMS | worst absolute row | finding | +| --- | ---: | ---: | --- | --- | +| coarse in-plane RF | 4/48 | 1.1437709953e-01 | node 3/RF1, 5.3914239451e-01 | review-only failure | +| coarse RF3 | 4/24 | 4.8448360241e-02 | node 31/RF3, 7.1995422354e+02 | review-only failure | +| coarse physical RM1/RM2 | 32/48 | 2.7464126167e-02 | node 22/RM1, 1.0484921048e+03 | review-only failure | +| fine in-plane RF | 12/208 | 1.1971372918e-01 | node 1/RF2, 1.5298653299e-01 | review-only failure | +| fine RF3 | 92/104 | 5.3476362434e-03 | node 9/RF3, 4.6176964624e+01 | review-only row failure | +| fine physical RM1/RM2 | 112/208 | 3.3719303859e-03 | node 52/RM2, 3.1549617088e+01 | review-only row failure | + +`RM3` and stress were not numerically compared. Artifact inventory, byte size, timestamp, and +SHA-256 equality before/after all runs prove that no reference artifact changed. From 7f8eadae55807935df7188b4f5322a9434ddc1bb Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 21:08:58 +0900 Subject: [PATCH 28/32] chore(nonlinear-static-newton-raphson): step 12 output --- phases/nonlinear-static-newton-raphson/index.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index a13a3b6..3a4079d 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -101,7 +101,10 @@ { "step": 12, "name": "execution-closure-and-evidence-docs", - "status": "pending" + "status": "completed", + "summary": "Collected fresh MSVC/CTest and nonlinear reference evidence, wrote Stage 6 reports, and synchronized directly superseded documentation contracts.", + "started_at": "2026-08-28T19:44:23+0900", + "completed_at": "2026-08-28T21:08:58+0900" } ], "created_at": "2026-08-24T01:41:01+0900" From 624807a13543454ffbb6b0301e06bf8f79fbeeb9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 21:08:58 +0900 Subject: [PATCH 29/32] chore(nonlinear-static-newton-raphson): mark phase completed --- phases/index.json | 5 +++-- phases/nonlinear-static-newton-raphson/index.json | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/phases/index.json b/phases/index.json index e6f8923..483c0e4 100644 --- a/phases/index.json +++ b/phases/index.json @@ -16,7 +16,8 @@ }, { "dir": "nonlinear-static-newton-raphson", - "status": "pending" + "status": "completed", + "completed_at": "2026-08-28T21:08:58+0900" } ] -} +} \ No newline at end of file diff --git a/phases/nonlinear-static-newton-raphson/index.json b/phases/nonlinear-static-newton-raphson/index.json index 3a4079d..4bd35b4 100644 --- a/phases/nonlinear-static-newton-raphson/index.json +++ b/phases/nonlinear-static-newton-raphson/index.json @@ -107,5 +107,6 @@ "completed_at": "2026-08-28T21:08:58+0900" } ], - "created_at": "2026-08-24T01:41:01+0900" + "created_at": "2026-08-24T01:41:01+0900", + "completed_at": "2026-08-28T21:08:58+0900" } \ No newline at end of file From 014f6a7926f00950c62f8109226b2d4ab93efd36 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 21:21:54 +0900 Subject: [PATCH 30/32] docs(nonlinear-static-newton-raphson): record step 12 audit --- .../coordination.md | 99 +++++++++---------- 1 file changed, 48 insertions(+), 51 deletions(-) diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index 289f4a5..bfa3ea7 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -3,16 +3,16 @@ ## 1. Metadata and Feature Scope - feature_id: `nonlinear-static-newton-raphson` -- workflow_state: `needs-implementation` +- workflow_state: `needs-physics-evaluation` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-28` (Step 12 execution explicitly approved; bounded evidence-closure dispatch package prepared) +- last_updated: `2026-08-28` (STEP12-EXECUTION-001 owner return audited; Stage 6 passed, Physics dispatch not started) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Run bounded Step `12` Harness/Implementation evidence-doc closure from clean HEAD `af5d722` after explicit user approval; do not dispatch Physics/Release until Stage 6 canonical reports pass Coordinator audit. -- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Step `11` completed under Codex CLI `0.150.1` USER-DECISION-005A envelope, and Step `12` is now separately authorized for evidence-doc closure only. No push, no `danger-full-access`, no reference mutation/solver and no automatic advance beyond the recorded Step `12` dispatch. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. +- current_goal: Stage 6 Implementation gate is passed after Step `12` owner return/code-review audit. Stop before Physics/Release dispatch; next eligible gate is Stage 7 Physics evaluation under a separate bounded dispatch. +- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Steps `11` and `12` are completed under the approved Codex CLI `0.150.1`/Ninja/MSVC envelope. No push, no `danger-full-access`, no reference mutation/solver and no automatic Physics/Release dispatch in this audit. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -24,8 +24,8 @@ | 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | §14.1만 USER-DECISION-003 option 1로 갱신하고 strong/weak form, kinematics, tangent/residual, integration, state/recovery, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure를 보존함 | Owner returned `ready-for-coordinator-and-user-reapproval`, SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, §14.1-only diff `34` additions/`5` deletions, revised requirements hash matched, 13/13 contract assertions and diff check passed, no other owner file changes. Coordinator audit passed and user explicitly re-approved this hash on 2026-08-24: exact-zero branch selector is matching external residual-channel scale, nonzero external scale retains relative `max(internal, external)` denominator and `1e-2`, typed absolutes remain `1e-3`, correction gates/four-channel AND/lifecycle/reference disposition unchanged. | 없음 | 3 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | USER-DECISION-006 delegated reapproval: both normalized factor-one global FORCE and MOMENT balance gates are fixed `<=1e-8`, with exact formulas, sum-of-contribution scales, zero-scale rule, source identity and USER-DECISION-004 dispositions preserved | Owner returned `pass-for-io-definition`, blockers none. Coordinator audit verified hashes `numerical-review.md` `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; both reports record global force/moment normalized gate `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, 12 reference hashes/length/mtime unchanged, fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and `RM3`/stress excluded. Root independently verified hashes, target occurrences and `git diff --check` with only LF/CRLF warnings. | 없음 | 6 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `in-progress` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `12` evidence-doc closure must follow `phases/nonlinear-static-newton-raphson/step12.md` exactly and may create canonical Stage 6 reports plus minimal directly-superseded PRD/ARCHITECTURE/ADR sync only | User explicitly approved Step `12` execution. Coordinator audit verified clean worktree, branch `feat-nonlinear-static-newton-raphson`, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`, Step `11` completed, Step `12` pending, canonical reports absent, and Step `12` contract allowing `implementation-report.md`, `build-test.md`, `reference-comparison.md` plus minimal PRD/ARCHITECTURE/ADR sync while forbidding C++/tests/CMake/Harness/reference/tolerance changes. Initial push of `af5d722` failed remote authentication; record as external push evidence, not Step `12` scope expansion. | Step `12` owner return missing; Physics/Release ineligible until Stage 6 reports pass Coordinator audit | 35 | -| 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | 없음 | Stage 6 passing evidence 필요 | 0 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `12` evidence-doc closure follows `phases/nonlinear-static-newton-raphson/step12.md`; canonical Stage 6 reports and directly-superseded PRD/ARCHITECTURE/ADR sync are actual-evidence-only and no C++/tests/CMake/Harness/reference/tolerance change is allowed | STEP12-EXECUTION-001 owner return/code-review audit passed. Owner produced `implementation-report.md` SHA-256 `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`, `build-test.md` SHA-256 `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328`, minimal `docs/PRD.md`/`docs/ARCHITECTURE.md`/`docs/ADR.md` sync, Step `12` output SHA-256 `6F112880F20EE125E219EDF3038F395A28F3692D2F5B6CCC3AB3369EF3AC22BE`, and phase metadata completion. Coordinator reviewed diff `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9`: changed files are exactly the three reports, PRD/ARCHITECTURE/ADR, and two phase indexes; no source/test/CMake/Harness/tolerance/reference/upstream feature-doc diff. Owner evidence records Harness exit `0`, fresh configure/build/discovery/focused/full CTest with `302/302` pass, reference artifact 12-path hash/size/mtime immutability, blocking `<=1e-8` global force/moment/free residual pass, U blocking pass, UR warning-only pass, local RF/RM review-only findings, and no `fesa.env`/runtime config. Coordinator found no Critical/Important/Minor tracked-file finding. Current ephemeral `LastTest.log` was later overwritten to an empty 21:11 run, so the Stop-log timestamp is treated as owner/root transcript evidence rather than current untracked-file evidence. | 없음 | 36 | +| 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | Stage 6 passed and is eligible for the next bounded Physics Evaluation dispatch; this Coordinator audit did not start it. | 없음 | 0 | | 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | ## 3. Active Dispatch Package and Latest Sub-Agent Return @@ -33,46 +33,42 @@ ### Active Dispatch Package - feature_id: `nonlinear-static-newton-raphson` -- current_dispatch: `STEP12-EXECUTION-001-evidence-doc-closure-root-executor-required` -- target_sub_agent: `implementation-agent` via Harness Executor -- required_inputs: - - Use `fesa-cpp-msvc-tdd` and project-local `harness`; execute only pending Step `12` `execution-closure-and-evidence-docs`. - - Runner command: `python scripts/execute.py phases/nonlinear-static-newton-raphson` with the already approved Step `12` boundary; if the local runner requires the slug form, use the equivalent verified command for exactly this phase and record it in the owner return. - - Read `AGENTS.md`, `docs/SOLVER_AGENT_DESIGN.md`, `docs/HARNESS.md`, `docs/HARNESS_WORKFLOW.md`, `.codex/hooks.json`, `docs/nonlinear-static-newton-raphson/coordination.md`, approved Stage 1-6 docs, phase indexes, Step `11` output/evidence, and `phases/nonlinear-static-newton-raphson/step12.md`. - - Starting state: clean worktree, branch `feat-nonlinear-static-newton-raphson`, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`; Step `11` completed, Step `12` pending, top phase pending. - - Runtime envelope: Codex CLI `0.150.1`, all-WindowsApps child PATH filter, system Windows PowerShell, `workspace-write`, hooks retained, VsDevCmd x64, required dependency vars, and `windows-msvc-ninja-debug` preset. - - Allowed outputs only: `docs/nonlinear-static-newton-raphson/implementation-report.md`, `docs/nonlinear-static-newton-raphson/build-test.md`, `docs/nonlinear-static-newton-raphson/reference-comparison.md`, minimal directly-superseded `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, Executor-owned phase metadata/step output and local commits. - - User requested final commits and push, but initial push of `af5d722` failed remote authentication. Push/auth failure is external to Step `12` evidence; do not change credentials, remotes, branch history or broaden implementation scope to make push work. -- expected_outputs: - - `docs/nonlinear-static-newton-raphson/implementation-report.md` - - `docs/nonlinear-static-newton-raphson/build-test.md` - - `docs/nonlinear-static-newton-raphson/reference-comparison.md` - - optional minimal directly-superseded updates to `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md` - - `phases/nonlinear-static-newton-raphson/step12-output.json`, Step `12` metadata and local Executor commits -- acceptance_gate: Step `12` returns `completed` with actual-evidence-only reports, fresh configure/build/discovery/focused/full CTest evidence, `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`, reference artifact hashes/mtimes unchanged, `git diff -- reference` clean, no C++/tests/CMake/Harness/tolerance changes and no Physics/Release dispatch. -- stop_condition: Stop and return classified blocker if Step `12` needs C++/tests/CMake/Harness/reference/tolerance changes, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, `danger-full-access`, manual hook invocation, unapproved scope beyond minimal PRD/ARCHITECTURE/ADR sync, or if push fails due remote authentication after local evidence/commits. -- missing_evidence: Step `12` owner return, canonical Stage 6 reports, final local commit/push status. +- current_dispatch: `none` +- target_sub_agent: `none` +- required_inputs: 없음 +- expected_outputs: 없음 +- acceptance_gate: Stage 6 Implementation passed by STEP12-EXECUTION-001 owner return and Coordinator audit. Next eligible work item is Stage 7 Physics Evaluation, but this audit does not dispatch it. +- stop_condition: Do not dispatch Physics/Release, run Harness/build/CTest/solver/reference solver, edit source/tests/CMake/Harness/tolerance/reference artifacts, commit or push from this Coordinator audit. +- missing_evidence: Stage 7 `physics-evaluation.md` and Stage 8 `release.md` remain absent. ### Latest Sub-Agent Return - target_sub_agent: `implementation-agent` via Harness Executor - output_paths: - - `phases/nonlinear-static-newton-raphson/step11-output.json` -- status: Step `11` `completed`; Coordinator decision `passed` + - `docs/nonlinear-static-newton-raphson/implementation-report.md` + - `docs/nonlinear-static-newton-raphson/build-test.md` + - `docs/nonlinear-static-newton-raphson/reference-comparison.md` + - `docs/PRD.md` + - `docs/ARCHITECTURE.md` + - `docs/ADR.md` + - `phases/index.json` + - `phases/nonlinear-static-newton-raphson/index.json` + - `phases/nonlinear-static-newton-raphson/step12-output.json` +- status: Step `12` `completed`; owner classification `pass-for-physics-evaluation`; Coordinator decision `passed` - evidence_summary: - - Harness Step `11` succeeded with implementation commit `6dbf1b2` and metadata commit `c58ba9f`; subsequent Coordinator audit commit advanced current HEAD to `af5d72233c2bcd00edc087531d10eb92f7232d3e`. - - Phase index records Step `11` `completed` at `2026-08-28T09:22:33+0900` with summary; Step `12` remains `pending`; top phase remains `pending`. - - `step11-output.json` SHA-256 is `292FE06B7F97B1CBE267A36D875342B300E82486B76BDCBCD31EE2192A87ACE3`, exitCode `0`, stderr empty, and command output shows system Windows PowerShell under the corrected PATH filter. - - Focused procedure/HDF5 verification passed `7/7`; focused `GlobalForceAndMoment` threshold tests passed `2/2`. - - Fresh natural Stop LastTest.log mtime `2026-08-28 09:22:32`: `302` testing entries, `302` `Test Passed.`, `0` failed markers; long `AuditsFinePrimaryAndCoarseCompanionArtifacts` and `BlocksOnGlobalBalanceAndAcceptedFreeResidual` passed; inclusive `1e-8` boundary and exact-zero tests passed. - - `LastTestsFailed.log` exists but is stale from `2026-08-28 07:57:35` prior RED and is not authoritative for this pass. - - Coordinator verified `tests/reference/nonlinear_static_reference_comparison.cpp:47` uses `1.0e-8`; no `fesa.env`/runtime config/product behavior was introduced. - - Reference diff is clean and the 12 current reference artifact hashes/length/mtimes match the recorded baselines supplied for this run. + - Harness Step `12` exitCode `0`; commits in review range are `bf9487e` Step 12 reports/docs, `7f8eada` Step 12 output, and `624807a` phase completion. Current HEAD is `624807a13543454ffbb6b0301e06bf8f79fbeeb9`. + - Phase index records Step `12` `completed` at `2026-08-28T21:08:58+0900`; top phase `nonlinear-static-newton-raphson` is `completed`. + - Output hashes: `implementation-report.md` `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`; `build-test.md` `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`; `reference-comparison.md` `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328`; `step12-output.json` `6F112880F20EE125E219EDF3038F395A28F3692D2F5B6CCC3AB3369EF3AC22BE`. + - Step `12` evidence reports record freshness RED `NSNR-EVID-001..007`, fresh configure/build/discovery/focused/full CTest command log, full CTest `302/302`, nonlinear reference commands `9/9`, and final classification `pass-for-physics-evaluation` / `blocking-pass-with-review-only-findings`. + - Reference comparison records fine primary/coarse companion/linear control, U blocking pass, UR warning-only pass, local RF/RM review-only findings, `RM3`/stress excluded, internal global force/moment `<=1e-8`, NSNR-069 free residual pass, copied-input HDF5/log paths and 12 artifact pre/post hash/size/mtime equality. + - Coordinator diff review of `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9` found exactly allowed changed paths: three canonical reports, `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, `phases/index.json`, and `phases/nonlinear-static-newton-raphson/index.json`. + - No source, test, CMake, Harness, tolerance, reference artifact or upstream feature contract file changed in the Step `12` range; `git status --short` was clean before this Coordinator update. + - Evidence caveat: current untracked `.harness/build-ninja-msvc-debug/Testing/Temporary/LastTest.log` is now a later empty 21:11 run, so the supplied 21:08:57 Stop `302/302` detail is preserved through owner/root transcript and report evidence rather than the current ephemeral log file. - blockers: - 없음 -- self_audit_findings: Coordinator accepts STEP11-EXECUTION-004 as a Step `11` pass. This does not pass the full Stage 6 gate because Step `12` evidence documents are still absent; user has now separately authorized the bounded STEP12-EXECUTION-001 evidence-doc closure. -- return_contract_check: Return includes output path, completed status, evidence summary, commits and blockers. Executor-owned metadata and commits are present; no push occurred. -- acceptance_evidence_check: User now explicitly approved Step `12`; STEP12-EXECUTION-001 is the active bounded dispatch, but Coordinator does not run Harness/CTest/commit/push. +- self_audit_findings: No Critical, Important or Minor tracked-file findings. The reports and PRD/ARCHITECTURE/ADR sync are scoped to Step `12` and do not claim Physics/Release readiness or Abaqus internal equivalence. +- return_contract_check: Return includes required output paths, completed status, evidence summary, phase metadata, commits and blockers. Executor-owned metadata and commits are present; no push evidence is available. +- acceptance_evidence_check: Stage 6 Implementation gate passes and workflow advances to `needs-physics-evaluation`; Coordinator does not dispatch Stage 7 in this audit. ### USER-DECISION-004 Selected Path @@ -246,10 +242,11 @@ | 2026-08-28 | STEP11-EXECUTION-004 all-WindowsApps-filter Step 11 rerun package | `in-progress` | Coordinator prepared bounded `implementation-agent`/Harness package: run only Step `11`, preserve fixed `<=1e-8` force/moment gates and all Stage 4/5/6 contracts, use Codex CLI `0.150.1` with `CODEX_HOME`, `workspace-write`, hooks, Terra/`xhigh`, `--disable unified_exec`, VsDevCmd x64/deps, Ninja/MSVC Debug preset and child PATH filtered by `\\WindowsApps(?:\\|$)`. | `needs-implementation` | Root/Executor may launch Step `11` only; hard-stop before Step `12`; no push, `danger-full-access`, reference mutation/solver or manual hooks | | 2026-08-28 | STEP11-EXECUTION-004 return and Coordinator audit | `passed` | Harness Step `11` completed with implementation commit `6dbf1b2`, metadata commit `c58ba9f`, phase completion `2026-08-28T09:22:33+0900`, Step `12` pending, clean worktree before Coordinator update, no push. Fresh LastTest.log mtime `2026-08-28 09:22:32` has `302/302` pass; focused procedure/HDF5 `7/7` and threshold `2/2` pass; stale LastTestsFailed.log is from prior RED; reference diff clean and reference artifacts unchanged by supplied hash/mtime evidence. | `needs-implementation` | Stop before Step `12`; await explicit Step `12` Harness/Implementation request | | 2026-08-28 | STEP12-EXECUTION-001 evidence-doc closure dispatch package | `in-progress` | User explicitly approved Step `12` execution. Coordinator verified clean worktree, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`, Step `11` completed, Step `12` pending, canonical reports absent and Step `12` scope: create actual-evidence-only `implementation-report.md`, `build-test.md`, `reference-comparison.md`, plus minimal directly-superseded PRD/ARCHITECTURE/ADR sync only. | `needs-implementation` | Root/Executor may run Step `12` under the prior successful Codex `0.150.1` all-WindowsApps-filter envelope; C++/tests/CMake/Harness/reference/tolerance changes, reference solver, Physics/Release dispatch and Coordinator execution remain forbidden | +| 2026-08-28 | STEP12-EXECUTION-001 return and Coordinator code-review audit | `passed` | Implementation Agent/Harness returned Step `12` completed, exitCode `0`, owner classification `pass-for-physics-evaluation`. Coordinator reviewed reports, phase metadata and diff range `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9`; changed paths are allowed reports/global docs/phase metadata only, `git diff --check` for the range exits `0`, source/tests/CMake/Harness/tolerance/reference/upstream feature docs are unchanged, and no tracked-file Critical/Important/Minor finding was found. | `needs-physics-evaluation` | Stage 6 passed; next eligible action is bounded Stage 7 Physics Evaluation dispatch, not started by this audit | -- current_dispatch: `STEP12-EXECUTION-001-evidence-doc-closure-root-executor-required` -- current_workflow_state: `needs-implementation` -- next_gate_requires_user_approval: `false` for STEP12-EXECUTION-001 within the explicitly approved evidence-doc closure package; `true` for C++/tests/CMake/Harness/reference/tolerance changes, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, push credential/remote/history changes, Physics or Release. +- current_dispatch: `none` +- current_workflow_state: `needs-physics-evaluation` +- next_gate_requires_user_approval: `true` for Stage 7 Physics Evaluation dispatch under the current request boundary; `true` for any C++/tests/CMake/Harness/reference/tolerance change, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, push credential/remote/history change, or Release. ## 5. Risk, Blocker, and User-Decision Register @@ -281,9 +278,9 @@ | STEP11-EXECUTION-003 | implementation-dispatch | Needs rework: Step `11` only no-push wrapper attempt 1 timed out and attempt 2 hit inaccessible `C:\Users\baram\AppData\Local\Microsoft\WindowsApps\pwsh.exe` with `CreateProcessAsUserW failed: 5`; Stop-hook CTest evidence passed `302/302`, but Step `11` status/summary/commit are absent. | `implementation-agent` / Harness Executor / Coordinator | needs-rework | | REWORK-009 | harness-environment | Passed: Correction Agent diagnosed the user-local WindowsApps `pwsh.exe` launch filter miss and proved an all-`WindowsApps` PATH-filter same-envelope shell smoke. Output `corrections.md` SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`; changed `corrections.md` only; no runner/source/test/CMake/phase/upstream/reference/tolerance edits. | `correction-agent` / Coordinator | passed | | STEP11-EXECUTION-004 | implementation-dispatch | Passed: Step `11` completed and committed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`; metadata commit `c58ba9f`; focused and Stop evidence passed; Step `12` remains pending and unstarted. | `implementation-agent` / Harness Executor / Coordinator | passed | -| STEP12-EXECUTION-001 | implementation-dispatch | In progress/dispatch-ready: user approved Step `12` evidence-doc closure. Allowed outputs are canonical Stage 6 reports, minimal PRD/ARCHITECTURE/ADR sync, Executor-owned metadata/output and local commits; C++/tests/CMake/Harness/reference/tolerance changes and Physics/Release dispatch are forbidden. | `implementation-agent` / Harness Executor / Coordinator | in-progress | -| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed prior profile dispatches; the current Step `12` dispatch package is ready, but root/Executor launch is required before owner evidence can be produced. | coordinator/root tooling | open-root-executor-required | -| PUSH-001 | external-push | User requested final commits and push, but initial push of `af5d722` failed remote authentication. This is external to Step `12` evidence and must not alter credentials, remotes, branch history or implementation scope. | root/user remote auth | open | +| STEP12-EXECUTION-001 | implementation-dispatch | Passed: Step `12` evidence-doc closure completed with canonical Stage 6 reports, minimal PRD/ARCHITECTURE/ADR sync, Executor-owned phase metadata/output and local commits. Coordinator code-review audit found no tracked-file Critical/Important/Minor finding and no forbidden source/tests/CMake/Harness/reference/tolerance change. | `implementation-agent` / Harness Executor / Coordinator | passed | +| BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed prior profile/Harness dispatches through Step `12`; no active dispatch remains. Future Stage 7 dispatch still requires root/profile launch if this runtime remains unchanged. | coordinator/root tooling | closed-no-current-dispatch | +| PUSH-001 | external-push | User requested final commits and push, but initial push of `af5d722` failed remote authentication and no successful push evidence is recorded after Step `12` local commits. This is external to Stage 6 evidence and must not alter credentials, remotes, branch history or implementation scope. | root/user remote auth | open | | AUDIT-001 | projection-implementation | Passed by STEP11-EXECUTION-004: `/global/equilibrium` and reference comparator tests cover current nodal positions, spatial physical nodal moments about global origin, distinct global balance/free residual projections, and nonzero prescribed motion without raw full residual/initial-coordinate shortcut. | `implementation-planning-agent` / `implementation-agent` | passed | | MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | | TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | @@ -349,8 +346,8 @@ - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. -- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, and STEP11-EXECUTION-004 passed. STEP12-EXECUTION-001 is active; no correction loop is active. -- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, Step `11` implementation is passed and Step `12` is explicitly authorized for evidence-doc closure. Physics/Release remain ineligible until Step `12` owner return and Coordinator audit pass. +- correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, STEP11-EXECUTION-004 passed, and STEP12-EXECUTION-001 passed. No correction loop is active. +- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, Step `11` implementation is passed and Step `12` evidence-doc closure is passed. Stage 7 Physics Evaluation is now the next eligible gate, but it is not dispatched by this audit. ## 7. Final Workflow Closure @@ -360,12 +357,12 @@ ## 8. No-Change Assertion -- source_code: Steps 0..11 implementation source changes are committed through Harness; Step `11` implementation commit is `6dbf1b2`. Coordinator did not edit source code. -- tests: Step `11` comparator/test changes are committed through Harness. Focused procedure/HDF5 `7/7`, threshold `2/2`, and fresh Stop `302/302` passed. Coordinator did not edit tests. +- source_code: Steps 0..11 implementation source changes are committed through Harness; Step `11` implementation commit is `6dbf1b2`. Step `12` range contains no source-code diff. Coordinator did not edit source code. +- tests: Step `11` comparator/test changes are committed through Harness. Step `12` range contains no test diff; owner reports focused commands and full CTest `302/302` passed. Coordinator did not edit tests. - CMake: Step `11` owner committed `tests/CMakeLists.txt` changes; REWORK-006 added tracked `CMakePresets.json` for DECISION-039 Ninja/MSVC validation. Coordinator did not edit CMake configuration. - reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 -- phase_files: Metadata commit `c58ba9f` records Step `11` `completed` with summary and `completed_at=2026-08-28T09:22:33+0900`; Steps 0..10 remain completed, Step `12` remains pending, and top phase remains pending. Coordinator did not edit phase files. -- Harness: STEP11-EXECUTION-004 completed with all-WindowsApps child PATH filtering under Codex CLI `0.150.1`; no push occurred and worktree was clean before Coordinator update. STEP12-EXECUTION-001 is now dispatch-ready under the same envelope. Coordinator did not run Harness/phase/build/test command, advance Physics/Release, use `danger-full-access`, clean build outputs, commit or push. -- feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `phases/index.json` SHA-256 `307D8041537D73B579E53F96B052BA035774B65ABF071BB230AAE20CFCF966A7`, phase index SHA-256 `E707372018A7F5DE86CDB40277AE567FE86915C47EFDB38A687E71DD65A2C9EB`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. Implementation Agent created only `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`. This coordinator update changed only isolated `coordination.md`; `implementation-report.md`, `build-test.md`, and canonical `reference-comparison.md` are still absent. +- phase_files: Step `12` metadata commit `624807a` records phase completion; `phases/index.json` SHA-256 `5FA3225F73E4B4FB6A7CFCD049DD66FF21715DFB41A91BB14F47ABDFE45378BD` and phase index SHA-256 `B941B903746DA19F1460C1022FE3501DFC44CE09E5D72CCCCCB7E38D7D55FD22`; Steps 0..12 are completed and top phase is completed. Coordinator did not edit phase files. +- Harness: STEP12-EXECUTION-001 completed under the approved envelope with owner-reported exitCode `0`, fresh configure/build/discovery/focused/full CTest and reference gate pass. Coordinator did not run Harness/phase/build/test command, advance Physics/Release, use `danger-full-access`, clean build outputs, commit or push. +- feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. STEP12-EXECUTION-001 created `implementation-report.md` SHA-256 `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`, `build-test.md` SHA-256 `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328` and minimal `docs/PRD.md`/`docs/ARCHITECTURE.md`/`docs/ADR.md` sync. This coordinator update changed only isolated `coordination.md`. - correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. From 06861608da5ffa4c09b786c3f5052dc7c6604e1b Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 23:23:16 +0900 Subject: [PATCH 31/32] docs(nonlinear-static-newton-raphson): complete physics gate --- .../coordination.md | 74 +++++----- .../physics-evaluation.md | 138 ++++++++++++++++++ .../reference-comparison.md | 4 + 3 files changed, 178 insertions(+), 38 deletions(-) create mode 100644 docs/nonlinear-static-newton-raphson/physics-evaluation.md diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index bfa3ea7..b6cc27c 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -3,16 +3,16 @@ ## 1. Metadata and Feature Scope - feature_id: `nonlinear-static-newton-raphson` -- workflow_state: `needs-physics-evaluation` +- workflow_state: `needs-release` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-28` (STEP12-EXECUTION-001 owner return audited; Stage 6 passed, Physics dispatch not started) +- last_updated: `2026-08-28` (STAGE7-PHYSICS-002 return audited; Stage 7 passed, Release not dispatched) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Stage 6 Implementation gate is passed after Step `12` owner return/code-review audit. Stop before Physics/Release dispatch; next eligible gate is Stage 7 Physics evaluation under a separate bounded dispatch. -- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Steps `11` and `12` are completed under the approved Codex CLI `0.150.1`/Ninja/MSVC envelope. No push, no `danger-full-access`, no reference mutation/solver and no automatic Physics/Release dispatch in this audit. Any required change beyond the fixed `1e-8` global balance threshold stops as blocker. +- current_goal: Stage 7 Physics Evaluation is passed after PHYS-STATUS-001 reconciliation and owner rerun. Stop before Release; Stage 8 is the next eligible gate. +- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Steps `11` and `12` are completed under the approved Codex CLI `0.150.1`/Ninja/MSVC envelope. Stage 7 rework is limited to the Stage 6 owner status-only `reference-comparison.md` reconciliation and Physics owner `physics-evaluation.md` revision; no push, no `danger-full-access`, no reference mutation/solver, no source/tests/CMake/upstream/tolerance edit, and no Release dispatch in this audit. Any required contract change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -24,9 +24,9 @@ | 3. Formulation | `formulation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/formulation.md` | §14.1만 USER-DECISION-003 option 1로 갱신하고 strong/weak form, kinematics, tangent/residual, integration, state/recovery, O-ROT/O-MAP/O-DRILL/O-MOM/O-BC closure를 보존함 | Owner returned `ready-for-coordinator-and-user-reapproval`, SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`, §14.1-only diff `34` additions/`5` deletions, revised requirements hash matched, 13/13 contract assertions and diff check passed, no other owner file changes. Coordinator audit passed and user explicitly re-approved this hash on 2026-08-24: exact-zero branch selector is matching external residual-channel scale, nonzero external scale retains relative `max(internal, external)` denominator and `1e-2`, typed absolutes remain `1e-3`, correction gates/four-channel AND/lifecycle/reference disposition unchanged. | 없음 | 3 | | 4. Numerical/reference review | `numerical-review-agent` | `passed` | `docs/nonlinear-static-newton-raphson/numerical-review.md`; `docs/nonlinear-static-newton-raphson/reference-model.md` | USER-DECISION-006 delegated reapproval: both normalized factor-one global FORCE and MOMENT balance gates are fixed `<=1e-8`, with exact formulas, sum-of-contribution scales, zero-scale rule, source identity and USER-DECISION-004 dispositions preserved | Owner returned `pass-for-io-definition`, blockers none. Coordinator audit verified hashes `numerical-review.md` `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `reference-model.md` `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; both reports record global force/moment normalized gate `<=1e-8`, unchanged formulas/scales/exact-zero/current-arm/spatial moment/factor-one/NSNR-069/`docs/TOLERANCE.md` boundaries, 12 reference hashes/length/mtime unchanged, fine primary/coarse companion, U blocking, UR warning-only, local RF/RM review-only and `RM3`/stress excluded. Root independently verified hashes, target occurrences and `git diff --check` with only LF/CRLF warnings. | 없음 | 6 | | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | -| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Step `12` evidence-doc closure follows `phases/nonlinear-static-newton-raphson/step12.md`; canonical Stage 6 reports and directly-superseded PRD/ARCHITECTURE/ADR sync are actual-evidence-only and no C++/tests/CMake/Harness/reference/tolerance change is allowed | STEP12-EXECUTION-001 owner return/code-review audit passed. Owner produced `implementation-report.md` SHA-256 `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`, `build-test.md` SHA-256 `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328`, minimal `docs/PRD.md`/`docs/ARCHITECTURE.md`/`docs/ADR.md` sync, Step `12` output SHA-256 `6F112880F20EE125E219EDF3038F395A28F3692D2F5B6CCC3AB3369EF3AC22BE`, and phase metadata completion. Coordinator reviewed diff `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9`: changed files are exactly the three reports, PRD/ARCHITECTURE/ADR, and two phase indexes; no source/test/CMake/Harness/tolerance/reference/upstream feature-doc diff. Owner evidence records Harness exit `0`, fresh configure/build/discovery/focused/full CTest with `302/302` pass, reference artifact 12-path hash/size/mtime immutability, blocking `<=1e-8` global force/moment/free residual pass, U blocking pass, UR warning-only pass, local RF/RM review-only findings, and no `fesa.env`/runtime config. Coordinator found no Critical/Important/Minor tracked-file finding. Current ephemeral `LastTest.log` was later overwritten to an empty 21:11 run, so the Stop-log timestamp is treated as owner/root transcript evidence rather than current untracked-file evidence. | 없음 | 36 | -| 7. Physics evaluation | `physics-evaluation-agent` | `pending` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | Stage 6 passed and is eligible for the next bounded Physics Evaluation dispatch; this Coordinator audit did not start it. | 없음 | 0 | -| 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | 없음 | Stage 7 passing evidence 필요 | 0 | +| 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Add one unambiguous overall handoff status `pass-for-physics-evaluation` to `reference-comparison.md` while preserving detailed verdict `blocking-pass-with-review-only-findings`, all evidence/dispositions and no-change assertions | Owner returned `pass-for-physics-evaluation`, blockers none, SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. Coordinator verified exact `4`-line status-only diff, both required status/verdict tokens, all six review-only findings and `<=1e-8` metrics retained, whitespace clean, and no reference artifact or other owner-path change. | 없음 | 38 | +| 7. Physics evaluation | `physics-evaluation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | STAGE7-PHYSICS-002 returned `pass-for-release-agent`, blockers none, SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`. Corrected Stage 6 hash/status resolved PHYS-STATUS-001. Prior fresh focused CTest `23/23`, canonical reference hash audit, and physical checks remain passing; historical requirements metadata is nonblocking; four declared open items are nonblocking/known limitations. Coordinator verified all eight sections, exact corrected input hash, pass/handoff boundaries, whitespace, no Release file/dispatch, and no forbidden change. | 없음 | 2 | +| 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | Stage 7 owner `pass-for-release-agent` and Coordinator audit passed; Stage 8 is eligible but not dispatched in this turn. | 없음 | 0 | ## 3. Active Dispatch Package and Latest Sub-Agent Return @@ -37,38 +37,26 @@ - target_sub_agent: `none` - required_inputs: 없음 - expected_outputs: 없음 -- acceptance_gate: Stage 6 Implementation passed by STEP12-EXECUTION-001 owner return and Coordinator audit. Next eligible work item is Stage 7 Physics Evaluation, but this audit does not dispatch it. -- stop_condition: Do not dispatch Physics/Release, run Harness/build/CTest/solver/reference solver, edit source/tests/CMake/Harness/tolerance/reference artifacts, commit or push from this Coordinator audit. -- missing_evidence: Stage 7 `physics-evaluation.md` and Stage 8 `release.md` remain absent. +- acceptance_gate: Stage 7 passed with owner `pass-for-release-agent`. Next eligible action is the separately bounded Stage 8 `release-agent` audit. +- stop_condition: Do not dispatch Release, commit or push from this Stage 7 Coordinator turn. Preserve Stage 6/7 evidence and all source/tests/CMake/Harness/reference/tolerance files. +- missing_evidence: Stage 8 `release.md` and `ready-for-release` owner recommendation. ### Latest Sub-Agent Return -- target_sub_agent: `implementation-agent` via Harness Executor +- target_sub_agent: `physics-evaluation-agent` - output_paths: - - `docs/nonlinear-static-newton-raphson/implementation-report.md` - - `docs/nonlinear-static-newton-raphson/build-test.md` - - `docs/nonlinear-static-newton-raphson/reference-comparison.md` - - `docs/PRD.md` - - `docs/ARCHITECTURE.md` - - `docs/ADR.md` - - `phases/index.json` - - `phases/nonlinear-static-newton-raphson/index.json` - - `phases/nonlinear-static-newton-raphson/step12-output.json` -- status: Step `12` `completed`; owner classification `pass-for-physics-evaluation`; Coordinator decision `passed` + - `docs/nonlinear-static-newton-raphson/physics-evaluation.md` +- status: owner `pass-for-release-agent`; Coordinator decision `passed` - evidence_summary: - - Harness Step `12` exitCode `0`; commits in review range are `bf9487e` Step 12 reports/docs, `7f8eada` Step 12 output, and `624807a` phase completion. Current HEAD is `624807a13543454ffbb6b0301e06bf8f79fbeeb9`. - - Phase index records Step `12` `completed` at `2026-08-28T21:08:58+0900`; top phase `nonlinear-static-newton-raphson` is `completed`. - - Output hashes: `implementation-report.md` `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`; `build-test.md` `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`; `reference-comparison.md` `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328`; `step12-output.json` `6F112880F20EE125E219EDF3038F395A28F3692D2F5B6CCC3AB3369EF3AC22BE`. - - Step `12` evidence reports record freshness RED `NSNR-EVID-001..007`, fresh configure/build/discovery/focused/full CTest command log, full CTest `302/302`, nonlinear reference commands `9/9`, and final classification `pass-for-physics-evaluation` / `blocking-pass-with-review-only-findings`. - - Reference comparison records fine primary/coarse companion/linear control, U blocking pass, UR warning-only pass, local RF/RM review-only findings, `RM3`/stress excluded, internal global force/moment `<=1e-8`, NSNR-069 free residual pass, copied-input HDF5/log paths and 12 artifact pre/post hash/size/mtime equality. - - Coordinator diff review of `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9` found exactly allowed changed paths: three canonical reports, `docs/PRD.md`, `docs/ARCHITECTURE.md`, `docs/ADR.md`, `phases/index.json`, and `phases/nonlinear-static-newton-raphson/index.json`. - - No source, test, CMake, Harness, tolerance, reference artifact or upstream feature contract file changed in the Step `12` range; `git status --short` was clean before this Coordinator update. - - Evidence caveat: current untracked `.harness/build-ninja-msvc-debug/Testing/Temporary/LastTest.log` is now a later empty 21:11 run, so the supplied 21:08:57 Stop `302/302` detail is preserved through owner/root transcript and report evidence rather than the current ephemeral log file. + - `physics-evaluation.md` SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`; corrected source reference-comparison hash matches `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. + - `PHYS-STATUS-001` is resolved; all documented equilibrium, reaction, displacement/path, symmetry/objectivity, stress sanity, rigid-body, residual/energy and model-coverage checks pass. + - Fresh focused CTest `23/23` and canonical reference hash audit from STAGE7-PHYSICS-001 remain the owner evidence; no rerun was required for the report-only status reconciliation. + - Requirements draft/pending metadata remains nonblocking under authoritative current-hash approval; local RF/RM/stress/model-limit items remain nonblocking or known limitations. - blockers: - 없음 -- self_audit_findings: No Critical, Important or Minor tracked-file findings. The reports and PRD/ARCHITECTURE/ADR sync are scoped to Step `12` and do not claim Physics/Release readiness or Abaqus internal equivalence. -- return_contract_check: Return includes required output paths, completed status, evidence summary, phase metadata, commits and blockers. Executor-owned metadata and commits are present; no push evidence is available. -- acceptance_evidence_check: Stage 6 Implementation gate passes and workflow advances to `needs-physics-evaluation`; Coordinator does not dispatch Stage 7 in this audit. +- self_audit_findings: Physics owner revised only `physics-evaluation.md`; no source/test/CMake/Harness/upstream/reference/tolerance mutation, external reference solver or Release judgment. +- return_contract_check: Output path, `pass-for-release-agent`, evidence summary, blockers, SHA-256 and no-change/handoff boundaries are complete; Coordinator hash/section/whitespace/scope audit passed. +- acceptance_evidence_check: Stage 7 passes and workflow advances to `needs-release`; Release remains undispatched in this turn. ### USER-DECISION-004 Selected Path @@ -243,10 +231,16 @@ | 2026-08-28 | STEP11-EXECUTION-004 return and Coordinator audit | `passed` | Harness Step `11` completed with implementation commit `6dbf1b2`, metadata commit `c58ba9f`, phase completion `2026-08-28T09:22:33+0900`, Step `12` pending, clean worktree before Coordinator update, no push. Fresh LastTest.log mtime `2026-08-28 09:22:32` has `302/302` pass; focused procedure/HDF5 `7/7` and threshold `2/2` pass; stale LastTestsFailed.log is from prior RED; reference diff clean and reference artifacts unchanged by supplied hash/mtime evidence. | `needs-implementation` | Stop before Step `12`; await explicit Step `12` Harness/Implementation request | | 2026-08-28 | STEP12-EXECUTION-001 evidence-doc closure dispatch package | `in-progress` | User explicitly approved Step `12` execution. Coordinator verified clean worktree, HEAD `af5d72233c2bcd00edc087531d10eb92f7232d3e`, Step `11` completed, Step `12` pending, canonical reports absent and Step `12` scope: create actual-evidence-only `implementation-report.md`, `build-test.md`, `reference-comparison.md`, plus minimal directly-superseded PRD/ARCHITECTURE/ADR sync only. | `needs-implementation` | Root/Executor may run Step `12` under the prior successful Codex `0.150.1` all-WindowsApps-filter envelope; C++/tests/CMake/Harness/reference/tolerance changes, reference solver, Physics/Release dispatch and Coordinator execution remain forbidden | | 2026-08-28 | STEP12-EXECUTION-001 return and Coordinator code-review audit | `passed` | Implementation Agent/Harness returned Step `12` completed, exitCode `0`, owner classification `pass-for-physics-evaluation`. Coordinator reviewed reports, phase metadata and diff range `d275e844f27107cfab52309025e259f2156345d2..624807a13543454ffbb6b0301e06bf8f79fbeeb9`; changed paths are allowed reports/global docs/phase metadata only, `git diff --check` for the range exits `0`, source/tests/CMake/Harness/tolerance/reference/upstream feature docs are unchanged, and no tracked-file Critical/Important/Minor finding was found. | `needs-physics-evaluation` | Stage 6 passed; next eligible action is bounded Stage 7 Physics Evaluation dispatch, not started by this audit | +| 2026-08-28 | STAGE7-PHYSICS-001 dispatch package | `in-progress` | User explicitly requested Stage 7 only. Coordinator state audit verified HEAD `014f6a7926f00950c62f8109226b2d4ab93efd36`, clean worktree before coordination update, Stage 6 passed, `implementation-report.md`/`build-test.md` classification `pass-for-physics-evaluation`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328`, and absent `physics-evaluation.md`. Dispatch requires `physics-evaluation-agent` with `fesa-physics-sanity`; it must audit the `reference-comparison.md` verdict wording and historical `requirements.md` draft/pending metadata against authoritative Coordinator/user approvals before issuing any pass. | `needs-physics-evaluation` | Await Physics owner return; do not dispatch Release, commit, push, run Harness/build/CTest/solver/reference solver, or edit source/tests/CMake/upstream contracts/reference/tolerance | +| 2026-08-28 | STAGE7-PHYSICS-001 return and Coordinator audit | `needs-rework` | Physics owner created only `physics-evaluation.md`, SHA-256 `01BDD1EB986E2F227A8830495B464B4DA7A977D8B9248CFD87351A415E03A10B`, and returned `needs-upstream-decision`. Fresh focused physics CTest `23/23` and 12-reference hash audit passed; no documented physical failure was found. Coordinator verified all required sections, hash, `git diff --check`, no forbidden changed path, and accepted the single upstream report-contract blocker `PHYS-STATUS-001`: required `reference-comparison.md` lacks `pass-for-physics-evaluation`. Historical requirements draft/pending metadata is nonblocking under the recorded explicit user approval of the current hash. | `needs-implementation` | Route one bounded report-only status reconciliation to `implementation-agent`, then rerun Physics; Release remains ineligible and was not dispatched | +| 2026-08-28 | PHYS-STATUS-001-IMPLEMENTATION-001 dispatch package | `in-progress` | User authorized both Stage 7/8 gates and Coordinator rework routing. Package assigns exactly one `implementation-agent` to edit only `reference-comparison.md`: add overall handoff `pass-for-physics-evaluation` while preserving detailed `blocking-pass-with-review-only-findings`, all values/dispositions/findings/hashes/no-change assertions. | `needs-implementation` | Await owner return; no tests/solver/evidence regeneration or other file edit; do not rerun Physics or dispatch Release before audit | +| 2026-08-28 | PHYS-STATUS-001-IMPLEMENTATION-001 return and Coordinator audit | `passed` | Implementation owner returned `pass-for-physics-evaluation`, blockers none, changed only `reference-comparison.md`, SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. Coordinator verified an exact four-line handoff addition, retained detailed verdict/six review-only findings/all metrics and artifact evidence, clean whitespace, no reference diff, and no forbidden owner change. | `needs-physics-evaluation` | Rerun Stage 7 with corrected exact status; do not dispatch Release before Physics owner pass | +| 2026-08-28 | STAGE7-PHYSICS-002 rerun package | `in-progress` | Same Physics owner must revise only `physics-evaluation.md` against corrected Stage 6 hash, retain prior audited physical evidence, independently resolve `PHYS-STATUS-001`, and return `pass-for-release-agent` only if no remaining blocker exists. | `needs-physics-evaluation` | Await Physics owner return; no Release dispatch, commit/push or other file mutation | +| 2026-08-28 | STAGE7-PHYSICS-002 return and Coordinator audit | `passed` | Physics owner returned `pass-for-release-agent`, blockers none, revised only `physics-evaluation.md`, SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`. Coordinator verified corrected Stage 6 hash/status, resolved PHYS-STATUS-001, eight required sections, prior fresh focused CTest `23/23` and reference hash evidence, all physics checks pass, only nonblocking/known-limit open items, explicit non-Release meaning, whitespace clean, no forbidden path/reference diff and no Release file. | `needs-release` | Stop before Release; root owns requested Stage 7 commit/push, then Stage 8 becomes the next bounded dispatch | - current_dispatch: `none` -- current_workflow_state: `needs-physics-evaluation` -- next_gate_requires_user_approval: `true` for Stage 7 Physics Evaluation dispatch under the current request boundary; `true` for any C++/tests/CMake/Harness/reference/tolerance change, reference solver/artifact mutation, `fesa.env`/runtime config/product behavior, push credential/remote/history change, or Release. +- current_workflow_state: `needs-release` +- next_gate_requires_user_approval: `false` for the already requested Stage 8 Release audit after root completes the requested Stage 7 commit/push; `true` for any numerical value/disposition/source/tests/CMake/Harness/reference/tolerance change, external solver/artifact mutation or publish/deploy/package/tag action. ## 5. Risk, Blocker, and User-Decision Register @@ -280,7 +274,10 @@ | STEP11-EXECUTION-004 | implementation-dispatch | Passed: Step `11` completed and committed under corrected all-WindowsApps child PATH filter. Implementation commit `6dbf1b2`; metadata commit `c58ba9f`; focused and Stop evidence passed; Step `12` remains pending and unstarted. | `implementation-agent` / Harness Executor / Coordinator | passed | | STEP12-EXECUTION-001 | implementation-dispatch | Passed: Step `12` evidence-doc closure completed with canonical Stage 6 reports, minimal PRD/ARCHITECTURE/ADR sync, Executor-owned phase metadata/output and local commits. Coordinator code-review audit found no tracked-file Critical/Important/Minor finding and no forbidden source/tests/CMake/Harness/reference/tolerance change. | `implementation-agent` / Harness Executor / Coordinator | passed | | BLOCKER-005 | dispatch-runtime | This Coordinator runtime exposes no callable collaboration `spawn_agent` tool and `tool_search` found no dispatch tool. Root completed prior profile/Harness dispatches through Step `12`; no active dispatch remains. Future Stage 7 dispatch still requires root/profile launch if this runtime remains unchanged. | coordinator/root tooling | closed-no-current-dispatch | -| PUSH-001 | external-push | User requested final commits and push, but initial push of `af5d722` failed remote authentication and no successful push evidence is recorded after Step `12` local commits. This is external to Stage 6 evidence and must not alter credentials, remotes, branch history or implementation scope. | root/user remote auth | open | +| PUSH-001 | external-push | Closed before Stage 7 intake: branch HEAD `014f6a7926f00950c62f8109226b2d4ab93efd36` matched `origin/feat-nonlinear-static-newton-raphson` with no ahead/behind marker. Stage 7 commit/push remains root-owned after this audit. | root/user remote auth | closed | +| STAGE7-PHYSICS-001 | physics-evaluation-dispatch | Needs rework: owner found no physical failure but withheld `pass-for-release-agent` because required `reference-comparison.md` has no `pass-for-physics-evaluation` handoff status. | `physics-evaluation-agent` / Coordinator | needs-rework | +| PHYS-STATUS-001 | upstream-report-contract | Resolved: Implementation owner added unambiguous overall `pass-for-physics-evaluation` while preserving detailed `blocking-pass-with-review-only-findings` and all evidence. Coordinator verified corrected SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241` and exact status-only diff. | `implementation-agent` through Coordinator | passed | +| STAGE7-PHYSICS-002 | physics-evaluation-dispatch | Passed: owner returned `pass-for-release-agent`, blockers none; Coordinator audit verified SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`, corrected input hash, physics evidence and no-change/Release boundaries. | `physics-evaluation-agent` / Coordinator | passed | | AUDIT-001 | projection-implementation | Passed by STEP11-EXECUTION-004: `/global/equilibrium` and reference comparator tests cover current nodal positions, spatial physical nodal moments about global origin, distinct global balance/free residual projections, and nonzero prescribed motion without raw full residual/initial-coordinate shortcut. | `implementation-planning-agent` / `implementation-agent` | passed | | MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | | TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | @@ -342,12 +339,12 @@ ## 6. Rework-Loop Control and Stop Condition -- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 3; `harness-console-cp949-retry-glyph-unicodeencodeerror`: 1; `harness-msbuild-filetracker-eaccessdenied-workspace-write`: 2; `implementation-shellnl-nonlinear-nonconvergence-no-hdf5`: 1; `reference-blocking-model-adequacy-conflict`: 1; `upstream-global-moment-balance-gate-threshold-conflict`: 1; `harness-launch-path-filter-missed-user-windowsapps-pwsh-access-denied`: 2 +- normalized_failure_attempts: `requirements-next-question-routing-mismatch`: 1; `requirements-output-failure-atomicity-scope-ambiguity`: 1; `requirements-compact-public-contract-omission`: 1; `formulation-equilibrium-reaction-symbol-collision`: 1; `formulation-moment-admissibility-work-inconsistency`: 1; `numerical-review-cross-report-disposition-contradiction`: 1; `io-contract-public-cli-log-output-request-gap`: 1; `harness-nested-codex-windows-shell-tool-execution-hang`: 3; `harness-console-cp949-retry-glyph-unicodeencodeerror`: 1; `harness-msbuild-filetracker-eaccessdenied-workspace-write`: 2; `implementation-shellnl-nonlinear-nonconvergence-no-hdf5`: 1; `reference-blocking-model-adequacy-conflict`: 1; `upstream-global-moment-balance-gate-threshold-conflict`: 1; `harness-launch-path-filter-missed-user-windowsapps-pwsh-access-denied`: 2; `physics-reference-comparison-handoff-status-mismatch`: 1 - automatic_rework_limit: 동일 normalized failure classification `2`회 - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. - correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, STEP11-EXECUTION-004 passed, and STEP12-EXECUTION-001 passed. No correction loop is active. -- upstream_reapproval_sequence: Prior USER-DECISION-003 and USER-DECISION-004 sequences remain closed. USER-DECISION-006 supersedes prior moment-only `1e-9` and withdraws `fesa.env`/runtime-config; Stage 4 Numerical/reference is passed by REAPPROVAL-010, Stage 5 I/O is passed by REAPPROVAL-011, Stage 6 planning materialization is passed by REAPPROVAL-012, REWORK-009 environment correction is passed, Step `11` implementation is passed and Step `12` evidence-doc closure is passed. Stage 7 Physics Evaluation is now the next eligible gate, but it is not dispatched by this audit. +- upstream_reapproval_sequence: Prior USER-DECISION-003/004/006 sequences remain closed. PHYS-STATUS-001 report-only Stage 6 reconciliation passed on first attempt, STAGE7-PHYSICS-002 returned `pass-for-release-agent`, and Coordinator audit passed. Stage 8 is eligible but remains undispatched until the requested Stage 7 commit/push is handled by root. ## 7. Final Workflow Closure @@ -363,6 +360,7 @@ - reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 - phase_files: Step `12` metadata commit `624807a` records phase completion; `phases/index.json` SHA-256 `5FA3225F73E4B4FB6A7CFCD049DD66FF21715DFB41A91BB14F47ABDFE45378BD` and phase index SHA-256 `B941B903746DA19F1460C1022FE3501DFC44CE09E5D72CCCCCB7E38D7D55FD22`; Steps 0..12 are completed and top phase is completed. Coordinator did not edit phase files. -- Harness: STEP12-EXECUTION-001 completed under the approved envelope with owner-reported exitCode `0`, fresh configure/build/discovery/focused/full CTest and reference gate pass. Coordinator did not run Harness/phase/build/test command, advance Physics/Release, use `danger-full-access`, clean build outputs, commit or push. +- Harness: STEP12-EXECUTION-001 completed under the approved envelope with owner-reported exitCode `0`, fresh configure/build/discovery/focused/full CTest and reference gate pass. Physics owner additionally ran focused CTest `23/23`; Coordinator did not run Harness/build/test, dispatch Release, use `danger-full-access`, clean outputs, commit or push. - feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. STEP12-EXECUTION-001 created `implementation-report.md` SHA-256 `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`, `build-test.md` SHA-256 `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328` and minimal `docs/PRD.md`/`docs/ARCHITECTURE.md`/`docs/ADR.md` sync. This coordinator update changed only isolated `coordination.md`. +- stage7_rework_documents: PHYS-STATUS-001-IMPLEMENTATION-001 changed only `reference-comparison.md` to SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`; STAGE7-PHYSICS-002 revised only `physics-evaluation.md` to SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`; Coordinator changed only `coordination.md`. - correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. diff --git a/docs/nonlinear-static-newton-raphson/physics-evaluation.md b/docs/nonlinear-static-newton-raphson/physics-evaluation.md new file mode 100644 index 0000000..4e04b9d --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/physics-evaluation.md @@ -0,0 +1,138 @@ +# Nonlinear Static Newton-Raphson Physics Evaluation + +## 1. Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| source reference comparison report | `docs/nonlinear-static-newton-raphson/reference-comparison.md` | +| source reference comparison SHA-256 | `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241` | +| source reference model | `docs/nonlinear-static-newton-raphson/reference-model.md` | +| source reference model SHA-256 | `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA` | +| status | `pass-for-release-agent` | +| owner_agent | `physics-evaluation-agent` | +| date | `2026-08-28` | + +이 평가는 승인된 물리 acceptance scope와 이미 생성된 accepted-state evidence만 사용한다. +Abaqus 또는 다른 reference solver를 실행하지 않았고, 외부 solver의 내부 정식화·적분·안정화· +결과 복구 동등성을 주장하지 않는다. + +## 2. Input Evidence + +### 2.1 Gate-entry audit + +- `implementation-report.md`와 `build-test.md`의 Stage 6 owner classification은 + `pass-for-physics-evaluation`이며 full CTest `302/302`, nonlinear reference `9/9` 통과를 + 기록한다. +- Corrected required source `reference-comparison.md`는 overall handoff status를 + `pass-for-physics-evaluation`로 명시한다. Detailed verdict + `blocking-pass-with-review-only-findings`는 모든 blocking numerical family가 통과하고 six + local RF/RM findings만 review-only라는 세부 분류로 함께 유지된다. 두 status는 서로 + 모순되지 않으며 `PHYS-STATUS-001`은 해소되었다. +- `requirements.md` metadata의 `status: draft`, `approved_by: pending user re-approval` 및 + `FESA-REQ-NSNR-069`의 historical `draft` 표시는 내용상 physics blocker가 아니다. + Authoritative `coordination.md` Stage 1 record는 현재 requirements SHA-256 + `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`가 + `2026-08-27` 사용자에게 명시적으로 재승인되었고 Stage 1이 `passed`임을 기록한다. + 따라서 이 stale metadata를 승인 부재로 재해석하지 않는다. + +### 2.2 Solver outputs and logs + +| case | checked authoritative/generated evidence | SHA-256 / observed identity | +| --- | --- | --- | +| `shellnl-meshfine-s4-final` | build-local `shellNL-meshfine_results.h5` | `2E9817E173D73FD91C2D34864B69A1EC37483CB25951FB7CCE85895A6C87D2C6`; accepted frames 10; unique factor-one frame 9/increment 10; 2 iterations per increment | +| `shellnl-meshfine-s4-final` | build-local `shellNL-meshfine_log.txt` | `1DB6FE4AAA2F1443ACC7F9B3F919CC8DD873C90392121DAB6509F1693435DA27`; 20 entered-iteration records; each increment continues once and accepts on iteration 2 | +| `shellnl-s4-final` | build-local `shellNL_results.h5` | `130E2E7B73B022F216A7A34C88D58114A62595ADD556A0D202B8A7FAC7391F39`; accepted frames 10; unique factor-one frame 9/increment 10; 2 iterations per increment | +| `shellnl-s4-final` | build-local `shellNL_log.txt` | `3D5C4F1B20384655F9012ADE842B99E3B06B3799FC9AB16DD6FD141E18B77906`; 20 entered-iteration records; each increment continues once and accepts on iteration 2 | +| `shell-s4-linear-limit` | build-local `shell_results.h5`, `shell_log.txt` | HDF5 `8AEE34D5BC80382D7E6DE85C51F0F8BCBF451CD5F5C7B8DDA6C585EB22B31763`; zero-byte log `E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855` | + +HDF5는 `reference-comparison.md`에 적힌 build-local exact path에서 직접 읽었다. Optional FESA +debug CSV view는 선언되거나 필요하지 않아 사용하지 않았다. Factor-one +`nodal/displacement`, `global/equilibrium`, `global/energy`, direct shell stress와 +`accepted_frames`를 확인했다. + +### 2.3 Read-only reference evidence + +Canonical reference bundle은 `reference-comparison.md`가 inventoried한 12개 exact file을 사용했다. + +- `reference/shellNL-meshfine/`: input, displacement, reaction, stress inventory +- `reference/shellNL/`: input, displacement, reaction, stress inventory +- `reference/shell/`: linear input, displacement, reaction inventory, stress inventory + +각 SHA-256은 `reference-model.md`와 `reference-comparison.md` inventory에 일치한다. 비교량은 +fine/coarse/linear `U1/U2/U3` blocking, `UR1/UR2/UR3` warning-only, fine/coarse local +`RF1/RF2/RF3`와 physical spatial `RM1/RM2` review-only다. `RM3`와 stored element-corner +stress는 numerical comparison에서 제외되었다. + +Reference model의 목적은 중앙 `DOF 3=-100000` fixed-global dead load를 받고 둘레의 all-six +DOF가 고정된 `10 x 10`, thickness `0.5` square plate의 coarse/fine nonlinear response와 +linear-limit source identity를 검증하는 것이다. Nonlinear cases는 `0.1` 간격으로 factor one까지 +진행한다. + +## 3. Physics Checks + +| physics check | result | evidence and interpretation | +| --- | --- | --- | +| global equilibrium | `pass` | Fine normalized force `2.09625758e-12`, moment `2.74546602e-10`; coarse force `8.25122661e-12`, moment `1.41375091e-10`. 네 값 모두 approved inclusive `<=1e-8`다. HDF5 `/global/equilibrium`은 `location=global-balance-error`, current arm, global origin `[0,0,0]`, spatial moment 의미를 가진다. | +| reaction consistency | `pass` | Applied `F3=-100000`에 대해 constrained-reaction resultant `F3`는 fine/coarse 모두 약 `+100000`이고 다른 force components는 roundoff 수준이다. Applied-plus-reaction force/moment와 accepted free force/moment residual이 각각 blocking gate를 통과했다. Local RF/RM six-family discrepancy는 승인 계약상 review-only nodal redistribution evidence이며 global reaction/resultant identity를 대체하지 않는다. | +| displacement direction | `pass` | Downward load에 대해 node 2 final `U3`는 fine `-2.56338e-5`, coarse `-2.35504e-5`; reference도 각각 `-2.57957054e-5`, `-2.37408203e-5`다. HDF5 path는 factor `0.1..1.0`에서 fine `-2.56338e-6 .. -2.56338e-5`, coarse `-2.35504e-6 .. -2.35504e-5`로 부호 반전·jump·rollback 없이 진행한다. | +| symmetry / expected zero | `pass` | Center node 2의 factor-one `U1/U2`와 rotations는 fine/coarse에서 약 `1e-17` 이하로, centered load와 symmetric all-edge constraint의 expected-zero response와 일치한다. Fresh physics-focused CTest에서 finite rigid objectivity, zero internal force, rigid translation nullspace와 no-moment tangent symmetry checks가 통과했다. | +| element force balance | `covered-by-approved-invariants` | 승인 HDF5에는 standalone element nodal-action balance dataset이 없고 external element-force comparison도 요구되지 않는다. 대신 complete element residual/tangent same-trial identity, patch recovery, stable assembly covariance tests와 accepted global/free equilibrium gate가 문서화된 expectation을 충족한다. 별도 element-force output을 invent하지 않았다. | +| stress/strain | `pass-sanity-evidence` | HDF5 direct fixed-reference Gauss stress는 finite다. Element 1/GP1의 `[S11,S22,S12]`는 fine bottom `[-264846,-77843.6,914.879]`, middle `[1.94695,0.530775,-0.0224511]`, top `[264850,77844.8,-914.925]`; coarse도 bottom/top sign이 반대이고 middle이 작아 centered plate bending sign/thickness pattern과 일치한다. Stored CSV는 corner/SPOS-SNEG identity로 위치가 달라 numerical stress comparison이 승인되지 않았으므로 이를 tolerance pass로 재분류하지 않는다. | +| rigid body mode | `pass` | 둘레 all-six-DOF support가 global rigid-body motion을 제거하고, accepted path에 비정상 large translation 또는 singular/nonfinite 증상이 없다. Fresh focused tests에서 proper triad/director, finite rigid objectivity, zero internal force, rigid nullspace와 invalid branch rejection을 확인했다. | +| energy/residual | `pass-sanity-evidence` | Factor-one physical strain energy는 fine `1.28169`, coarse `1.17752`로 finite positive이며 near-linear relation `0.5*100000*abs(U3_center)`와 일치한다. 이는 secondary sanity evidence이고 승인 energy convergence gate는 아니다. Fine/coarse accepted free force/moment residual은 NSNR-069 blocking gate를 통과했고 log에는 nonfinite/failed accepted state가 없다. | +| model coverage | `pass` | Fine 729-node/676-element primary, coarse 49-node/36-element companion, linear control과 internal linear-limit/tangent/objectivity/patch/rollback portfolio가 승인 NSNR-030 scope를 덮는다. Stored response는 weak geometric-nonlinear regime이고 original-style MITC4의 curved/distorted membrane-locking risk는 알려진 한계지만 Numerical Review가 이번 release의 additional benchmark/convergence gate로 승인하지 않았으므로 model-coverage gap을 새로 만들지 않는다. | + +Fresh physics-focused verification command: + +```powershell +ctest --preset windows-msvc-ninja-debug -R '^(NonlinearMitc4Shell|NonlinearMitc4Recovery|NonlinearMitc4Residual|NonlinearMitc4Tangent|NonlinearMitc4Objectivity|NonlinearMitc4Patch|FiniteRotation|NonlinearStaticProcedure)\.' --output-on-failure +``` + +Result: `23/23` passed, exit `0`, total real time `5.12 s`. + +## 4. Failure Classification + +- blocking classification: 없음 +- resolved finding: `PHYS-STATUS-001`; corrected `reference-comparison.md`가 required overall + `pass-for-physics-evaluation` handoff와 detailed + `blocking-pass-with-review-only-findings` verdict의 관계를 명시했다. +- observed failures: `equilibrium-failure`, `reaction-inconsistency`, + `displacement-direction-failure`, `symmetry-failure`, `stress-location-failure`, + `element-force-inconsistency`, `rigid-body-mode-suspected`, `nonfinite-result`, + `model-coverage-gap`, `upstream-contract`, `environment` 모두 없음. + +## 5. Evaluation Verdict + +- verdict: `pass-for-release-agent` +- physics evidence disposition: documented equilibrium, reaction, displacement, symmetry/objectivity, + stress/strain sanity, rigid-body, residual/path and model-coverage checks show no physical failure. +- pass disposition: documented physical expectations passed and no physics/model-coverage/I/O/upstream + blocker remains. +- release meaning: this verdict authorizes Release Agent evaluation through Coordinator only. It is + not Release approval, publish/deploy/package/tag authorization, or external-solver equivalence. + +## 6. Handoff Recommendation + +- handoff: `Release Agent`, always through `Coordinator Agent` +- recommendation: Release Agent는 current approved hashes, Stage 6 + `pass-for-physics-evaluation`, 이 문서의 `pass-for-release-agent`, known limitations와 + review-only findings를 사용해 release readiness만 audit한다. +- boundary: Physics Evaluation Agent는 release readiness, final release checklist, release notes, + publish/deploy/package/tag를 승인하지 않는다. + +## 7. No-Change Assertion + +이 Stage 7 작업은 `docs/nonlinear-static-newton-raphson/physics-evaluation.md`만 생성했다. +Source code, tests, CMake, Harness, requirements, research, formulation, numerical review, +reference model, I/O contract, implementation reports, reference artifacts와 tolerance policy를 +수정하지 않았다. Abaqus, Nastran 또는 다른 reference solver를 실행하지 않았다. + +## 8. Open Issues + +| id | severity | issue | gate effect | +| --- | --- | --- | --- | +| `PHYS-META-001` | nonblocking | `requirements.md`의 draft/pending metadata가 authoritative Coordinator/user reapproval record와 stale함 | 현재 hash의 explicit approval로 physics authority는 해소됨; Release traceability audit에서 투명하게 유지 | +| `PHYS-LOCAL-001` | nonblocking | six local RF/RM families have review-only discrepancies | approved disposition 유지; global force/moment balance와 free residual을 blocking evidence로 사용 | +| `PHYS-STRESS-001` | nonblocking | stored corner/SPOS-SNEG stress와 FESA direct Gauss recovery 위치가 다르고 fine optional stress row 하나의 node label이 malformed | stress numerical comparison 제외 유지; artifact를 repair하지 않음 | +| `PHYS-LIMIT-001` | known limitation | stored cases are weak geometric-nonlinear plate responses; original MITC4 has known curved/distorted membrane-locking risk | approved current portfolio에서는 blocker 아님; broader claim 금지 | diff --git a/docs/nonlinear-static-newton-raphson/reference-comparison.md b/docs/nonlinear-static-newton-raphson/reference-comparison.md index 1039ef4..22e156f 100644 --- a/docs/nonlinear-static-newton-raphson/reference-comparison.md +++ b/docs/nonlinear-static-newton-raphson/reference-comparison.md @@ -6,6 +6,10 @@ Abaqus CSV files are read-only external comparison evidence; the observed agreement does not imply Abaqus S4 internal formulation, integration, stabilization, or recovery equivalence. +Overall handoff status: `pass-for-physics-evaluation`. This handoff classification records that +all blocking comparisons passed; the detailed verdict above remains +`blocking-pass-with-review-only-findings` because the six local RF/RM findings are review-only. + The literal execution order was `ARTIFACT CHECK -> COMPARE -> CLASSIFY -> REPORT`. The `COMPARE` commands were From dc7fb970ca7d806cd5ee6a7fd1c7896fd8cc4ca9 Mon Sep 17 00:00:00 2001 From: "KOKO\\Mimi" Date: Fri, 28 Aug 2026 23:41:53 +0900 Subject: [PATCH 32/32] docs(nonlinear-static-newton-raphson): complete release gate --- .../coordination.md | 55 ++-- .../release.md | 266 ++++++++++++++++++ 2 files changed, 296 insertions(+), 25 deletions(-) create mode 100644 docs/nonlinear-static-newton-raphson/release.md diff --git a/docs/nonlinear-static-newton-raphson/coordination.md b/docs/nonlinear-static-newton-raphson/coordination.md index b6cc27c..9c95533 100644 --- a/docs/nonlinear-static-newton-raphson/coordination.md +++ b/docs/nonlinear-static-newton-raphson/coordination.md @@ -3,16 +3,16 @@ ## 1. Metadata and Feature Scope - feature_id: `nonlinear-static-newton-raphson` -- workflow_state: `needs-release` +- workflow_state: `completed` - owner_agent: `coordinator-agent` - request_date: `2026-08-18` -- last_updated: `2026-08-28` (STAGE7-PHYSICS-002 return audited; Stage 7 passed, Release not dispatched) +- last_updated: `2026-08-28` (STAGE8-RELEASE-001 return audited; eight-stage workflow completed) - process_classification: `architectural` - requested_capability: Newton–Raphson 방법을 사용하는 새 nonlinear static analysis procedure - proposed_scope_boundary: 첫 release는 initial configuration 기준 Total Lagrangian, materially linear + geometrically nonlinear MITC4로 제한한다. 요구조건 인터뷰와 8단계 evidence gate를 먼저 완료하며, 승인 전에는 상세 수치·I/O·구현 범위를 확정하거나 기존 linear-static lifecycle을 변경하지 않는다. - naming_note: 사용자 표현 `Newton-Rhapson`은 표준 명칭 `Newton–Raphson`으로 정규화했다. -- current_goal: Stage 7 Physics Evaluation is passed after PHYS-STATUS-001 reconciliation and owner rerun. Stop before Release; Stage 8 is the next eligible gate. -- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Steps `11` and `12` are completed under the approved Codex CLI `0.150.1`/Ninja/MSVC envelope. Stage 7 rework is limited to the Stage 6 owner status-only `reference-comparison.md` reconciliation and Physics owner `physics-evaluation.md` revision; no push, no `danger-full-access`, no reference mutation/solver, no source/tests/CMake/upstream/tolerance edit, and no Release dispatch in this audit. Any required contract change beyond the fixed `1e-8` global balance threshold stops as blocker. +- current_goal: Stage 8 `ready-for-release` is audited and the eight-stage workflow is closed. Root retains the user's requested final commit/push; no external release action is authorized. +- constraints: 승인된 physics/scope/tolerance/authoritative output/public compatibility, `rho_M <= 1e-12`, fixed-global source identity, no drilling load channel, thresholds `1e-2`/typed absolute `1e-3`, four-channel AND, Full Newton, fixed stepping, no line search, 100-iteration limit, `docs/TOLERANCE.md`, reference artifact filenames/hashes, stress optional inspection and `RM3` exclusion을 유지한다. USER-DECISION-004 option 1 keeps local nodal `RF1/RF2/RF3` and physical spatial `RM1/RM2` review-only/nonblocking, with blocking factor-one global applied-plus-reaction resultant force `[3]`, global resultant moment `[3]` and accepted free-DOF residual gates/evidence; global resultant semantics are global origin `[0,0,0]`, current force arms and spatial physical nodal moments. USER-DECISION-006 supersedes/retire prior moment-only `1e-9` and all `fesa.env`/runtime-config discussion: do not add `fesa.env`, config parsing, runtime API, or product behavior. Current authoritative decision fixes both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving exact formulas, sum-of-contribution scales, zero-scale rule, quantities/source identity, blocking/review/warning dispositions, NSNR-069 free-residual gates, HDF5 schema, reference artifacts and `docs/TOLERANCE.md` separation. Sequential reapproval is delegated to Coordinator without intermediate user approval through Stage 4 Numerical/reference, Stage 5 I/O and Stage 6 Implementation Planning materialization; Steps `11` and `12` are completed under the approved Codex CLI `0.150.1`/Ninja/MSVC envelope. Stage 8 may create only `release.md`; no push, no `danger-full-access`, no reference mutation/solver, no source/tests/CMake/upstream/tolerance edit, and no publish/deploy/package/tag/external release. Any required contract change beyond the fixed `1e-8` global balance threshold stops as blocker. - repository_audit: 기존 worktree에는 `.codex/agents/*.toml`과 `AGENTS.md`의 사용자 변경이 있으며 이를 보존한다. ## 2. Eight-Stage Worklist @@ -26,7 +26,7 @@ | 5. I/O definition | `io-definition-agent` | `passed` | `docs/nonlinear-static-newton-raphson/io.md` | USER-DECISION-006 fixed both normalized factor-one global FORCE and MOMENT balance gates at `<=1e-8` while preserving HDF5 schema/projections/reference paths and `docs/TOLERANCE.md` separation | Owner returned `ready-for-coordinator-review`, blockers none. Coordinator verified raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`; owner/root LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`. `io.md` records both coarse/fine global force and moment internal gates as dimension-separated normalized `<=1e-8`, preserves `/global/equilibrium` schema version/path/shape/source identity, constrained reaction/free residual projections, zero-scale rule, NSNR-069, local RF/RM review-only, U blocking, UR warning-only, `RM3`/stress exclusions, reference paths and external-only `docs/TOLERANCE.md`. | 없음 | 7 | | 6. Implementation | `implementation-planning-agent`; `implementation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/implementation-plan.md`; `docs/nonlinear-static-newton-raphson/implementation-report.md`; `docs/nonlinear-static-newton-raphson/build-test.md`; `docs/nonlinear-static-newton-raphson/reference-comparison.md`; `docs/nonlinear-static-newton-raphson/corrections.md`; `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` | Add one unambiguous overall handoff status `pass-for-physics-evaluation` to `reference-comparison.md` while preserving detailed verdict `blocking-pass-with-review-only-findings`, all evidence/dispositions and no-change assertions | Owner returned `pass-for-physics-evaluation`, blockers none, SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. Coordinator verified exact `4`-line status-only diff, both required status/verdict tokens, all six review-only findings and `<=1e-8` metrics retained, whitespace clean, and no reference artifact or other owner-path change. | 없음 | 38 | | 7. Physics evaluation | `physics-evaluation-agent` | `passed` | `docs/nonlinear-static-newton-raphson/physics-evaluation.md` | equilibrium, reaction, direction, path/history, energy, symmetry, model coverage가 `pass-for-release-agent`임 | STAGE7-PHYSICS-002 returned `pass-for-release-agent`, blockers none, SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`. Corrected Stage 6 hash/status resolved PHYS-STATUS-001. Prior fresh focused CTest `23/23`, canonical reference hash audit, and physical checks remain passing; historical requirements metadata is nonblocking; four declared open items are nonblocking/known limitations. Coordinator verified all eight sections, exact corrected input hash, pass/handoff boundaries, whitespace, no Release file/dispatch, and no forbidden change. | 없음 | 2 | -| 8. Release readiness | `release-agent` | `pending` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | Stage 7 owner `pass-for-release-agent` and Coordinator audit passed; Stage 8 is eligible but not dispatched in this turn. | 없음 | 0 | +| 8. Release readiness | `release-agent` | `passed` | `docs/nonlinear-static-newton-raphson/release.md` | `ready-for-release` recommendation과 acceptance traceability가 완전함 | Owner returned `ready-for-release`, blockers none, SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`. Coordinator verified all 11 required sections, exact current gate hashes/pass statuses, 24/24 unique must IDs with acceptance/test-or-reference/release disposition `included-pass`, 12/12 reference hashes, complete known limitations/release notes, transparent requirements metadata and reference-comparison feature-id omissions, whitespace/scope/no-change boundaries, and no external release action. | 없음 | 1 | ## 3. Active Dispatch Package and Latest Sub-Agent Return @@ -37,26 +37,27 @@ - target_sub_agent: `none` - required_inputs: 없음 - expected_outputs: 없음 -- acceptance_gate: Stage 7 passed with owner `pass-for-release-agent`. Next eligible action is the separately bounded Stage 8 `release-agent` audit. -- stop_condition: Do not dispatch Release, commit or push from this Stage 7 Coordinator turn. Preserve Stage 6/7 evidence and all source/tests/CMake/Harness/reference/tolerance files. -- missing_evidence: Stage 8 `release.md` and `ready-for-release` owner recommendation. +- acceptance_gate: All eight stages passed and `release.md` recommends `ready-for-release`; Coordinator closure is recorded. +- stop_condition: Workflow is closed. Do not publish, deploy, package, tag or externally release without separate explicit authority; root may perform only the already requested final commit/push. +- missing_evidence: 없음 ### Latest Sub-Agent Return -- target_sub_agent: `physics-evaluation-agent` +- target_sub_agent: `release-agent` - output_paths: - - `docs/nonlinear-static-newton-raphson/physics-evaluation.md` -- status: owner `pass-for-release-agent`; Coordinator decision `passed` + - `docs/nonlinear-static-newton-raphson/release.md` +- status: owner `ready-for-release`; Coordinator decision `passed` - evidence_summary: - - `physics-evaluation.md` SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`; corrected source reference-comparison hash matches `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. - - `PHYS-STATUS-001` is resolved; all documented equilibrium, reaction, displacement/path, symmetry/objectivity, stress sanity, rigid-body, residual/energy and model-coverage checks pass. - - Fresh focused CTest `23/23` and canonical reference hash audit from STAGE7-PHYSICS-001 remain the owner evidence; no rerun was required for the report-only status reconciliation. - - Requirements draft/pending metadata remains nonblocking under authoritative current-hash approval; local RF/RM/stress/model-limit items remain nonblocking or known limitations. + - `release.md` SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`; all 11 required sections and `ready-for-release` verdict are present. + - Gate inventory hashes match current Stage 1..7 files; full CTest `302/302`, reference `9/9`, `pass-for-physics-evaluation`, and `pass-for-release-agent` are recorded. + - Requirement/release sets are exactly 24/24 unique IDs, missing/extra/duplicate `0`, all `included-pass` with acceptance, test or reference evidence and release disposition. + - Known limitations and Release Notes include local RF/RM review-only, UR warning-only, `RM3`/stress exclusion, malformed optional stress row, weak stored nonlinear response, MITC4 locking risk and no external-solver equivalence claim. + - Requirements draft/pending metadata and missing literal reference-comparison feature_id are transparent nonblocking documentation issues tied to authoritative exact path/hash/approval evidence; upstream files were not edited. - blockers: - 없음 -- self_audit_findings: Physics owner revised only `physics-evaluation.md`; no source/test/CMake/Harness/upstream/reference/tolerance mutation, external reference solver or Release judgment. -- return_contract_check: Output path, `pass-for-release-agent`, evidence summary, blockers, SHA-256 and no-change/handoff boundaries are complete; Coordinator hash/section/whitespace/scope audit passed. -- acceptance_evidence_check: Stage 7 passes and workflow advances to `needs-release`; Release remains undispatched in this turn. +- self_audit_findings: Release owner created only `release.md`; no source/test/CMake/Harness/upstream/reference/tolerance mutation, build/test/reference solver, publish/deploy/package/tag/external release, commit or push. +- return_contract_check: Output path, `ready-for-release`, gate/traceability/validation/limitation evidence, blockers, SHA-256, no-change assertion and closure recommendation are complete; Coordinator audit passed. +- acceptance_evidence_check: Stage 8 passes and Coordinator closes the workflow as `completed`; this does not authorize an external release action. ### USER-DECISION-004 Selected Path @@ -237,10 +238,12 @@ | 2026-08-28 | PHYS-STATUS-001-IMPLEMENTATION-001 return and Coordinator audit | `passed` | Implementation owner returned `pass-for-physics-evaluation`, blockers none, changed only `reference-comparison.md`, SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`. Coordinator verified an exact four-line handoff addition, retained detailed verdict/six review-only findings/all metrics and artifact evidence, clean whitespace, no reference diff, and no forbidden owner change. | `needs-physics-evaluation` | Rerun Stage 7 with corrected exact status; do not dispatch Release before Physics owner pass | | 2026-08-28 | STAGE7-PHYSICS-002 rerun package | `in-progress` | Same Physics owner must revise only `physics-evaluation.md` against corrected Stage 6 hash, retain prior audited physical evidence, independently resolve `PHYS-STATUS-001`, and return `pass-for-release-agent` only if no remaining blocker exists. | `needs-physics-evaluation` | Await Physics owner return; no Release dispatch, commit/push or other file mutation | | 2026-08-28 | STAGE7-PHYSICS-002 return and Coordinator audit | `passed` | Physics owner returned `pass-for-release-agent`, blockers none, revised only `physics-evaluation.md`, SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`. Coordinator verified corrected Stage 6 hash/status, resolved PHYS-STATUS-001, eight required sections, prior fresh focused CTest `23/23` and reference hash evidence, all physics checks pass, only nonblocking/known-limit open items, explicit non-Release meaning, whitespace clean, no forbidden path/reference diff and no Release file. | `needs-release` | Stop before Release; root owns requested Stage 7 commit/push, then Stage 8 becomes the next bounded dispatch | +| 2026-08-28 | STAGE8-RELEASE-001 dispatch package | `in-progress` | User-requested Stage 7 commit/push is verified at clean local/origin HEAD `06861608da5ffa4c09b786c3f5052dc7c6604e1b`. Coordinator inventoried all required Stage 1..7 reports and pass statuses, 24 must requirements, full CTest `302/302`, reference `9/9`, `pass-for-physics-evaluation` and `pass-for-release-agent`. One release-agent must independently audit freshness/contradictions/traceability/known limitations and create only `release.md`. | `needs-release` | Await owner return; no other edit, external solver, publish/deploy/package/tag, commit or push | +| 2026-08-28 | STAGE8-RELEASE-001 return and Coordinator audit | `passed` | Release owner returned `ready-for-release`, blockers none, created only `release.md`, final SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`. Coordinator verified required sections/status, current gate hashes, 24/24 exact must traceability, 12/12 canonical reference hashes, all required known limitations/notes, transparent metadata omissions, whitespace/scope/no-change assertion and no external release action. | `completed` | Eight-stage workflow closed; root owns requested final commit/push only | - current_dispatch: `none` -- current_workflow_state: `needs-release` -- next_gate_requires_user_approval: `false` for the already requested Stage 8 Release audit after root completes the requested Stage 7 commit/push; `true` for any numerical value/disposition/source/tests/CMake/Harness/reference/tolerance change, external solver/artifact mutation or publish/deploy/package/tag action. +- current_workflow_state: `completed` +- next_gate_requires_user_approval: no next gate; the eight-stage workflow is completed. Root may perform the already requested final commit/push. Any numerical value/disposition/source/tests/CMake/Harness/reference/tolerance change, external solver/artifact mutation or publish/deploy/package/tag/external release requires separate explicit authority. ## 5. Risk, Blocker, and User-Decision Register @@ -278,6 +281,7 @@ | STAGE7-PHYSICS-001 | physics-evaluation-dispatch | Needs rework: owner found no physical failure but withheld `pass-for-release-agent` because required `reference-comparison.md` has no `pass-for-physics-evaluation` handoff status. | `physics-evaluation-agent` / Coordinator | needs-rework | | PHYS-STATUS-001 | upstream-report-contract | Resolved: Implementation owner added unambiguous overall `pass-for-physics-evaluation` while preserving detailed `blocking-pass-with-review-only-findings` and all evidence. Coordinator verified corrected SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241` and exact status-only diff. | `implementation-agent` through Coordinator | passed | | STAGE7-PHYSICS-002 | physics-evaluation-dispatch | Passed: owner returned `pass-for-release-agent`, blockers none; Coordinator audit verified SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`, corrected input hash, physics evidence and no-change/Release boundaries. | `physics-evaluation-agent` / Coordinator | passed | +| STAGE8-RELEASE-001 | release-readiness-dispatch | Passed: owner returned `ready-for-release`, blockers none; Coordinator verified release SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`, 24/24 traceability, gate/validation inventory, known limitations, release notes and authority boundaries. | `release-agent` / Coordinator | passed | | AUDIT-001 | projection-implementation | Passed by STEP11-EXECUTION-004: `/global/equilibrium` and reference comparator tests cover current nodal positions, spatial physical nodal moments about global origin, distinct global balance/free residual projections, and nonzero prescribed motion without raw full residual/initial-coordinate shortcut. | `implementation-planning-agent` / `implementation-agent` | passed | | MESH-REFINEMENT-SPIKE-001 | diagnostic-spike | Completed read-only numerical/reference spike for `reference/shellNL-meshfine`: artifacts copied byte-identically, required rows readable, existing executable run successful, primary displacement/rotation passed common tolerance, local RF/RM per-row gates failed, and current coarse/fine Abaqus S4 pair did not meet option 3 independent benchmark condition. | `numerical-review-agent` | passed | | TRANSLATION-REPORT-001 | focused-report | Completed bounded report for coarse/fine `U1/U2/U3` translation displacement only. Output `docs/nonlinear-static-newton-raphson/translation-displacement-comparison.md` SHA-256 `597D923FB1943CCB2BCF9D9FFC13FD904F795DFEB9CB71B097FF168B78694338`; diagnostic non-gate, not canonical `reference-comparison.md`, and does not alter reaction/rotation/stress or USER-DECISION-004 disposition. | `implementation-agent` | passed | @@ -344,13 +348,13 @@ - correction_agent_policy: 명확한 implementation failure는 먼저 `implementation-agent`에 반환하고, 반복되거나 원인이 불명확할 때만 `correction-agent`를 dispatch한다. - stop_condition: 동일 classification이 두 번이면 자동 rework를 중단하고 workflow를 `needs-user-decision` 또는 `blocked`로 전환한다. - correction_cycle_authorization: REWORK-008 is closed as `upstream-contract`. MATERIALIZATION-003 and REAPPROVAL-012 are closed as `passed`. USER-DECISION-006 resolves the prior `upstream-global-moment-balance-gate-threshold-conflict` by fixing both normalized global balance gates at `<=1e-8`. STEP11-EXECUTION-003 reached normalized environment failure count `2`, automatic retry was stopped, REWORK-009 passed, STEP11-EXECUTION-004 passed, and STEP12-EXECUTION-001 passed. No correction loop is active. -- upstream_reapproval_sequence: Prior USER-DECISION-003/004/006 sequences remain closed. PHYS-STATUS-001 report-only Stage 6 reconciliation passed on first attempt, STAGE7-PHYSICS-002 returned `pass-for-release-agent`, and Coordinator audit passed. Stage 8 is eligible but remains undispatched until the requested Stage 7 commit/push is handled by root. +- upstream_reapproval_sequence: Prior USER-DECISION-003/004/006 sequences remain closed. PHYS-STATUS-001 passed on first attempt, Stage 7 returned `pass-for-release-agent`, Stage 8 returned `ready-for-release`, and all Coordinator audits passed. No rework loop remains active. ## 7. Final Workflow Closure -- closure_status: `not-eligible` -- required_evidence: `docs/nonlinear-static-newton-raphson/release.md`의 `ready-for-release` recommendation -- closure_record: 없음 +- closure_status: `completed` +- required_evidence: satisfied by `docs/nonlinear-static-newton-raphson/release.md` SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`, owner verdict `ready-for-release`, blockers none +- closure_record: Eight stages are `passed`; Stage 6 `pass-for-physics-evaluation`, Stage 7 `pass-for-release-agent`, full CTest `302/302`, reference `9/9`, 24/24 must traceability and disclosed known limitations are audited. Closure means internal feature workflow readiness only and does not publish, deploy, package, tag or externally release. ## 8. No-Change Assertion @@ -360,7 +364,8 @@ - reference_artifacts: Root copied four `reference/shellNL-meshfine` artifacts byte-identically into the feature worktree for the approved spike; SHA-256 values match the recorded main-checkout hashes and row counts `729/729/5408`. No reference artifact was generated, renamed, normalized, repaired or modified by Coordinator. - tolerance_policies: 변경 없음 - phase_files: Step `12` metadata commit `624807a` records phase completion; `phases/index.json` SHA-256 `5FA3225F73E4B4FB6A7CFCD049DD66FF21715DFB41A91BB14F47ABDFE45378BD` and phase index SHA-256 `B941B903746DA19F1460C1022FE3501DFC44CE09E5D72CCCCCB7E38D7D55FD22`; Steps 0..12 are completed and top phase is completed. Coordinator did not edit phase files. -- Harness: STEP12-EXECUTION-001 completed under the approved envelope with owner-reported exitCode `0`, fresh configure/build/discovery/focused/full CTest and reference gate pass. Physics owner additionally ran focused CTest `23/23`; Coordinator did not run Harness/build/test, dispatch Release, use `danger-full-access`, clean outputs, commit or push. +- Harness: STEP12-EXECUTION-001 completed under the approved envelope with owner-reported exitCode `0`, fresh configure/build/discovery/focused/full CTest and reference gate pass. Physics owner additionally ran focused CTest `23/23`; Release owner and Coordinator did not run Harness/build/test, use `danger-full-access`, clean outputs, publish/deploy/package/tag/external release, commit or push. - feature_documents: REWORK-008 Correction updated `docs/nonlinear-static-newton-raphson/corrections.md` Section 13 SHA-256 `C8AC5A5015E5F9622E2964F514F2C06572F953B5244F006044DEDDF0F3D0A194`; Requirement Agent updated only `docs/nonlinear-static-newton-raphson/requirements.md` SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E`; Formulation Agent updated only `docs/nonlinear-static-newton-raphson/formulation.md` SHA-256 `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9`; REAPPROVAL-010 Numerical Review Agent updated Stage 4 reports to `docs/nonlinear-static-newton-raphson/numerical-review.md` SHA-256 `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` and `docs/nonlinear-static-newton-raphson/reference-model.md` SHA-256 `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA`; REAPPROVAL-011 I/O Definition Agent updated only `docs/nonlinear-static-newton-raphson/io.md` raw SHA-256 `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9`, LF-normalized SHA-256 `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB`; REAPPROVAL-012 Planning owner materialized `docs/nonlinear-static-newton-raphson/implementation-plan.md` SHA-256 `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C`, `step11.md` SHA-256 `F0DFD7BF2A473F47BCF7F6195DD41569B349474BF93F5D5B642882A037DBB8F8` and `step12.md` SHA-256 `191432020B9C774BF153EECFD8F9A2EF74AF0014E2405478F541D85B517D7DD0`. STEP12-EXECUTION-001 created `implementation-report.md` SHA-256 `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578`, `build-test.md` SHA-256 `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA`, `reference-comparison.md` SHA-256 `5CFFB39BBDB323196461A54FCCFF8EE6E66866103D0931D4D3A94D2B3D644328` and minimal `docs/PRD.md`/`docs/ARCHITECTURE.md`/`docs/ADR.md` sync. This coordinator update changed only isolated `coordination.md`. - stage7_rework_documents: PHYS-STATUS-001-IMPLEMENTATION-001 changed only `reference-comparison.md` to SHA-256 `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241`; STAGE7-PHYSICS-002 revised only `physics-evaluation.md` to SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538`; Coordinator changed only `coordination.md`. +- release_document: STAGE8-RELEASE-001 created only `docs/nonlinear-static-newton-raphson/release.md`, SHA-256 `0DA80387B137DAA7629D4B0A0C1E5442F90E17F142345379669B2E1D1962E1D1`; Coordinator changed only `coordination.md`. - correction_reports: REWORK-009 Correction Agent updated current `docs/nonlinear-static-newton-raphson/corrections.md` Section 14, SHA-256 `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A`. Coordinator did not edit `corrections.md`. diff --git a/docs/nonlinear-static-newton-raphson/release.md b/docs/nonlinear-static-newton-raphson/release.md new file mode 100644 index 0000000..6e4d182 --- /dev/null +++ b/docs/nonlinear-static-newton-raphson/release.md @@ -0,0 +1,266 @@ +# Nonlinear Static Newton-Raphson Release Readiness + +## 1. Metadata + +| key | value | +| --- | --- | +| feature_id | `nonlinear-static-newton-raphson` | +| status | `ready-for-release` | +| owner_agent | `release-agent` | +| date | `2026-08-28` | +| authoritative requirements | `requirements.md`, SHA-256 `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` | +| implementation evidence | `implementation-report.md`, `build-test.md`, `reference-comparison.md` | +| physics evidence | `physics-evaluation.md`, SHA-256 `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538` | +| audit baseline | local/origin `feat-nonlinear-static-newton-raphson` HEAD `06861608da5ffa4c09b786c3f5052dc7c6604e1b` before the Coordinator-owned Stage 8 update | +| release meaning | FESA feature workflow closure readiness only; publish, deploy, package, tag 또는 external release 권한이 아님 | + +Literal `feature_id`를 선언한 모든 source report는 `nonlinear-static-newton-raphson`과 일치한다. +`reference-comparison.md`에는 literal `feature_id` field가 없지만 exact bundle path +`docs/nonlinear-static-newton-raphson/reference-comparison.md`, title, current SHA-256와 Stage 6 +handoff chain, 그리고 Physics report의 exact source hash가 같은 feature에 결정적으로 연결한다. +상충하는 feature identity는 없으므로 upstream report를 변경하지 않고 nonblocking metadata +omission으로 기록한다. `requirements.md`의 `status: draft`, `approved_by: pending user re-approval`과 +`FESA-REQ-NSNR-069 status: draft`는 stale metadata다. +Authoritative `coordination.md`는 현재 exact requirements hash가 `2026-08-27` 사용자에게 명시적으로 +재승인되었고 Stage 1이 `passed`임을 기록한다. Current Stage 4/5/6 문서도 같은 hash를 입력으로 +사용하므로 실제 승인·수치 계약과의 모순은 없다. + +## 2. Release Scope + +### Included + +- No-prior-history baseline에서 정확히 하나의 geometrically nonlinear static step을 수행하는 별도 + `Full Newton-Raphson` procedure. +- Fixed-initial-reference Total Lagrangian `FESA-MITC4`; source `S4`와 `S4R`은 같은 internal + formulation과 `2 x 2 x 2` integration에 매핑된다. +- Homogeneous isotropic materially linear elasticity, centered single-layer shell section, + six global nodal DOFs와 committed/trial finite-rotation triad/director state. +- Fixed scalar load-factor increments, final factor-one shortening, common proportional path, + fixed-global dead `*CLOAD`, factor-one absolute `*BOUNDARY` target. +- Same-trial residual/consistent tangent, fresh factorization/solve, four-channel convergence, + iteration limit `100`, no line search/cutback/retry. +- Accepted-increment-only HDF5 schema version `1`, deterministic Newton text log, atomic candidate/final + result lifecycle, stable source/result/diagnostic ordering. +- Factor-one accepted free residual과 current-arm/spatial-moment global applied-plus-reaction force/moment + balance; normalized global force와 moment gate는 각각 inclusive `<=1e-8`이다. +- Fine nonlinear primary, coarse nonlinear companion, linear control reference portfolio. External + `U1/U2/U3`는 blocking, `UR1/UR2/UR3`는 warning-only, local RF/RM은 review-only다. + +### Supported input and output subset + +- 주요 supported input: `*HEADING`, `*PART`, `*NODE`, `*NSET`, `*ELEMENT` (`S4`/`S4R`), + `*ELSET`, `*MATERIAL`, `*ELASTIC`, `*SHELL SECTION`, one identity `*ASSEMBLY`/`*INSTANCE`, + `*BOUNDARY`, `*CLOAD`, one `*STEP, NLGEOM=YES`, one four-value `*STATIC`. +- Exact allowlisted `VARIABLE=PRESELECT` output requests와 일부 generator/restart output syntax는 + warning no-op이며 FESA mandatory output을 바꾸지 않는다. +- Public invocation은 `fesa.exe `다. Authoritative output은 input sibling + `_results.h5`, current-run diagnostic은 `_log.txt`다. Literal `--output`을 포함한 + argv token은 compatibility alias 없이 pre-input exit `2`로 거부한다. +- CSV는 external reference 또는 deterministic debug view일 뿐 FESA official output이 아니다. + +### Excluded + +- Material nonlinearity/history, Updated Lagrangian, corotational procedure, multiple/mixed nonlinear + steps와 cross-step propagation. +- Modified/quasi-Newton, tangent reuse, line search, damping, adaptive growth/cutback/retry, + controlled-displacement와 arc-length/path-following. +- Follower/non-proportional/distributed/body/pressure/edge loads, `*DLOAD`, contact, MPC, transforms, + amplitude, composite/offset/oriented shell section과 unsupported model-affecting keywords. +- Reduced integration/hourglass behavior selected by source `S4R`, MITC4+, trial-state HDF5 history, + nodal stress extrapolation/averaging, `RM3`와 stored stress numerical comparison. +- Abaqus, Midas 또는 다른 solver의 formulation, integration, stabilization, state update, + recovery 또는 internal algorithm equivalence claim. + +## 3. Gate Evidence Inventory + +| gate artifact | current SHA-256 | audited status / release disposition | +| --- | --- | --- | +| `requirements.md` | `89C1AB5F1BEDB7C5F6AD0726ED62F0982181EA8746EDE4661183FD3D18A2408E` | Coordinator Stage 1 `passed`; current hash explicitly user re-approved; 24/24 must records and Matrix rows | +| `research.md` | raw `4F63D23E03D1A68E5F8563B678FDD6F761F9558165778EF0433133EFAD303570` | `passed`; LF-normalized hash matches recorded approved `C920A6B02381230D1DB419D73FE767D611B36720D27D6410507BA88C3CA28EEE` | +| `formulation.md` | `878028F7B8EC1B91DA9BF00AF78825F50EB0B71046E840A0EEA595AFFD5E14B9` | `ready-for-numerical-review`; Coordinator Stage 3 `passed`, explicit user approval; current Stage 4 review found no formulation defect | +| `numerical-review.md` | `C00994EF4BB23A237547459E157EE5BDA96B28CAF08F712CD31A8E0ABBF62D2C` | `pass-for-io-definition`; blockers 없음 | +| `reference-model.md` | `B2E6845AB59A32F78261B7A47506C27F7BF4B61401B34BC5DE3DAD4F03D6ADDA` | `pass-for-io-definition`; required files present, exact family/disposition contract complete | +| `io.md` | raw `ED23274F4F15F7D1DFF886FA8158961362C75960990271D24A5FD010A8D51FD9` | `ready-for-coordinator-review`; Coordinator Stage 5 `passed`; LF-normalized hash `53AFBB1DF27FBD9CE6C2E23EE34480882241A859D3FC1993E82DB61ACC6637EB` | +| `implementation-plan.md` | `CA3EF7D2E95AA1F15757CD138CEF67E06E51195F59FB8DBE676E5772CC1D6C2C` | `ready-for-implementation`; 24/24 requirement-to-Step/test mapping | +| `corrections.md` | `4DC996E3D4CA2D515D19E5D244C3A112AF0C9429335698E03089B77B5E79346A` | Historical environment/upstream issues resolved; current status `corrected-for-implementation-rerun`, followed by passing Step 11/12 evidence | +| `implementation-report.md` | `D75C8B5922C9EEF7C7262B01BFB12D5F7609B1A6DB3A7C6D5AE47CB45ADAD578` | `pass-for-physics-evaluation`; no implementation-owned blocker | +| `build-test.md` | `ED6B1B6CFD9478B09B92E7ADE3891622FEA1AA521AD29550D6F4C78C952E8DDA` | full CTest `302/302`; all recorded commands exit `0` | +| `reference-comparison.md` | `22867B0F2E3C06C5AB908485D94160CA33CBAF1274EE099847979FA511ECC241` | overall `pass-for-physics-evaluation`; detailed `blocking-pass-with-review-only-findings`; reference `9/9` | +| `physics-evaluation.md` | `C49011637D57D2F2B71738CA3AF48BEF3256D25078BE049499EBDDDE66DB8538` | `pass-for-release-agent`; blockers 없음 | + +Historical source hashes embedded in earlier research/formulation metadata reflect their original gate inputs. +Current Numerical Review, I/O, Planning, Implementation, reference and Physics reports consume or audit the +current approved hashes and report no semantic contradiction. No stale or failed gate overrides this inventory. + +## 4. Acceptance Traceability + +`N/A (internal)`은 해당 acceptance가 external reference value가 아니라 deterministic CTest/invariant로 +검증된다는 뜻이다. 모든 row의 final disposition은 current release scope에서 `included-pass`다. + +| requirement id | acceptance criterion | test id / passing evidence | reference model id | verification report | release disposition | +| --- | --- | --- | --- | --- | --- | +| `FESA-REQ-NSNR-001` | 정확히 한 supported source/semantic nonlinear step만 별도 procedure를 선택하고 zero/multiple/mixed는 increment 전 fail-closed | `NSNR-IO-*`, `NSNR-PROC-*`; full CTest `302/302` | N/A (internal) | `implementation-plan.md`, `build-test.md` | `included-pass` | +| `FESA-REQ-NSNR-003` | `S4/S4R`를 homogeneous isotropic materially linear geometric-only FESA-MITC4로 처리하고 material/combined nonlinearity는 거부 | `NSNR-IO-*`, `NSNR-ELEM-*`, `NSNR-PROC-*` | `shellnl-meshfine-s4-final`, `shellnl-s4-final`, `shell-s4-linear-limit` | `implementation-report.md`, `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-041` | 모든 increment가 하나의 fixed initial reference를 유지하고 current geometry로 re-base하지 않음 | `NSNR-IO-*`, `NSNR-ELEM-KIN-*`, `NSNR-PROC-*` | N/A (internal TL/objectivity) | `implementation-plan.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-074` | global six DOF, dimensionless rotation correction, separate trial/committed proper triad/director와 multiplicative update/rollback | `NSNR-ROT-*`, `NSNR-STATE-*`, `NSNR-PROC-*`; Physics focused suite 포함 | N/A (internal invariant) | `implementation-report.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-006` | residual/tangent/factorization/correction이 동일 trial이고 entered iteration마다 fresh factorization/solve | `NSNR-ELEM-TAN-*`, `NSNR-SOLVER-*`, `NSNR-PROC-*` | N/A (internal tangent) | `implementation-plan.md`, `build-test.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-007` | free residual과 same-iteration correction의 네 channel을 logical AND로 통과하고 constrained residual은 reaction으로 유지 | `NSNR-CTRL-021`, `NSNR-PROC-*`, `NSNR-REF-019`; control/log `14/14` | `shellnl-meshfine-s4-final`, `shellnl-s4-final` | `implementation-report.md`, `reference-comparison.md` | `included-pass` | +| `FESA-REQ-NSNR-069` | matching external residual scale nonzero 시 relative `<=1e-2`, exact zero 시 typed force/moment absolute `<=1e-3` | `NSNR-CTRL-018..020`, `NSNR-LOG-012`, `NSNR-REF-019`; exact-zero fine/coarse moment residual pass | `shellnl-meshfine-s4-final`, `shellnl-s4-final` | `implementation-report.md`, `reference-comparison.md` | `included-pass` | +| `FESA-REQ-NSNR-070` | translation/rotation correction을 nonzero relative 또는 typed exact-zero gate로 각각 inclusive 판정 | `NSNR-CTRL-021`, `NSNR-PROC-*`; control/log `14/14` | N/A (internal convergence) | `implementation-report.md`, `build-test.md` | `included-pass` | +| `FESA-REQ-NSNR-008` | required Newton data finite, iteration `1..100`, iteration 100 pass 허용, iteration 101 금지 | `NSNR-CTRL-020`, `NSNR-PROC-*`, `NSNR-REF-019` | fine/coarse logs: accepted increments each use two iterations | `implementation-report.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-014` | fresh correction을 변경 없이 적용하고 line search/damping/fallback/energy gate를 사용하지 않음 | `NSNR-CTRL-*`, `NSNR-PROC-*` | N/A (internal lifecycle) | `implementation-plan.md`, `build-test.md` | `included-pass` | +| `FESA-REQ-NSNR-046` | fixed positive factor increment, factor one final shortening, growth/cutback/retry 없음 | `NSNR-CTRL-*`, `NSNR-PROC-*` | fine/coarse factor `0.1..1.0`, unique factor-one frame | `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-048` | 모든 approved CLOAD/BOUNDARY target이 하나의 common proportional factor를 사용 | `NSNR-CTRL-*`, `NSNR-PROC-*` | fine/coarse nonlinear load path | `implementation-plan.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-018` | CLOAD force/moment source direction은 fixed global dead load이고 follower tangent가 없음 | `NSNR-CTRL-*`, `NSNR-PROC-*` | fine/coarse centered fixed-global `F3=-100000` | `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-063` | prescribed BOUNDARY는 factor-one absolute target이고 constrained correction과 분리되며 failure 시 start state 보존 | `NSNR-CTRL-*`, `NSNR-PROC-*`, `NSNR-PROC-019` | N/A (nonzero prescribed-motion internal case) | `implementation-report.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-016` | nonlinear STATIC 네 값을 exact arity/finite/positive/endpoint rule로 mapping하고 third/fourth는 stepping에 미사용 | `NSNR-IO-*`, `NSNR-CTRL-*` | fine/coarse `*STATIC 0.1,1.,0.001,0.1` | `io.md`, `reference-model.md`, `build-test.md` | `included-pass` | +| `FESA-REQ-NSNR-011` | trial state를 분리하고 converged complete state만 atomic commit하며 모든 실패에서 prior state/final 보존 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*` | fine/coarse accepted-frame evidence; failure paths internal | `implementation-report.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-019` | stable source/order와 free residual, constrained resultant, applied-plus-reaction balance를 분리하고 current arm/spatial moment 사용 | `NSNR-ELEM-TAN-*`, `NSNR-STATE-*`, `NSNR-PROC-019`, `NSNR-HDF5-014`, `NSNR-REF-022/024/025`; procedure/writer `7/7` | `shellnl-meshfine-s4-final`, `shellnl-s4-final` | `implementation-report.md`, `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-020` | approved element/material/load/boundary/step/solver inventory 밖의 meaning을 authoritative output 전 fail-closed | `NSNR-IO-*` negative inventory | N/A (internal rejection) | `io.md`, `implementation-plan.md`, `build-test.md` | `included-pass` | +| `FESA-REQ-NSNR-021` | committed increment와 accepted HDF5 frame이 일대일이고 factor one 포함, trial history 없음, failed candidate는 final이 아님 | `NSNR-STATE-*`, `NSNR-HDF5-*`, `NSNR-PROC-*`, `NSNR-HDF5-014` | fine/coarse 10 accepted frames, unique frame 9/increment 10/factor 1 | `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-024` | invocation-start log replacement과 entered iteration당 deterministic summary 하나, controlled failure에도 current log 유지 | `NSNR-LOG-012`, `NSNR-PROC-*`, `NSNR-REF-019`; `NewtonIterationLog.*` `8/8` | fine/coarse 20 records, two per increment | `implementation-report.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-083` | derived result/log names, every literal `--output` form pre-input exit `2`, no alias, independent asymmetric lifecycles와 linear regression | `NSNR-CLI-*`, `NSNR-PROC-*`, `NSNR-EVID-*` | all three stored case executions use derived sibling outputs | `implementation-report.md`, `build-test.md`, `reference-comparison.md` | `included-pass` | +| `FESA-REQ-NSNR-026` | factor/iteration/assembly/frame/result/log ordering이 same input/runtime에서 deterministic | `NSNR-STATE-*`, `NSNR-PROC-*`, `NSNR-REF-020..023`, `NSNR-EVID-*`; reference `9/9` twice | all three stored cases | `implementation-report.md`, `reference-comparison.md` | `included-pass` | +| `FESA-REQ-NSNR-030` | linear limit, tangent, global balance/free residual, symmetry/objectivity와 commit/rollback portfolio가 모두 통과 | `NSNR-ROT-*`, `NSNR-ELEM-*`, `NSNR-CTRL-*`, `NSNR-SOLVER-*`, `NSNR-LOG-*`, `NSNR-STATE-*`, `NSNR-HDF5-014`, `NSNR-PROC-019`, `NSNR-REF-022/024/025`; Physics focused `23/23` | fine primary, coarse companion, linear control | `build-test.md`, `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | +| `FESA-REQ-NSNR-034` | exact source/component precheck 후 U blocking, UR warning-only, RF/RM review-only, RM3/stress excluded, common external tolerance 적용 | `NSNR-REF-020..023`, `NSNR-EVID-003..007`; nonlinear reference `9/9` | fine primary, coarse companion, linear control | `reference-comparison.md`, `physics-evaluation.md` | `included-pass` | + +## 5. Validation Evidence + +Fresh Stage 6 commands and results are recorded in `build-test.md`: + +```powershell +cmake --preset windows-msvc-ninja-debug +cmake --build --preset windows-msvc-ninja-debug +ctest --preset windows-msvc-ninja-debug --show-only=json-v1 +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearConvergence|NewtonIterationLog)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticProcedure|NonlinearHdf5ResultsWriter)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^NonlinearStaticReference\." --output-on-failure +ctest --preset windows-msvc-ninja-debug -R "^(NonlinearStaticReference|ReferenceTolerance|Mitc4Reference)\." --output-on-failure +ctest --preset windows-msvc-ninja-debug --output-on-failure +``` + +- Configure/build/discovery: exit `0`; 302 tests discovered. +- Focused control/log `14/14`, procedure/writer `7/7`. +- Nonlinear reference `9/9`; extended matched reference `9/9`. +- Full MSVC x64 Debug CTest `302/302`, failed-test inventory 없음, 새 compiler/linker warning 없음. +- Stage 7 Physics-focused CTest `23/23`, exit `0`. +- Harness Python pytest는 Step 12가 Python, hooks 또는 agent configuration을 변경하지 않아 applicable하지 + 않았고 필수 제품 검증으로 재분류하지 않았다. +- `reference-comparison.md`: overall `pass-for-physics-evaluation`; external translation blocking families, + warning-only UR families와 eight internal blocking families 통과. Global balance metrics의 worst value는 + fine moment `2.74546602e-10 <=1e-8`이다. +- `physics-evaluation.md`: `pass-for-release-agent`; equilibrium, reactions, displacement direction/path, + symmetry/objectivity, stress sanity, rigid-body, energy/residual과 model coverage에 물리 blocker 없음. +- Declared canonical reference 12개는 current SHA-256가 `reference-model.md`와 일치하고 tracked diff가 없다. + +## 6. Known Limitations + +1. Coarse/fine local nodal `RF1/RF2/RF3`와 physical spatial `RM1/RM2`에는 six review-only + discrepancy families가 남아 있다. Exact source-key/schema/inventory/finite/error report는 유지하지만 + blocking verdict는 global force/moment balance와 accepted free residual이 결정한다. +2. Local `RM3`는 approved physical external comparison target이 없어 excluded다. +3. Stored corner `SPOS/SNEG` stress와 FESA direct Gauss `BOTTOM/MIDDLE/TOP` stress는 위치·복구 identity가 + 다르므로 numerical comparison에서 제외된다. Fine optional stress CSV에는 element `1`, `SNEG`의 + malformed `Node Label=ss` 한 행이 있으며 artifact를 repair하지 않는다. +4. `UR1/UR2/UR3` external comparison은 warning-only다. Current portfolio에서는 모두 통과했지만 향후 + warning exceedance가 blocking failure로 자동 승격되지는 않는다. +5. Stored nonlinear plate responses는 weak geometric-nonlinear regime다. Finite-rotation/tangent/objectivity/ + rollback은 internal invariant tests로 보강했지만 broad large-response benchmark 또는 experimental + validation claim은 하지 않는다. +6. Original-style MITC4는 curved/distorted/thin nonlinear mesh에서 membrane-locking과 conditioning + 위험이 있다. MITC4+ 또는 Abaqus `S4/S4R` 성능을 상속한다고 주장하지 않는다. +7. 첫 release는 one-step, materially linear, fixed-increment Full Newton 범위다. Limit-point traversal, + material nonlinearity, follower/distributed load, adaptive increment와 broader Abaqus keyword compatibility는 + 지원하지 않고 fail-closed한다. +8. Rotation-vector principal chart, director/swing/twist branch와 geometry/Jacobian validity 밖의 상태는 + fail-closed한다. No line search/cutback/retry이므로 difficult path의 automatic recovery를 보장하지 않는다. +9. Global force/moment `<=1e-8`은 comparator-owned internal verification gate이며 runtime user setting이나 + `fesa.env` 계약이 아니다. External CSV families에는 별도로 `docs/TOLERANCE.md`만 적용한다. +10. Numerical agreement은 Abaqus formulation, integration, stabilization, state update 또는 recovery의 + internal equivalence evidence가 아니다. + +## 7. Release Notes Draft + +### 기능 요약 + +FESA에 fixed-initial-reference Total Lagrangian 기반 geometric-nonlinear `FESA-MITC4` static +procedure가 추가되었다. Solver는 fixed load-factor path에서 Full Newton-Raphson을 수행하고, +수렴한 increment만 HDF5 schema v1 accepted frame으로 commit한다. Trial/committed finite-rotation state, +deterministic per-iteration log, rollback-safe output lifecycle, current-arm/spatial-moment global equilibrium +evidence를 포함한다. + +### 사용과 산출물 + +- 실행: `fesa.exe ` +- 결과: input sibling `_results.h5` +- 진단: input sibling `_log.txt` +- 지원 핵심 범위: one `*STEP, NLGEOM=YES`, one four-value `*STATIC`, source `S4/S4R`, isotropic + linear elastic shell, `*CLOAD`, `*BOUNDARY`의 approved subset. +- Literal `--output`은 제거되었고 alias/deprecation form 없이 exit `2`로 거부된다. + +### 검증 범위 + +MSVC x64 Debug full CTest `302/302`, nonlinear/extended reference `9/9`, Physics focused `23/23`이 +통과했다. Fine/coarse nonlinear plate와 linear control의 `U1/U2/U3` blocking comparison, +warning-only UR, accepted free residual 및 normalized global force/moment `<=1e-8`을 검증했다. + +### 사용자에게 알려진 제한 + +Local nodal RF/RM discrepancy는 review-only이며 `RM3`와 stored stress comparison은 제외된다. +Fine optional stress CSV의 malformed node label은 read-only로 유지한다. UR은 warning-only다. +Stored nonlinear cases는 weak response이고 original MITC4는 curved/distorted mesh membrane-locking 위험이 +있으므로 broader large-response, locking-free 또는 external-solver internal-equivalence claim을 하지 않는다. +Material nonlinearity, multiple/mixed steps, follower/distributed loads, line search/cutback/retry, +arc-length와 broad Abaqus keyword compatibility는 지원 범위 밖이다. + +### Evidence artifacts + +- `docs/nonlinear-static-newton-raphson/implementation-report.md` +- `docs/nonlinear-static-newton-raphson/build-test.md` +- `docs/nonlinear-static-newton-raphson/reference-comparison.md` +- `docs/nonlinear-static-newton-raphson/physics-evaluation.md` +- Authoritative solver artifact: each input sibling `_results.h5` + +## 8. Release Verdict + +- verdict: `ready-for-release` +- gate basis: full build/test evidence passed, reference comparison overall status is + `pass-for-physics-evaluation`, Physics status is `pass-for-release-agent`, 24/24 must requirements have + explicit acceptance/test/reference/release disposition, and no blocking evidence gap remains. +- qualification: six local RF/RM findings, stress/RM3 exclusions, warning-only UR와 model-coverage limitations are + approved and disclosed nonblocking limitations, not unresolved implementation defects. +- feature identity disposition: `reference-comparison.md`의 literal `feature_id` omission은 exact + path/title/hash/handoff binding으로 해소되고 contradictory identity가 없으므로 verdict를 낮추지 않는다. +- authority boundary: 이 verdict는 internal feature delivery closure recommendation이다. Publish, deploy, + package, tag, external release 또는 solver equivalence claim을 승인하지 않는다. + +## 9. Handoff Recommendation + +Coordinator Agent가 이 보고서의 exact path/hash와 `ready-for-release`를 독립 audit한 뒤 Stage 8을 +`passed`로 기록하고 8-stage workflow를 closure할 것을 권고한다. Evidence gap return 또는 owning +sub-agent rework는 필요하지 않다. 사용자가 요청한 commit/push는 Coordinator/root가 Release gate +audit 후 별도로 수행해야 하며, 이 Release Agent는 commit, push, tag 또는 publish를 수행하지 않는다. + +## 10. No-Change Assertion + +이 Stage 8 작업은 `docs/nonlinear-static-newton-raphson/release.md` 하나만 생성했다. Coordinator가 +동시에 소유한 pre-existing `coordination.md` 변경은 읽기만 했고 수정·revert하지 않았다. Source code, +headers, tests, CMake, Harness, requirements, research, formulation, numerical review, reference model, +I/O, implementation/physics reports, reference artifacts와 `docs/TOLERANCE.md`를 변경하지 않았다. +Abaqus, Nastran 또는 다른 reference solver, build, CTest, Harness, publish/deploy/package/tag 작업을 +실행하지 않았다. + +## 11. Open Issues + +Blocking open issue는 없다. + +| id | severity | disposition | +| --- | --- | --- | +| `RELEASE-META-001` | nonblocking documentation | `requirements.md`의 historical draft/pending metadata는 current-hash explicit user approval와 Coordinator Stage 1 pass로 해소된다. Upstream 문서는 이 gate에서 수정하지 않았다. | +| `RELEASE-META-002` | nonblocking documentation | `reference-comparison.md`에는 literal `feature_id` field가 없지만 exact bundle path/title/SHA-256/Stage 6 handoff와 Physics source hash가 feature identity를 결정적으로 고정한다. Contradictory identity는 없고 upstream report는 변경하지 않았다. | +| `RELEASE-LOCAL-001` | accepted risk | Six local RF/RM families remain review-only findings; global balance/free residual blocking evidence passed. | +| `RELEASE-STRESS-001` | accepted limitation | `RM3`와 stored stress numerical comparison은 excluded; fine optional malformed stress row는 read-only로 유지한다. | +| `RELEASE-COVERAGE-001` | known limitation | Weak nonlinear stored response와 original MITC4 curved/distorted membrane-locking risk가 broader claims를 제한한다. | + +Missing required report, failed pass status, unresolved defect, missing declared comparison file 또는 +contradictory acceptance evidence는 발견되지 않았다.