Davout 0.1.1.dev181__tar.gz → 0.1.1.dev183__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. {davout-0.1.1.dev181/source/Davout.egg-info → davout-0.1.1.dev183}/PKG-INFO +1 -1
  2. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/pyproject.toml +1 -1
  3. davout-0.1.1.dev183/source/Davout/CuboidGmsh/aa_tests/solids/notch_mesh.py +250 -0
  4. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/dataset_generator.py +62 -13
  5. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/input_data_filler.py +13 -11
  6. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/kinematics_surrogate_model.py +64 -30
  7. davout-0.1.1.dev183/source/Davout/DeepMech/tool_box/gpu_tools.py +21 -0
  8. davout-0.1.1.dev183/source/Davout/GraphUtilities/aa_tests/linear_transformation_plot.py +165 -0
  9. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/compressible_hyperelasticity.py +14 -8
  10. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/incompressible_hyperelasticity.py +8 -3
  11. davout-0.1.1.dev183/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/infinitesimal_plasticity.py +239 -0
  12. davout-0.1.1.dev183/source/Davout/MultiMech/constitutive_models/hyperelasticity/infinitesimal_elasticity.py +146 -0
  13. davout-0.1.1.dev183/source/Davout/MultiMech/constitutive_models/plasticity/isotropic_infinitesimal_plasticity.py +636 -0
  14. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/boundary_conditions_tools.py +51 -8
  15. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/constitutive_tools.py +42 -14
  16. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/functional_tools.py +293 -22
  17. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/mesh_handling_tools.py +14 -5
  18. davout-0.1.1.dev183/source/Davout/MultiMech/tool_box/newton_raphson_tools.py +310 -0
  19. davout-0.1.1.dev183/source/Davout/MultiMech/tool_box/projection_tools.py +652 -0
  20. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/pseudotime_stepping_tools.py +6 -6
  21. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/read_write_tools.py +371 -113
  22. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/surface_loading_tools.py +10 -4
  23. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/variational_tools.py +1 -179
  24. {davout-0.1.1.dev181 → davout-0.1.1.dev183/source/Davout.egg-info}/PKG-INFO +1 -1
  25. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout.egg-info/SOURCES.txt +8 -0
  26. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/LICENSE +0 -0
  27. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/README.md +0 -0
  28. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/setup.cfg +0 -0
  29. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/setup.py +0 -0
  30. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/__init__.py +0 -0
  31. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/__init__.py +0 -0
  32. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_artery.py +0 -0
  33. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_matrix_with_fiber.py +0 -0
  34. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/__init__.py +0 -0
  35. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/elastin_fiber_creator.py +0 -0
  36. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_artery_transfinite.py +0 -0
  37. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_matrix_with_fiber_transfinite.py +0 -0
  38. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/__init__.py +0 -0
  39. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/elastin_fiber_creator.py +0 -0
  40. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/spherical_RVE.py +0 -0
  41. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/__init__.py +0 -0
  42. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale.py +0 -0
  43. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale_ellipsoid.py +0 -0
  44. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/__init__.py +0 -0
  45. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/beam_micropolar_case_1.py +0 -0
  46. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/__init__.py +0 -0
  47. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/artery_parameters.py +0 -0
  48. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/fiber_matrix_parameters.py +0 -0
  49. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/periodic_structure.py +0 -0
  50. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/solids/__init__.py +0 -0
  51. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/solids/intervertebral_disc.py +0 -0
  52. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/aa_tests/solids/whole_ensemble_of_geometries.py +0 -0
  53. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/__init__.py +0 -0
  54. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/cuboid_cylinders.py +0 -0
  55. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/cuboid_ellipsoids.py +0 -0
  56. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/cuboid_generator.py +0 -0
  57. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/cuboid_helicoids.py +0 -0
  58. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/solids/cuboid_prisms.py +0 -0
  59. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/__init__.py +0 -0
  60. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/geometric_tools.py +0 -0
  61. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/mesh_data_retriever.py +0 -0
  62. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/meshing_tools.py +0 -0
  63. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/region_finder.py +0 -0
  64. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/CuboidGmsh/tool_box/verification_tools.py +0 -0
  65. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/PINNs/Physics/__init__.py +0 -0
  66. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/PINNs/Physics/elasticity_equation.py +0 -0
  67. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/PINNs/__init__.py +0 -0
  68. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/__init__.py +0 -0
  69. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/box_with_imposed_displacement_gradient.py +0 -0
  70. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/box_with_young_modulus_field.py +0 -0
  71. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/SVD_framework/young_modulus_field_generator.py +0 -0
  72. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/heat_equation.py +0 -0
  73. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_imposed_displacement_gradient.py +0 -0
  74. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_young_modulus_field.py +0 -0
  75. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/dataset_generator.py +0 -0
  76. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/input_data_filler.py +0 -0
  77. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/neural_network_trainer.py +0 -0
  78. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/young_modulus_field_generator.py +0 -0
  79. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_optimization.py +0 -0
  80. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_tools.py +0 -0
  81. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_SVD_based_NNs.py +0 -0
  82. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_SVD_tools.py +0 -0
  83. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_convex_and_partially_convex_input_NNs.py +0 -0
  84. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_math_tools.py +0 -0
  85. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_quotient_space_NNs.py +0 -0
  86. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_tensor_tools.py +0 -0
  87. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/custom_architectures/SVD_quotient_space.py +0 -0
  88. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/custom_architectures/__init__.py +0 -0
  89. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/custom_architectures/convexity_concerned_NNs.py +0 -0
  90. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/custom_architectures/gated_quotient_space.py +0 -0
  91. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/custom_architectures/generic_feed_forward.py +0 -0
  92. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/ANN_tools.py +0 -0
  93. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/FEM_surrogate_testing_tools.py +0 -0
  94. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/SVD_tools.py +0 -0
  95. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/__init__.py +0 -0
  96. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/activation_function_utilities.py +0 -0
  97. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/custom_activation_functions.py +0 -0
  98. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/differentiation_tools.py +0 -0
  99. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/loss_assembler_classes.py +0 -0
  100. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/loss_tools.py +0 -0
  101. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/math_tools.py +0 -0
  102. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/numerical_tools.py +0 -0
  103. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/parameters_tools.py +0 -0
  104. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/tensor_tools.py +0 -0
  105. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/DeepMech/tool_box/training_tools.py +0 -0
  106. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/__init__.py +0 -0
  107. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/REPL_experiments.py +0 -0
  108. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/__init__.py +0 -0
  109. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/optimization/__init__.py +0 -0
  110. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/optimization/tests_optimization_methods.py +0 -0
  111. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/tests_batching.py +0 -0
  112. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/tests_finite_elements.py +0 -0
  113. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/tests_loss_function.py +0 -0
  114. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/tests_physics.py +0 -0
  115. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/unidimensional/__init__.py +0 -0
  116. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/unidimensional/bar_fea.py +0 -0
  117. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/unidimensional/hyperelastic_1D_energies.py +0 -0
  118. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/aa_tests/unidimensional/variational_tools.py +0 -0
  119. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/assembly/__init__.py +0 -0
  120. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/assembly/body_forces_work.py +0 -0
  121. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/assembly/dirichlet_boundary_conditions_enforcer.py +0 -0
  122. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/assembly/hyperelastic_internal_work.py +0 -0
  123. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/assembly/surface_forces_work.py +0 -0
  124. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/constitutive_models/__init__.py +0 -0
  125. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/constitutive_models/hyperelastic_isotropic_models.py +0 -0
  126. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/__init__.py +0 -0
  127. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/elements_manager.py +0 -0
  128. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/finite_element_dispatcher.py +0 -0
  129. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/surface_elements/__init__.py +0 -0
  130. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/surface_elements/triangles.py +0 -0
  131. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/volume_elements/__init__.py +0 -0
  132. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/finite_elements/volume_elements/tetrahedrons.py +0 -0
  133. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/optimization/__init__.py +0 -0
  134. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/optimization/conditioning_matrices.py +0 -0
  135. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/optimization/loss_functions.py +0 -0
  136. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/optimization/neural_network_assembler.py +0 -0
  137. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/optimization/objective_function.py +0 -0
  138. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/physics/compressible_cauchy_hyperelasticy.py +0 -0
  139. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/__init__.py +0 -0
  140. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/constitutive_tools.py +0 -0
  141. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/dirichlet_loading_tools.py +0 -0
  142. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/math_tools.py +0 -0
  143. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/mesh_info_tools.py +0 -0
  144. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/mesh_tools.py +0 -0
  145. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/neumann_loading_tools.py +0 -0
  146. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/node_ordering.py +0 -0
  147. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/optimization_tools.py +0 -0
  148. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/parametric_curves_tools.py +0 -0
  149. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/sensitivity_tools.py +0 -0
  150. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/FENN/tool_box/tensorflow_utilities.py +0 -0
  151. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/__init__.py +0 -0
  152. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/__init__.py +0 -0
  153. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/cauchy_tetrahedron.py +0 -0
  154. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/continuum_mechanics_potato_collage.py +0 -0
  155. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/fake_book_spines.py +0 -0
  156. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/null_space_architecture.py +0 -0
  157. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/positive_orthant_modulating_function.py +0 -0
  158. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/strain_tensors.py +0 -0
  159. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/tests_collage_tools.py +0 -0
  160. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/tests_delaunay.py +0 -0
  161. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/tests_paraview_tools.py +0 -0
  162. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/aa_tests/tests_plotting_tools.py +0 -0
  163. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/collage_tools.py +0 -0
  164. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/paraview_tools.py +0 -0
  165. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/plotting_tools.py +0 -0
  166. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/__init__.py +0 -0
  167. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/arrows_lines_tools.py +0 -0
  168. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/box_and_markers_classes.py +0 -0
  169. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/box_tools.py +0 -0
  170. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/collage_classes.py +0 -0
  171. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/curves_setter.py +0 -0
  172. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/image_tools.py +0 -0
  173. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/interactivity_tools.py +0 -0
  174. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/paraview_scripts.py +0 -0
  175. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/perspective_tools.py +0 -0
  176. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/GraphUtilities/tool_box/text_excerpt_tools.py +0 -0
  177. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/LaTeXUtilities.sty +0 -0
  178. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/__init__.py +0 -0
  179. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/aa_tests/__init__.py +0 -0
  180. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/aa_tests/latex_parser_tests.py +0 -0
  181. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/latex_parser.py +0 -0
  182. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/tool_box/__init__.py +0 -0
  183. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/tool_box/command_tools.py +0 -0
  184. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/tool_box/parsing_tools.py +0 -0
  185. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/LaTeXUtilities/tool_box/sty_file_tools.py +0 -0
  186. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/__init__.py +0 -0
  187. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/heat_transfer/heat_box.py +0 -0
  188. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/beam_with_fibers.py +0 -0
  189. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/box_with_young_modulus_field.py +0 -0
  190. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_HGO.py +0 -0
  191. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean.py +0 -0
  192. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean_incompressible.py +0 -0
  193. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/hyperelastic_box.py +0 -0
  194. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/incompressible_hyperelastic_box.py +0 -0
  195. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/cylindrical_coordinates_material_property.py +0 -0
  196. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/disc_HGO.py +0 -0
  197. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/local_coordinate_system_generation.py +0 -0
  198. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_hyperelastic_box.py +0 -0
  199. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_incompressible_box.py +0 -0
  200. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/read_dofs_in_volume.py +0 -0
  201. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/young_modulus_field.py +0 -0
  202. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_macroscale.py +0 -0
  203. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_microscale.py +0 -0
  204. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/deformation_laboratory/microscale_deformation_lab.py +0 -0
  205. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/disc_micropolar_neo_hookean.py +0 -0
  206. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam.py +0 -0
  207. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean.py +0 -0
  208. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean_pure_dolfin.py +0 -0
  209. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean_pure_dolfin_old.py +0 -0
  210. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Suh_et_al/suh_implementation.py +0 -0
  211. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization.py +0 -0
  212. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization_original.py +0 -0
  213. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_homogenization.py +0 -0
  214. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_io.py +0 -0
  215. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/stress_plots.py +0 -0
  216. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation.py +0 -0
  217. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation_second_elasticity_tensor.py +0 -0
  218. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/tangent_operator_plotter.py +0 -0
  219. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_macroscale.py +0 -0
  220. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_microscale.py +0 -0
  221. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_macroscale.py +0 -0
  222. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_microscale.py +0 -0
  223. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/curve_fitting.py +0 -0
  224. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_field.py +0 -0
  225. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_material_property.py +0 -0
  226. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/elasticity_tensor.py +0 -0
  227. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/incompressible.py +0 -0
  228. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/linear_expression_test.py +0 -0
  229. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/petsc_2D.py +0 -0
  230. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic.py +0 -0
  231. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic_class.py +0 -0
  232. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_shifted_field.py +0 -0
  233. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/teste_afim.py +0 -0
  234. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/working_example_dictionaries.py +0 -0
  235. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/multiscale/hyperelasticity/beam_with_fibers_microscale.py +0 -0
  236. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes/beam_gmsh.py +0 -0
  237. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes_paths.py +0 -0
  238. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/aa_tests_and_examples/various_physics_tests.py +0 -0
  239. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/__init__.py +0 -0
  240. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/heat_transfer/isotropic_heat_conduction.py +0 -0
  241. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/hyperelasticity/__init__.py +0 -0
  242. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/hyperelasticity/anisotropic_hyperelasticity.py +0 -0
  243. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/hyperelasticity/isotropic_hyperelasticity.py +0 -0
  244. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/constitutive_models/hyperelasticity/micropolar_hyperelasticity.py +0 -0
  245. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/__init__.py +0 -0
  246. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/__init__.py +0 -0
  247. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_classes.py +0 -0
  248. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_expressions.py +0 -0
  249. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/multiscale_hyperelasticity.py +0 -0
  250. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/multiscale/multiscale_micropolar.py +0 -0
  251. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/physics/__init__.py +0 -0
  252. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/physics/hyperelastic_cauchy_continuum.py +0 -0
  253. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/physics/hyperelastic_incompressible_cauchy_continuum.py +0 -0
  254. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/physics/hyperelastic_micropolar_continuum.py +0 -0
  255. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/physics/steady_state_heat_transfer.py +0 -0
  256. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/post_processes/__init__.py +0 -0
  257. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/post_processes/post_processes_classes.py +0 -0
  258. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/post_processes/post_processes_functions.py +0 -0
  259. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/__init__.py +0 -0
  260. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/binary_tools.py +0 -0
  261. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/body_forces_loading_tools.py +0 -0
  262. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/dirichlet_load_tools.py +0 -0
  263. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/expressions_tools.py +0 -0
  264. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/homogenization_tools.py +0 -0
  265. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/multiscale_boundary_conditions_tools.py +0 -0
  266. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/numerical_tools.py +0 -0
  267. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/parallelization_tools.py +0 -0
  268. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/post_processing_tools.py +0 -0
  269. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/tensor_tools.py +0 -0
  270. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/MultiMech/tool_box/weak_boundary_conditions_tools.py +0 -0
  271. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/__init__.py +0 -0
  272. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/aa_tests/__init__.py +0 -0
  273. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/aa_tests/tests_template.py +0 -0
  274. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/aa_tests/txt_tests.py +0 -0
  275. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/coordinate_systems_tools.py +0 -0
  276. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/dictionary_tools.py +0 -0
  277. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/error_and_type_tools.py +0 -0
  278. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/file_handling_tools.py +0 -0
  279. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/fonts/CMU_Serif_Roman.ttf +0 -0
  280. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/function_tools.py +0 -0
  281. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/interpolation_tools.py +0 -0
  282. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/math_experiments.py +0 -0
  283. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/numpy_tools.py +0 -0
  284. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/package_tools.py +0 -0
  285. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/path_tools.py +0 -0
  286. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/programming_tools.py +0 -0
  287. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/recursion_tools.py +0 -0
  288. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/string_tools.py +0 -0
  289. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/tensor_and_math_tools.py +0 -0
  290. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/testing_tools.py +0 -0
  291. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/PythonicUtilities/user_interaction_tools.py +0 -0
  292. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/__init__.py +0 -0
  293. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/aa_tests/__init__.py +0 -0
  294. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/aa_tests/test_delaunay_tools.py +0 -0
  295. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/domain_decomposition/__init__.py +0 -0
  296. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/tool_box/__init__.py +0 -0
  297. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/tool_box/delaunay_tools.py +0 -0
  298. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/tool_box/sampling_tools.py +0 -0
  299. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/StochasticUtilities/tool_box/statistics_tools.py +0 -0
  300. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout/__init__.py +0 -0
  301. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout.egg-info/dependency_links.txt +0 -0
  302. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout.egg-info/requires.txt +0 -0
  303. {davout-0.1.1.dev181 → davout-0.1.1.dev183}/source/Davout.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: Davout
3
- Version: 0.1.1.dev181
3
+ Version: 0.1.1.dev183
4
4
  Summary: Scientific computing utilities combining FEM, ANN and tooling
5
5
  Author: Matheus Janczkowski
6
6
  Author-email: Matheus Janczkowski <matheusj2009@hotmail.com>
@@ -63,7 +63,7 @@ build-backend = "setuptools.build_meta"
63
63
 
64
64
  [project]
65
65
  name = "Davout"
66
- version = "0.1.1.dev181"
66
+ version = "0.1.1.dev183"
67
67
  description = "Scientific computing utilities combining FEM, ANN and tooling"
68
68
  readme = "README.md"
69
69
  authors = [
@@ -0,0 +1,250 @@
1
+ # Routine to generate an interchangeble mesh both for thrird medium
2
+ # contact and for notch-based crack propagation.
3
+ #
4
+ # Mesh made by Bianca Grahl Reyes
5
+
6
+ import h5py
7
+
8
+ import numpy as np
9
+
10
+ from .....Davout.CuboidGmsh.solids import cuboid_prisms as prisms
11
+
12
+ from .....Davout.CuboidGmsh.tool_box import meshing_tools as tools
13
+
14
+ from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file
15
+
16
+ # Defines a function to generate the mesh from a set of geometrical pa-
17
+ # rametres. L is the length of the box, W is the width of the box, H is
18
+ # the height of the box, theta is the notch opening angle, and
19
+ # half_W_notch is the notch width.
20
+
21
+ def generate_mesh(L, W, H, theta, half_W_notch, L_notch, transfinite_x,
22
+ transfinite_y, transfinite_z, transfinite_radial, mesh_file_name,
23
+ bias_x, bias_y, bias_z, bias_radial, include_drittes_medium=True,
24
+ verbose=True):
25
+
26
+ # Verifies whether the notch opening angle of the notch is between 0
27
+ # and 90 degrees
28
+
29
+ if theta<0.0 or theta>90.0:
30
+
31
+ raise ValueError("The notch opening angle should be between 0 "+
32
+ "and 90 degrees. Currently, 'theta' is "+str(theta))
33
+
34
+ # Converts the theta angle to radians
35
+
36
+ theta = theta*(np.pi/180.0)
37
+
38
+ # Verifies whether the notch width is confined within the box width
39
+
40
+ if (2*half_W_notch*np.sin(theta))>=W:
41
+
42
+ raise ValueError("The notch width, 'half_W_notch', and the not"+
43
+ "ch opening angle, 'theta', should be such that 2*half_W_notch"+
44
+ "*sin(theta) < W. So that the notch fits into the width of the"+
45
+ " box")
46
+
47
+ # Verifies whether the notch length is confined within the box length
48
+
49
+ # Defines the surfaces and volumes regions names for imposition of
50
+ # boundary conditions and integration of constitutive models
51
+
52
+ surfaces_regions_names = ["top", "front_solid", "front_third", "back", "bottom"]
53
+
54
+ volumes_regions_names = ["third medium", "solid"]
55
+
56
+ # Initializes the mesh
57
+
58
+ geometric_data = tools.gmsh_initialization(surface_regionsNames=
59
+ surfaces_regions_names, volume_regionsNames=volumes_regions_names)
60
+
61
+ # Creates the upper half of the notch (filled with third medium)
62
+
63
+ # Sets the corner points
64
+
65
+ corner_points = np.array([[L-L_notch, 0.5*W, 0.0], [L, 0.5*W, 0.0],
66
+ [L, (0.5*W)+(half_W_notch*np.sin(theta)), 0.0], [L-L_notch+(
67
+ half_W_notch*np.cos(theta)), (0.5*W)+(half_W_notch*np.sin(theta)),
68
+ 0.0],
69
+ [L-L_notch, 0.5*W, H], [L, 0.5*W, H],
70
+ [L, (0.5*W)+(half_W_notch*np.sin(theta)), H], [L-L_notch+(
71
+ half_W_notch*np.cos(theta)), (0.5*W)+(half_W_notch*np.sin(theta)),
72
+ H]])
73
+
74
+ # Generates this cuboid
75
+
76
+ if include_drittes_medium:
77
+
78
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
79
+ transfinite_directions = [transfinite_y, transfinite_x,
80
+ transfinite_z], geometric_data=geometric_data,
81
+ explicit_volume_physical_group_name = "third medium",
82
+ explicit_surface_physical_group_name = {3: "front_third"},
83
+ bias_directions = {"x": bias_y, "y": bias_x, "z": bias_z})
84
+
85
+ # Creates the upper section of the solid
86
+
87
+ # Sets the corner points
88
+
89
+ corner_points = np.array([[L-L_notch+(half_W_notch*np.cos(theta)),
90
+ (0.5*W)+(half_W_notch*np.sin(theta)), 0.0],
91
+ [L, (0.5*W)+(half_W_notch*np.sin(theta)), 0.0],
92
+ [L, W, 0.0], [0.0, W, 0.0],
93
+ [L-L_notch+(half_W_notch*np.cos(theta)),
94
+ (0.5*W)+(half_W_notch*np.sin(theta)), H],
95
+ [L, (0.5*W)+(half_W_notch*np.sin(theta)), H],
96
+ [L, W, H], [0.0, W, H]])
97
+
98
+ # Generates this cuboid
99
+
100
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
101
+ transfinite_directions = [transfinite_radial, transfinite_x,
102
+ transfinite_z], geometric_data=geometric_data,
103
+ explicit_volume_physical_group_name = "solid",
104
+ explicit_surface_physical_group_name = {3: "front_solid", 4: "top"},
105
+ bias_directions = {"x": bias_radial, "y": bias_x, "z": bias_z})
106
+
107
+ # Creates the upper section of the back of the solid
108
+
109
+ # Sets the corner points
110
+
111
+ corner_points = np.array([[0.0, 0.5*W, 0.0], [L-L_notch, 0.5*W, 0.0],
112
+ [L-L_notch+(half_W_notch*np.cos(theta)), (0.5*W)+(half_W_notch*
113
+ np.sin(theta)), 0.0], [0.0, W, 0.0],
114
+ [0.0, 0.5*W, H], [L-L_notch, 0.5*W, H],
115
+ [L-L_notch+(half_W_notch*np.cos(theta)), (0.5*W)+(half_W_notch*
116
+ np.sin(theta)), H], [0.0, W, H]])
117
+
118
+ # Generates this cuboid
119
+
120
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
121
+ transfinite_directions = [transfinite_y, transfinite_x,
122
+ transfinite_z], geometric_data=geometric_data,
123
+ explicit_volume_physical_group_name = "solid",
124
+ explicit_surface_physical_group_name = {5: "back"},
125
+ bias_directions = {"x": bias_y, "y": bias_radial, "z": bias_z})
126
+
127
+ # Creates the botton section of the back of the solid (6)
128
+
129
+ # Sets the corner points
130
+
131
+ corner_points = np.array([[0.0, 0.0, 0.0], [(L-L_notch)+(
132
+ half_W_notch*np.cos(theta)), 0.5*W-(half_W_notch*np.sin(theta)), 0.0],
133
+ [L-L_notch, 0.5*W, 0.0], [0.0, 0.5*W, 0.0],
134
+ [0.0, 0.0, H], [(L-L_notch)+(half_W_notch*np.cos(theta)),
135
+ 0.5*W-(half_W_notch*np.sin(theta)), H],
136
+ [L-L_notch, 0.5*W, H], [0.0, 0.5*W, H]])
137
+
138
+ # Generates this cuboid
139
+
140
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
141
+ transfinite_directions = [transfinite_y, transfinite_radial,
142
+ transfinite_z], geometric_data=geometric_data,
143
+ explicit_volume_physical_group_name = "solid",
144
+ explicit_surface_physical_group_name = {5: "back"},
145
+ bias_directions = {"x": -bias_y, "y": bias_radial, "z": bias_z})
146
+
147
+ # Creates the botton part of the third medium (2)
148
+
149
+ # Sets the corner points
150
+
151
+ corner_points = np.array([[(L-L_notch)+(half_W_notch*np.cos(theta)),
152
+ 0.5*W-(half_W_notch*np.sin(theta)), 0.0], [L, 0.5*W-(half_W_notch*
153
+ np.sin(theta)), 0.0], [L, 0.5*W, 0.0], [L-L_notch, 0.5*W, 0.0],
154
+ [(L-L_notch)+(half_W_notch*np.cos(theta)), 0.5*W-(half_W_notch*
155
+ np.sin(theta)), H], [L, 0.5*W-(half_W_notch*np.sin(theta)), H],
156
+ [L, 0.5*W, H], [L-L_notch, 0.5*W, H]])
157
+
158
+ # Generates this cuboid
159
+
160
+ if include_drittes_medium:
161
+
162
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
163
+ transfinite_directions = [transfinite_y, transfinite_x,
164
+ transfinite_z], geometric_data=geometric_data,
165
+ explicit_volume_physical_group_name = "third medium",
166
+ explicit_surface_physical_group_name = {3: "front_third"},
167
+ bias_directions = {"x": -bias_y, "y": bias_x, "z": bias_z})
168
+
169
+ # Creates the botton part of the solid (4)
170
+
171
+ # Sets the corner points
172
+
173
+ corner_points = np.array([[0.0, 0.0, 0.0], [L, 0.0, 0.0],
174
+ [L, (0.5*W)-(half_W_notch*np.sin(theta)), 0.0], [L-L_notch+(
175
+ half_W_notch*np.cos(theta)), (0.5*W)-(half_W_notch*np.sin(theta)), 0.0],
176
+ [0.0, 0.0, H], [L, 0.0, H], [L, (0.5*W)-(half_W_notch*np.sin(theta)),
177
+ H], [L-L_notch+(half_W_notch*np.cos(theta)), (0.5*W)-(half_W_notch*
178
+ np.sin(theta)), H]])
179
+
180
+ # Generates this cuboid
181
+
182
+ geometric_data = prisms.hexahedron_from_corners(corner_points,
183
+ transfinite_directions = [transfinite_y, transfinite_x,
184
+ transfinite_z], geometric_data=geometric_data,
185
+ explicit_volume_physical_group_name = "solid",
186
+ explicit_surface_physical_group_name = {3: "front_solid", 2: "bottom"},
187
+ bias_directions = {"x": -bias_radial, "y": bias_x, "z": bias_z})
188
+
189
+ ####################################################################
190
+ # Mesh generation #
191
+ ####################################################################
192
+
193
+ tools.gmsh_finalize(geometric_data=geometric_data, file_name=
194
+ mesh_file_name, file_directory="", verbose=verbose)
195
+
196
+ # Testing block
197
+
198
+ if __name__ == "__main__":
199
+
200
+ # Example parameters for the mesh generation
201
+
202
+ L = 10.0
203
+
204
+ W = 5.0
205
+
206
+ H = 3.0
207
+
208
+ theta = 30.0
209
+
210
+ half_W_notch = 1.0
211
+
212
+ L_notch = 8.0
213
+
214
+ # Sets the number of elements of each direction
215
+
216
+ transfinite_x = 10
217
+
218
+ transfinite_y = 4
219
+
220
+ transfinite_z = 5
221
+
222
+ transfinite_radial = 5
223
+
224
+ # Sets the bias factors. When the bias is 1.0, nothing happens and
225
+ # the finite elements are uniformly distributed
226
+
227
+ bias_x = 1.1
228
+
229
+ bias_y = 1.2
230
+
231
+ bias_z = 1.0
232
+
233
+ bias_radial = -1.5
234
+
235
+ # Defines the name of the mesh and appends the whole path to it.
236
+ # Uses a function from Davout to automatically retrieve the path to
237
+ # this file (notch_mesh.py)
238
+
239
+ mesh_file_name = get_parent_path_of_file()+"//notch_mesh"
240
+
241
+ # Sets a flag to add or not the mesh of the third medium
242
+
243
+ include_drittes_medium = True
244
+
245
+ # Calls the mesh generation function
246
+
247
+ generate_mesh(L, W, H, theta, half_W_notch, L_notch, transfinite_x,
248
+ transfinite_y, transfinite_z, transfinite_radial, mesh_file_name,
249
+ bias_x, bias_y, bias_z, bias_radial, include_drittes_medium=
250
+ include_drittes_medium)
@@ -14,6 +14,8 @@ from .....Davout.DeepMech.aa_tests.mecsol_2026_quotient_space.box_with_imposed_d
14
14
 
15
15
  from .....Davout.DeepMech.aa_tests.mecsol_2026_quotient_space.young_modulus_field_generator import generate_field
16
16
 
17
+ from input_data_filler import fill_load_steps
18
+
17
19
  import numpy as np
18
20
 
19
21
  import traceback
@@ -26,7 +28,8 @@ def generate_dataset(n_samples, limits_list, p_norm_list, results_path,
26
28
  displacement_file_name, young_modulus_file, mesh_file_name, cube_size,
27
29
  influence_radius, damping_factor, radius_power, mesh_data_class,
28
30
  lagrange_multiplier_file_name, strain_energy_file_name,
29
- save_snapshot_displacement=False):
31
+ displacement_matrix_file_name, strain_energy_matrix_file_name,
32
+ input_matrix_file_name, save_snapshot_displacement=False):
30
33
 
31
34
  # Initializes the list of samples
32
35
 
@@ -193,14 +196,14 @@ save_snapshot_displacement=False):
193
196
 
194
197
  # Saves the lists into binary and txt files
195
198
 
196
- np.save(results_path+"//00_successful_displacement_matrix.n"+
197
- "py", np.array(succesful_displacement))
199
+ np.save(results_path+"//"+displacement_matrix_file_name,
200
+ np.array(succesful_displacement))
198
201
 
199
- np.save(results_path+"//00_successful_strain_energy_matrix"+
200
- ".npy", np.array(succesful_strain_energy))
202
+ np.save(results_path+"//"+strain_energy_matrix_file_name,
203
+ np.array(succesful_strain_energy))
201
204
 
202
- np.save(results_path+"//00_successful_data_matrix.npy",
203
- np.array(succesful_data))
205
+ np.save(results_path+"//"+input_matrix_file_name, np.array(
206
+ succesful_data))
204
207
 
205
208
  list_toTxt(completed_simulations, "00_completed_simulations",
206
209
  parent_path=results_path)
@@ -372,6 +375,31 @@ if __name__=="__main__":
372
375
 
373
376
  mesh_file_name = "box_mesh_mecsol"
374
377
 
378
+ # Sets the file name of the data matrices
379
+
380
+ displacement_matrix_file_name = ("00_successful_displacement_matri"+
381
+ "x.npy")
382
+
383
+ strain_energy_matrix_file_name = ("00_successful_strain_energy_mat"+
384
+ "rix.npy")
385
+
386
+ input_matrix_file_name = "00_successful_data_matrix.npy"
387
+
388
+ # Sets the file names of the completed (filled-in with load-steps)
389
+ # data matrices and the filtered counterpart
390
+
391
+ complete_data_matrix_file_name = ("00_successful_complete_data_mat"+
392
+ "rix.npy")
393
+
394
+ complete_and_filtered_data_matrix_file_name = ("00_successful_comp"+
395
+ "lete_and_filtered_data_matrix.npy")
396
+
397
+ # Sets the initial and final time points for the simulation
398
+
399
+ initial_time = 0.2
400
+
401
+ final_time = 1.0
402
+
375
403
  # Constructs the mesh
376
404
 
377
405
  mesh_data_class = read_mshMesh({"length x": cube_size, "length y":
@@ -382,10 +410,31 @@ if __name__=="__main__":
382
410
  "bias x": ["Bump", bias_factor], "bias y": ["Bump", bias_factor],
383
411
  "bias z": ["Bump", bias_factor]})
384
412
 
385
- # Constructs the field
413
+ # Defines a flag fo generating the dataset and another flag for ge-
414
+ # nerating the dataset with the intermediate load steps and its fil-
415
+ # tered version as well
416
+
417
+ flag_generate_dataset = False
418
+
419
+ flag_fill_in_load_steps = True
420
+
421
+ # Generates the dataset from skretch
422
+
423
+ if flag_generate_dataset:
424
+
425
+ generate_dataset(n_samples, limits_list, p_norm_list,
426
+ results_path, displacement_file_name, young_modulus_file,
427
+ mesh_file_name, cube_size, influence_radius, damping_factor,
428
+ radius_power, mesh_data_class, lagrange_multiplier_file_name,
429
+ strain_energy_file_name, displacement_matrix_file_name,
430
+ strain_energy_matrix_file_name, input_matrix_file_name,
431
+ save_snapshot_displacement=False)
432
+
433
+ # Fills the load-steps and generates the filtered dataset from it
434
+
435
+ if flag_fill_in_load_steps:
386
436
 
387
- generate_dataset(n_samples, limits_list, p_norm_list, results_path,
388
- displacement_file_name, young_modulus_file, mesh_file_name, cube_size,
389
- influence_radius, damping_factor, radius_power, mesh_data_class,
390
- lagrange_multiplier_file_name, strain_energy_file_name,
391
- save_snapshot_displacement=False)
437
+ fill_load_steps(input_matrix_file_name,
438
+ displacement_matrix_file_name, complete_data_matrix_file_name,
439
+ complete_and_filtered_data_matrix_file_name, results_path,
440
+ initial_time, final_time)
@@ -60,10 +60,10 @@ final_time):
60
60
 
61
61
  # Recovers the displacement gradient
62
62
 
63
- displacement_gradient = np.array([[sample_data[2],
64
- sample_data[3], sample_data[4]], [sample_data[5],
65
- sample_data[6], sample_data[7]], [sample_data[8],
66
- sample_data[9], sample_data[10]]])
63
+ displacement_gradient = np.array([[sample_data[0],
64
+ sample_data[1], sample_data[2]], [sample_data[3],
65
+ sample_data[4], sample_data[5]], [sample_data[6],
66
+ sample_data[7], sample_data[8]]])
67
67
 
68
68
  # Gets the corresponding deformation gradient
69
69
 
@@ -118,7 +118,7 @@ final_time):
118
118
  new_disp_grad[0,1], new_disp_grad[0,2], new_disp_grad[
119
119
  1,0], new_disp_grad[1,1], new_disp_grad[1,2],
120
120
  new_disp_grad[2,0], new_disp_grad[2,1], new_disp_grad[
121
- 2,2], sample_data[0], sample_data[1]])
121
+ 2,2], sample_data[9], sample_data[10]])
122
122
 
123
123
  # Adds this sample to the filtered input data. Inserts
124
124
  # the load-based data as the first columns, since this
@@ -137,18 +137,20 @@ final_time):
137
137
  new_input_list = np.array(new_input_list)
138
138
 
139
139
  print("The new input data matrix has shape "+str(
140
- new_input_list.shape)+", whereas it had "+str(input_data.shape[0
141
- ])+" rows before.\nThe displacement matrix, on the other hand,"+
142
- " has "+str(displacement_matrix.shape[0])+"\n")
140
+ new_input_list.shape)+", whereas it had the shape "+str(
141
+ input_data.shape)+" before.\nThe displacement matrix, on the o"+
142
+ "ther hand, has shape equal to "+str(displacement_matrix.shape)+
143
+ "\n")
143
144
 
144
145
  np.save(results_path+"//"+new_input_file, new_input_list)
145
146
 
146
147
  new_filtered_input_list = np.array(new_filtered_input_list)
147
148
 
148
149
  print("The new filtered input data matrix has shape "+str(
149
- new_filtered_input_list.shape)+", whereas it had "+str(
150
- input_data.shape[0])+" rows before.\nThe displacement matrix, "+
151
- "on the other hand, has "+str(displacement_matrix.shape[0])+"\n")
150
+ new_filtered_input_list.shape)+", whereas it had the shape "+str(
151
+ input_data.shape)+" before.\nThe displacement matrix, on th"+
152
+ "e other hand, has shape equal to "+str(displacement_matrix.shape
153
+ )+"\n")
152
154
 
153
155
  np.save(results_path+"//"+new_filtered_input_file,
154
156
  new_filtered_input_list)
@@ -5,6 +5,10 @@ import numpy as np
5
5
 
6
6
  import tensorflow as tf
7
7
 
8
+ from .....Davout.DeepMech.tool_box.gpu_tools import give_access_of_gpu_to_tensorflow
9
+
10
+ give_access_of_gpu_to_tensorflow(True)
11
+
8
12
  from time import time
9
13
 
10
14
  from .....Davout.DeepMech.tool_box import ANN_tools, training_tools
@@ -28,8 +32,7 @@ class RVEKinematicsSurrogateModel:
28
32
  maximum_training_iterations, verbose_delta_iterations,
29
33
  mesh_file_name, optimizer, subdofs_to_learn, parameters_dtype="flo"+
30
34
  "at32", householder_epsilon=1.0, verbose=True, integer_dtype="int3"+
31
- "2", get_all_inputs_to_zeroth_order_of_magnitude=False,
32
- non_orthogonal_matrices=False, device_type="CPU",
35
+ "2", non_orthogonal_matrices=False, device_type="CPU",
33
36
  input_data_regularization_method=None):
34
37
 
35
38
  # Saves the needed information
@@ -38,9 +41,6 @@ class RVEKinematicsSurrogateModel:
38
41
 
39
42
  self.device_type = device_type
40
43
 
41
- self.get_all_inputs_to_zeroth_order_of_magnitude = (
42
- get_all_inputs_to_zeroth_order_of_magnitude)
43
-
44
44
  self.activations_list_main_network = activations_list_main_network
45
45
 
46
46
  self.activations_list_auxiliar_network = (
@@ -89,7 +89,7 @@ class RVEKinematicsSurrogateModel:
89
89
  # Converts the tensor of DOFs to a tensorflow integer tensor
90
90
 
91
91
  self.subdofs_to_learn = tf.convert_to_tensor(subdofs_to_learn,
92
- dtype=tf.as_dtype(self.parameters_dtype))
92
+ dtype=tf.as_dtype(self.integer_dtype))
93
93
 
94
94
  # Gets the number of output neurons from the tensor of the indi-
95
95
  # ces of the DOFs that will actually be learnt
@@ -98,13 +98,31 @@ class RVEKinematicsSurrogateModel:
98
98
 
99
99
  # Reads the output data
100
100
 
101
- self.output_data = np.load(self.results_path+"//"+
101
+ self.whole_output_data = np.load(self.results_path+"//"+
102
102
  self.displacement_data_file)
103
103
 
104
104
  # Gets the numbers of samples and of total of DOFs
105
105
 
106
106
  self.number_of_samples, self.total_number_of_dofs = (
107
- self.output_data.shape)
107
+ self.whole_output_data.shape)
108
+
109
+ # Checks whether subdofs to learn has any DOF index that is lar-
110
+ # ger than the number of DOFs of the output data
111
+
112
+ if tf.reduce_max(self.subdofs_to_learn).numpy(
113
+ )>=self.total_number_of_dofs:
114
+
115
+ raise IndexError("The maximum DOF index requested by 'subd"+
116
+ "ofs_to_learn' is "+str(tf.reduce_max(self.subdofs_to_learn
117
+ ).numpy())+". But the output data at\n"+str(
118
+ self.results_path+"//"+self.displacement_data_file)+"\nhas"+
119
+ " only "+str(self.total_number_of_dofs)+" columns")
120
+
121
+ # Otherwise, uses the subdofs to learn to retrieve the needed
122
+ # DOFs for training
123
+
124
+ self.output_data = self.whole_output_data[:,
125
+ self.subdofs_to_learn]
108
126
 
109
127
  # Gets the input data
110
128
 
@@ -343,9 +361,26 @@ class RVEKinematicsSurrogateModel:
343
361
 
344
362
  if __name__=="__main__":
345
363
 
364
+ # Sets the number of transfinite divisions in the RVE mesh
365
+
366
+ n_divisions = 10
367
+
368
+ # Sets component to be learnt
369
+
370
+ component_to_be_learnt = "Y"
371
+
372
+ # Sets a dictionary for the number of DOFs in the mesh for each num-
373
+ # ber of divisions
374
+
375
+ dofs_per_number_of_divisions = {6: 3993, 8: 10125, 10: 20577}
376
+
346
377
  # Defines the array with the DOFs to be learnt
347
378
 
348
- subdofs_to_learn = np.arange(0, 20577, 3)
379
+ components_dictionary = {"X": 0, "Y": 1, "Z": 2}
380
+
381
+ subdofs_to_learn = np.arange(components_dictionary[
382
+ component_to_be_learnt], dofs_per_number_of_divisions[n_divisions],
383
+ 3)
349
384
 
350
385
  # Defines the number of input neurons of the main network. Remember
351
386
  # that the data matrix is a tensor [n_samples, n_input_variables].
@@ -358,7 +393,7 @@ if __name__=="__main__":
358
393
  # Defines the number of neurons of the different hidden layers and of
359
394
  # the output layer
360
395
 
361
- n_neurons_per_layer = [100, 1000, 20577]
396
+ n_neurons_per_layer = [100, 1000, subdofs_to_learn.shape[0]]
362
397
 
363
398
  # Sets a list of layers and the activation functions
364
399
 
@@ -366,11 +401,12 @@ if __name__=="__main__":
366
401
  n_neurons_per_layer[0]}}, {"elu": {"number of neurons":
367
402
  n_neurons_per_layer[1]}}, {"linear": n_neurons_per_layer[2]}]
368
403
 
369
- activations_list_auxiliar_network = [{"quadratic": {"number"+
370
- " of neurons": min(quotient_space_dimension, n_neurons_per_layer[0]),
371
- "a2": 1.0}}, {"quadratic": {"number of neurons": min(
372
- n_neurons_per_layer[0], n_neurons_per_layer[1]), "a2": 1.0}}, {"qu"+
373
- "adratic": {"number of neurons": min(n_neurons_per_layer[1],
404
+ activations_list_auxiliar_network = [{"quadratic": {"number of neu"+
405
+ "rons": min(quotient_space_dimension, n_neurons_per_layer[0]), "a2":
406
+ 1.0}},
407
+ {"quadratic": {"number of neurons": min(n_neurons_per_layer[0],
408
+ n_neurons_per_layer[1]), "a2": 1.0}},
409
+ {"quadratic": {"number of neurons": min(n_neurons_per_layer[1],
374
410
  n_neurons_per_layer[2])}}]
375
411
 
376
412
  # Sets the modulating function for the weights matrices
@@ -387,21 +423,25 @@ if __name__=="__main__":
387
423
 
388
424
  verbose_delta_iterations = 50
389
425
 
390
- n_monte_carlo_realizations = 10
426
+ n_monte_carlo_realizations = 1000
391
427
 
392
- n_best_models = 5
428
+ n_best_models = 30
393
429
 
394
- n_best_samples = 10
430
+ n_best_samples = 20
395
431
 
396
432
  loss_metric = "MeanSquaredError"
397
433
 
434
+ loss_metric = {"name": "LpNormError", "p": 12, "use_stable_impleme"+
435
+ "ntation": True}
436
+
398
437
  parameters_dtype = "float32"
399
438
 
400
- saved_model_file = "RVE_kinematics_model.keras"
439
+ saved_model_file = "RVE_kinematics_model_"+str(component_to_be_learnt)
401
440
 
402
441
  # Sets the path for the data
403
442
 
404
- results_path = get_parent_path_of_file()+"//results"
443
+ results_path = (get_parent_path_of_file()+"//results_n_divisions_"+
444
+ str(n_divisions))
405
445
 
406
446
  displacement_data_file = "00_successful_displacement_matrix.npy"
407
447
 
@@ -411,12 +451,8 @@ if __name__=="__main__":
411
451
 
412
452
  # Sets the method to regularize the input data matrix
413
453
 
414
- input_data_regularization_method = None
415
-
416
- # Sets if the input data must be put into the same order of magnitu-
417
- # de
418
-
419
- get_all_inputs_to_zeroth_order_of_magnitude = False
454
+ input_data_regularization_method = ("maximum_absolute_order_normal"+
455
+ "ization")
420
456
 
421
457
  # Sets the device type where the training will be performed
422
458
 
@@ -425,7 +461,7 @@ if __name__=="__main__":
425
461
  # Sets whether the constraint on orthogonality of the SVD matrices
426
462
  # will not be enforced
427
463
 
428
- non_orthogonal_matrices = False
464
+ non_orthogonal_matrices = True
429
465
 
430
466
  # Instantiates the class that owns all information about training
431
467
  # and testing models
@@ -438,9 +474,7 @@ if __name__=="__main__":
438
474
  n_best_models, n_best_samples, maximum_training_iterations,
439
475
  verbose_delta_iterations, mesh_file_name, optimizer,
440
476
  subdofs_to_learn, parameters_dtype=parameters_dtype,
441
- householder_epsilon=1.0, verbose=True,
442
- get_all_inputs_to_zeroth_order_of_magnitude=
443
- get_all_inputs_to_zeroth_order_of_magnitude, device_type=
477
+ householder_epsilon=1.0, verbose=True, device_type=
444
478
  device_type, non_orthogonal_matrices=non_orthogonal_matrices,
445
479
  input_data_regularization_method=input_data_regularization_method)
446
480
 
@@ -0,0 +1,21 @@
1
+ # Routine to store methods to set the GPU for tensorflow
2
+
3
+ import tensorflow as tf
4
+
5
+ # Defines a function to set the access of tensorflow to the GPU
6
+
7
+ def give_access_of_gpu_to_tensorflow(flag_to_use_gpu):
8
+
9
+ # Checks whether the flag for tensorflow to use the GPU is false
10
+
11
+ if not flag_to_use_gpu:
12
+
13
+ # Disables the GPU if necessary
14
+
15
+ tf.config.set_visible_devices([], 'GPU')
16
+
17
+ print(tf.config.list_physical_devices('CPU'))
18
+
19
+ print(tf.config.list_physical_devices('GPU'))
20
+
21
+ print("Visible GPUs:", tf.config.get_visible_devices("GPU"))