Davout 0.1.1.dev134__tar.gz → 0.1.1.dev136__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 (266) hide show
  1. {davout-0.1.1.dev134/source/Davout.egg-info → davout-0.1.1.dev136}/PKG-INFO +1 -1
  2. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/pyproject.toml +1 -1
  3. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_imposed_displacement_gradient.py +194 -0
  4. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_young_modulus_field.py +205 -0
  5. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/dataset_generator.py +365 -0
  6. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/input_data_filler.py +146 -0
  7. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/neural_network_trainer.py +173 -0
  8. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/young_modulus_field_generator.py +118 -0
  9. davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/tests_tool_box/test_quotient_space_NNs.py +191 -0
  10. davout-0.1.1.dev136/source/Davout/DeepMech/custom_architectures/gated_quotient_space.py +284 -0
  11. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/loss_assembler_classes.py +21 -1
  12. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/training_tools.py +67 -6
  13. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_batching.py +2 -1
  14. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_loss_function.py +2 -1
  15. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_physics.py +2 -1
  16. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/box_tools.py +2 -2
  17. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/interactivity_tools.py +2 -2
  18. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/young_modulus_field.py +1 -1
  19. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/disc_micropolar_neo_hookean.py +10 -8
  20. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/compressible_hyperelasticity.py +3 -2
  21. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/incompressible_hyperelasticity.py +3 -2
  22. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_cauchy_continuum.py +10 -12
  23. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_incompressible_cauchy_continuum.py +10 -12
  24. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_micropolar_continuum.py +10 -13
  25. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/steady_state_heat_transfer.py +9 -12
  26. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/post_processes_classes.py +3 -2
  27. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/post_processes_functions.py +66 -27
  28. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/binary_tools.py +92 -32
  29. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/boundary_conditions_tools.py +132 -3
  30. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/functional_tools.py +327 -28
  31. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/homogenization_tools.py +23 -21
  32. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/mesh_handling_tools.py +140 -0
  33. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/pseudotime_stepping_tools.py +26 -8
  34. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/surface_loading_tools.py +92 -0
  35. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/variational_tools.py +4 -3
  36. davout-0.1.1.dev136/source/Davout/MultiMech/tool_box/weak_boundary_conditions_tools.py +163 -0
  37. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/stochastic_tools.py +45 -2
  38. {davout-0.1.1.dev134 → davout-0.1.1.dev136/source/Davout.egg-info}/PKG-INFO +1 -1
  39. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/SOURCES.txt +9 -1
  40. davout-0.1.1.dev134/source/Davout/GraphUtilities/aa_tests/volumetric_kinematics.py +0 -2
  41. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/LICENSE +0 -0
  42. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/README.md +0 -0
  43. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/setup.cfg +0 -0
  44. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/setup.py +0 -0
  45. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/__init__.py +0 -0
  46. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/__init__.py +0 -0
  47. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_artery.py +0 -0
  48. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_matrix_with_fiber.py +0 -0
  49. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/__init__.py +0 -0
  50. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/elastin_fiber_creator.py +0 -0
  51. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_artery_transfinite.py +0 -0
  52. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_matrix_with_fiber_transfinite.py +0 -0
  53. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/__init__.py +0 -0
  54. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/elastin_fiber_creator.py +0 -0
  55. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/__init__.py +0 -0
  56. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale.py +0 -0
  57. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale_ellipsoid.py +0 -0
  58. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/__init__.py +0 -0
  59. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/beam_micropolar_case_1.py +0 -0
  60. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/__init__.py +0 -0
  61. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/artery_parameters.py +0 -0
  62. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/fiber_matrix_parameters.py +0 -0
  63. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/periodic_structure.py +0 -0
  64. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/__init__.py +0 -0
  65. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/intervertebral_disc.py +0 -0
  66. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/whole_ensemble_of_geometries.py +0 -0
  67. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/__init__.py +0 -0
  68. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_cylinders.py +0 -0
  69. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_ellipsoids.py +0 -0
  70. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_generator.py +0 -0
  71. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_helicoids.py +0 -0
  72. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_prisms.py +0 -0
  73. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/__init__.py +0 -0
  74. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/geometric_tools.py +0 -0
  75. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/mesh_data_retriever.py +0 -0
  76. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/meshing_tools.py +0 -0
  77. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/region_finder.py +0 -0
  78. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/verification_tools.py +0 -0
  79. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/Physics/__init__.py +0 -0
  80. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/Physics/elasticity_equation.py +0 -0
  81. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/__init__.py +0 -0
  82. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/__init__.py +0 -0
  83. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/heat_equation.py +0 -0
  84. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_optimization.py +0 -0
  85. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_tools.py +0 -0
  86. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_convex_and_partially_convex_input_NNs.py +0 -0
  87. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_math_tools.py +0 -0
  88. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_tensor_tools.py +0 -0
  89. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/__init__.py +0 -0
  90. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/convexity_concerned_NNs.py +0 -0
  91. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/generic_feed_forward.py +0 -0
  92. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/ANN_tools.py +0 -0
  93. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/__init__.py +0 -0
  94. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/activation_function_utilities.py +0 -0
  95. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/custom_activation_functions.py +0 -0
  96. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/differentiation_tools.py +0 -0
  97. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/loss_tools.py +0 -0
  98. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/math_tools.py +0 -0
  99. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/numerical_tools.py +0 -0
  100. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/parameters_tools.py +0 -0
  101. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/tensor_tools.py +0 -0
  102. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/__init__.py +0 -0
  103. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/REPL_experiments.py +0 -0
  104. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/__init__.py +0 -0
  105. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/optimization/__init__.py +0 -0
  106. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/optimization/tests_optimization_methods.py +0 -0
  107. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_finite_elements.py +0 -0
  108. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/__init__.py +0 -0
  109. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/bar_fea.py +0 -0
  110. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/hyperelastic_1D_energies.py +0 -0
  111. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/variational_tools.py +0 -0
  112. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/__init__.py +0 -0
  113. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/body_forces_work.py +0 -0
  114. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/dirichlet_boundary_conditions_enforcer.py +0 -0
  115. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/hyperelastic_internal_work.py +0 -0
  116. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/surface_forces_work.py +0 -0
  117. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/constitutive_models/__init__.py +0 -0
  118. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/constitutive_models/hyperelastic_isotropic_models.py +0 -0
  119. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/__init__.py +0 -0
  120. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/elements_manager.py +0 -0
  121. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/finite_element_dispatcher.py +0 -0
  122. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/surface_elements/__init__.py +0 -0
  123. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/surface_elements/triangles.py +0 -0
  124. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/volume_elements/__init__.py +0 -0
  125. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/volume_elements/tetrahedrons.py +0 -0
  126. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/__init__.py +0 -0
  127. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/conditioning_matrices.py +0 -0
  128. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/loss_functions.py +0 -0
  129. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/neural_network_assembler.py +0 -0
  130. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/objective_function.py +0 -0
  131. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/physics/compressible_cauchy_hyperelasticy.py +0 -0
  132. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/__init__.py +0 -0
  133. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/constitutive_tools.py +0 -0
  134. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/dirichlet_loading_tools.py +0 -0
  135. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/math_tools.py +0 -0
  136. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/mesh_info_tools.py +0 -0
  137. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/mesh_tools.py +0 -0
  138. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/neumann_loading_tools.py +0 -0
  139. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/node_ordering.py +0 -0
  140. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/optimization_tools.py +0 -0
  141. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/parametric_curves_tools.py +0 -0
  142. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/sensitivity_tools.py +0 -0
  143. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/tensorflow_utilities.py +0 -0
  144. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/__init__.py +0 -0
  145. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/__init__.py +0 -0
  146. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/cauchy_tetrahedron.py +0 -0
  147. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/continuum_mechanics_potato_collage.py +0 -0
  148. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/null_space_architecture.py +0 -0
  149. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_collage_tools.py +0 -0
  150. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_delaunay.py +0 -0
  151. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_paraview_tools.py +0 -0
  152. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_plotting_tools.py +0 -0
  153. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/collage_tools.py +0 -0
  154. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/paraview_tools.py +0 -0
  155. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/plotting_tools.py +0 -0
  156. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/__init__.py +0 -0
  157. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/arrows_lines_tools.py +0 -0
  158. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/box_and_markers_classes.py +0 -0
  159. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/collage_classes.py +0 -0
  160. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/curves_setter.py +0 -0
  161. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/image_tools.py +0 -0
  162. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/paraview_scripts.py +0 -0
  163. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/perspective_tools.py +0 -0
  164. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/text_excerpt_tools.py +0 -0
  165. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/LaTeXUtilities/LaTeXUtilities.sty +0 -0
  166. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/LaTeXUtilities/__init__.py +0 -0
  167. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/__init__.py +0 -0
  168. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/heat_transfer/heat_box.py +0 -0
  169. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/beam_with_fibers.py +0 -0
  170. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/box_with_young_modulus_field.py +0 -0
  171. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_HGO.py +0 -0
  172. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean.py +0 -0
  173. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean_incompressible.py +0 -0
  174. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/hyperelastic_box.py +0 -0
  175. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/incompressible_hyperelastic_box.py +0 -0
  176. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/cylindrical_coordinates_material_property.py +0 -0
  177. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/disc_HGO.py +0 -0
  178. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/local_coordinate_system_generation.py +0 -0
  179. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_hyperelastic_box.py +0 -0
  180. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_incompressible_box.py +0 -0
  181. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/read_dofs_in_volume.py +0 -0
  182. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_macroscale.py +0 -0
  183. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_microscale.py +0 -0
  184. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/deformation_laboratory/microscale_deformation_lab.py +0 -0
  185. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam.py +0 -0
  186. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean.py +0 -0
  187. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean_pure_dolfin.py +0 -0
  188. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean_pure_dolfin_old.py +0 -0
  189. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Suh_et_al/suh_implementation.py +0 -0
  190. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization.py +0 -0
  191. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization_original.py +0 -0
  192. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_homogenization.py +0 -0
  193. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_io.py +0 -0
  194. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/stress_plots.py +0 -0
  195. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation.py +0 -0
  196. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation_second_elasticity_tensor.py +0 -0
  197. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/tangent_operator_plotter.py +0 -0
  198. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_macroscale.py +0 -0
  199. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_microscale.py +0 -0
  200. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_macroscale.py +0 -0
  201. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_microscale.py +0 -0
  202. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/curve_fitting.py +0 -0
  203. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_field.py +0 -0
  204. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_material_property.py +0 -0
  205. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/elasticity_tensor.py +0 -0
  206. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/incompressible.py +0 -0
  207. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/linear_expression_test.py +0 -0
  208. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/petsc_2D.py +0 -0
  209. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic.py +0 -0
  210. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic_class.py +0 -0
  211. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_shifted_field.py +0 -0
  212. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/teste_afim.py +0 -0
  213. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/working_example_dictionaries.py +0 -0
  214. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/multiscale/hyperelasticity/beam_with_fibers_microscale.py +0 -0
  215. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes/beam_gmsh.py +0 -0
  216. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes_paths.py +0 -0
  217. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/various_physics_tests.py +0 -0
  218. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/__init__.py +0 -0
  219. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/heat_transfer/isotropic_heat_conduction.py +0 -0
  220. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/__init__.py +0 -0
  221. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/anisotropic_hyperelasticity.py +0 -0
  222. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/isotropic_hyperelasticity.py +0 -0
  223. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/micropolar_hyperelasticity.py +0 -0
  224. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/__init__.py +0 -0
  225. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/__init__.py +0 -0
  226. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_classes.py +0 -0
  227. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_expressions.py +0 -0
  228. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_hyperelasticity.py +0 -0
  229. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_micropolar.py +0 -0
  230. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/__init__.py +0 -0
  231. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/__init__.py +0 -0
  232. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/__init__.py +0 -0
  233. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/body_forces_loading_tools.py +0 -0
  234. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/constitutive_tools.py +0 -0
  235. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/dirichlet_load_tools.py +0 -0
  236. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/expressions_tools.py +0 -0
  237. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/multiscale_boundary_conditions_tools.py +0 -0
  238. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/numerical_tools.py +0 -0
  239. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/parallelization_tools.py +0 -0
  240. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/post_processing_tools.py +0 -0
  241. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/read_write_tools.py +0 -0
  242. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/tensor_tools.py +0 -0
  243. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/__init__.py +0 -0
  244. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/__init__.py +0 -0
  245. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/tests_template.py +0 -0
  246. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/txt_tests.py +0 -0
  247. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/coordinate_systems_tools.py +0 -0
  248. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/dictionary_tools.py +0 -0
  249. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/file_handling_tools.py +0 -0
  250. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/fonts/CMU_Serif_Roman.ttf +0 -0
  251. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/function_tools.py +0 -0
  252. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/interpolation_tools.py +0 -0
  253. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/math_experiments.py +0 -0
  254. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/numpy_tools.py +0 -0
  255. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/package_tools.py +0 -0
  256. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/path_tools.py +0 -0
  257. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/programming_tools.py +0 -0
  258. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/recursion_tools.py +0 -0
  259. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/string_tools.py +0 -0
  260. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/tensor_and_math_tools.py +0 -0
  261. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/testing_tools.py +0 -0
  262. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/user_interaction_tools.py +0 -0
  263. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/__init__.py +0 -0
  264. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/dependency_links.txt +0 -0
  265. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/requires.txt +0 -0
  266. {davout-0.1.1.dev134 → davout-0.1.1.dev136}/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.dev134
3
+ Version: 0.1.1.dev136
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.dev134"
66
+ version = "0.1.1.dev136"
67
67
  description = "Scientific computing utilities combining FEM, ANN and tooling"
68
68
  readme = "README.md"
69
69
  authors = [
@@ -0,0 +1,194 @@
1
+ # Routine to test a hyperelastic disc
2
+
3
+ from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file
4
+
5
+ from .....Davout.MultiMech.constitutive_models.hyperelasticity import isotropic_hyperelasticity as constitutive_models
6
+
7
+ from .....Davout.MultiMech.physics import hyperelastic_cauchy_continuum as variational_framework
8
+
9
+ from .....Davout.GraphUtilities.paraview_tools import frozen_snapshots
10
+
11
+ def solve_BVP(results_path, displacement_file_name, young_modulus_file,
12
+ mesh_file_name, displacement_gradient_components,
13
+ lagrange_multiplier_file_name, save_snapshot=False):
14
+
15
+ ####################################################################
16
+ ####################################################################
17
+ ## User defined parameters ##
18
+ ####################################################################
19
+ ####################################################################
20
+
21
+ ####################################################################
22
+ # Simulation results #
23
+ ####################################################################
24
+
25
+ post_processes = [["Displacement", {}], ["Lagrange multiplier disp"+
26
+ "lacement gradient average", {}]]
27
+
28
+ # The flag "readable xdmf file" makes the file able to be read into
29
+ # a function afterwards. The flag "visualization copy for readable
30
+ # xdmf" makes another copy of the readable xdmf but with the tradi-
31
+ # tional method of saving. The readable file can sometimes feature
32
+ # null values in ParaView
33
+
34
+ post_processes[0][1]["SaveField"] = {"directory path": results_path,
35
+ "file name": displacement_file_name, "saving method": "binary",
36
+ "visualization copy for readable xdmf": False}
37
+
38
+ post_processes[1][1]["SaveField"] = {"directory path": results_path,
39
+ "file name": lagrange_multiplier_file_name, "saving method": "bina"+
40
+ "ry", "txt copy": False}
41
+
42
+ ####################################################################
43
+ # Material properties #
44
+ ####################################################################
45
+
46
+ # Sets the Young modulus and the Poisson ratio
47
+
48
+ E = {"field file": young_modulus_file, "mesh file": mesh_file_name,
49
+ "field type": "scalar", "interpolation function": "CG", "polynomia"+
50
+ "l degree": 1}
51
+
52
+ poisson = 0.3
53
+
54
+ # Sets a dictionary of properties
55
+
56
+ material_properties = dict()
57
+
58
+ material_properties["E"] = E
59
+
60
+ material_properties["nu"] = poisson
61
+
62
+ # Sets the material as a neo-hookean material using the correspon-
63
+ # ding class
64
+
65
+ constitutive_model = constitutive_models.NeoHookean(
66
+ material_properties)
67
+
68
+ ####################################################################
69
+ # Function space #
70
+ ####################################################################
71
+
72
+ # Defines the shape functions degree
73
+
74
+ polynomial_degree = 2
75
+
76
+ ####################################################################
77
+ # Solver parameters #
78
+ ####################################################################
79
+
80
+ # Sets the solver parameters in a dictionary
81
+
82
+ solver_parameters = dict()
83
+
84
+ solver_parameters["newton_relative_tolerance"] = 1e-6
85
+
86
+ solver_parameters["newton_absolute_tolerance"] = 1e-6
87
+
88
+ solver_parameters["newton_maximum_iterations"] = 15
89
+
90
+ # Sets the initial time
91
+
92
+ t = 0.2
93
+
94
+ # Sets the final pseudotime of the simulation
95
+
96
+ t_final = 1.0
97
+
98
+ # Sets the maximum number of steps of loading
99
+
100
+ maximum_loadingSteps = 5
101
+
102
+ ####################################################################
103
+ # Boundary conditions #
104
+ ####################################################################
105
+
106
+ # Defines a dictionary of tractions
107
+
108
+ traction_dictionary = dict()
109
+
110
+ # Defines a dictionary of boundary conditions. Each key is a physi-
111
+ # cal group and each value is another dictionary or a list of dicti-
112
+ # onaries with the boundary conditions' information. Each of these
113
+ # dictionaries must have the key "BC case", which carries the name
114
+ # of the function that builds this boundary condition
115
+
116
+ bcs_dictionary = dict()
117
+
118
+ # Applies the boundary condition to any boundary surface (the top in
119
+ # this case), but the RemoveRigidBodyMotion is applied to the domain.
120
+ # Hence, the information of a boundary surface is just for consis-
121
+ # tency with the other BCs programming
122
+
123
+ bcs_dictionary["top"] = {"BC case": "RemoveRigidBodyMotion", "cons"+
124
+ "train_translation_only": False}
125
+
126
+ bcs_dictionary["bottom"] = {"BC case": "VolumetricAverageOfDisplac"+
127
+ "ementGradient", "average_gradient":
128
+ displacement_gradient_components}
129
+
130
+ ####################################################################
131
+ ####################################################################
132
+ ## Calculation and solution ##
133
+ ####################################################################
134
+ ####################################################################
135
+
136
+ # Solves the variational problem
137
+
138
+ variational_framework.hyperelasticity_displacementBased(
139
+ constitutive_model, traction_dictionary, maximum_loadingSteps,
140
+ t_final, post_processes, mesh_file_name, solver_parameters,
141
+ polynomial_degree=polynomial_degree, t=t,
142
+ dirichlet_boundaryConditions=bcs_dictionary, verbose=True,
143
+ post_processesSubmesh=[])
144
+
145
+ # Saves a snapshot of the solution using the automatization of Para-
146
+ # View
147
+
148
+ if save_snapshot:
149
+
150
+ frozen_snapshots(displacement_file_name+"_visualization_copy",
151
+ "Displacement", input_path=results_path,
152
+ camera_position=[3.295421262287293, -4.617612102822565, 3.7314785394692436],
153
+ camera_focal_point=[0.3868267767658733, -0.07264176288584451, 0.4047648861287915],
154
+ camera_up_direction=[-0.14883962531451048, 0.5202719201071424, 0.8409303746947565],
155
+ camera_parallel_scale=1.6406698504546489,
156
+ camera_rotation=[0.0, 0.0, 0.0],
157
+ legend_bar_position=[0.785724255357283, 0.10503211991434691],
158
+ legend_bar_length=0.7389935760171309,
159
+ size_in_pixels={'aspect ratio': 0.6768115942028986, 'pixels in width': 690},
160
+ axes_color=[0.0, 0.0, 0.0], get_attributes_render=False,
161
+ output_imageFileName="RVE_displacement_imposed_gradient.png", resolution_ratio=5,
162
+ warp_by_vector=True, representation_type="Surface With Edges",
163
+ set_camera_interactively=False, time=1.0)
164
+
165
+ # Testing block
166
+
167
+ if __name__=="__main__":
168
+
169
+ # Defines the path to the results directory
170
+
171
+ results_path = get_parent_path_of_file()
172
+
173
+ displacement_file_name = "displacement_with_imposed_displacement_gradient"
174
+
175
+ lagrange_multiplier_file_name = "lagrange_multiplier_displacement_gradient"
176
+
177
+ # Defines the mesh file name and the name of the file of the field
178
+ # of Young modulus
179
+
180
+ mesh_file_name = results_path+"//box_mesh_mecsol"
181
+
182
+ young_modulus_file = results_path+"//E_from_dict.xdmf"
183
+
184
+ # Defines the components of the volume average of the displacement
185
+ # gradient
186
+
187
+ displacement_gradient_components = [[2.5, 0.0, 0.0], [0.0, 2.5, 0.0],
188
+ [0.0, 0.0, 2.5]]
189
+
190
+ # Solves the boundary value problem
191
+
192
+ solve_BVP(results_path, displacement_file_name, young_modulus_file,
193
+ mesh_file_name, displacement_gradient_components,
194
+ lagrange_multiplier_file_name, save_snapshot=True)
@@ -0,0 +1,205 @@
1
+ # Routine to test a hyperelastic disc
2
+
3
+ from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file
4
+
5
+ from .....Davout.MultiMech.constitutive_models.hyperelasticity import isotropic_hyperelasticity as constitutive_models
6
+
7
+ from .....Davout.MultiMech.physics import hyperelastic_cauchy_continuum as variational_framework
8
+
9
+ from .....Davout.GraphUtilities.paraview_tools import frozen_snapshots
10
+
11
+ import numpy as np
12
+
13
+ def solve_BVP(results_path, displacement_file_name, young_modulus_file,
14
+ mesh_file_name, stress_tensor_components, save_snapshot=False):
15
+
16
+ ####################################################################
17
+ ####################################################################
18
+ ## User defined parameters ##
19
+ ####################################################################
20
+ ####################################################################
21
+
22
+ ####################################################################
23
+ # Simulation results #
24
+ ####################################################################
25
+
26
+ post_processes = dict()
27
+
28
+ # The flag "readable xdmf file" makes the file able to be read into
29
+ # a function afterwards. The flag "visualization copy for readable
30
+ # xdmf" makes another copy of the readable xdmf but with the tradi-
31
+ # tional method of saving. The readable file can sometimes feature
32
+ # null values in ParaView
33
+
34
+ post_processes["SaveField"] = {"directory path":results_path,
35
+ "file name": displacement_file_name, "saving method": "readable xdmf",
36
+ "visualization copy for readable xdmf": True}
37
+
38
+ post_processes["HomogenizeFieldsGradient"] = {"directory path":
39
+ results_path, "file name": "homogenized_displacement_gradient_impo"+
40
+ "sed_stress", "subdomain": "volume 1"}
41
+
42
+ ####################################################################
43
+ # Material properties #
44
+ ####################################################################
45
+
46
+ # Sets the Young modulus and the Poisson ratio
47
+
48
+ E = {"field file": young_modulus_file, "mesh file": mesh_file_name,
49
+ "field type": "scalar", "interpolation function": "CG", "polynomia"+
50
+ "l degree": 1}
51
+
52
+ poisson = 0.3
53
+
54
+ # Sets a dictionary of properties
55
+
56
+ material_properties = dict()
57
+
58
+ material_properties["E"] = E
59
+
60
+ material_properties["nu"] = poisson
61
+
62
+ # Sets the material as a neo-hookean material using the correspon-
63
+ # ding class
64
+
65
+ constitutive_model = constitutive_models.NeoHookean(
66
+ material_properties)
67
+
68
+ ####################################################################
69
+ # Function space #
70
+ ####################################################################
71
+
72
+ # Defines the shape functions degree
73
+
74
+ polynomial_degree = 2
75
+
76
+ ####################################################################
77
+ # Solver parameters #
78
+ ####################################################################
79
+
80
+ # Sets the solver parameters in a dictionary
81
+
82
+ solver_parameters = dict()
83
+
84
+ solver_parameters["newton_relative_tolerance"] = 1e-6
85
+
86
+ solver_parameters["newton_absolute_tolerance"] = 1e-6
87
+
88
+ solver_parameters["newton_maximum_iterations"] = 15
89
+
90
+ # Sets the initial time
91
+
92
+ t = 0.0
93
+
94
+ # Sets the final pseudotime of the simulation
95
+
96
+ t_final = 1.0
97
+
98
+ # Sets the maximum number of steps of loading
99
+
100
+ maximum_loadingSteps = 5
101
+
102
+ ####################################################################
103
+ # Boundary conditions #
104
+ ####################################################################
105
+
106
+ # Assemble the traction vector using this load expression
107
+
108
+ traction_boundary = {"load case": "ReferentialPrescribedStress",
109
+ "stress_tensor_components": stress_tensor_components, "parametric_"+
110
+ "load_curve": "linear", "t": t, "t_final": t_final}
111
+
112
+ # Defines a dictionary of tractions
113
+
114
+ traction_dictionary = dict()
115
+
116
+ traction_dictionary["bottom"] = traction_boundary
117
+
118
+ traction_dictionary["front"] = traction_boundary
119
+
120
+ traction_dictionary["right"] = traction_boundary
121
+
122
+ traction_dictionary["back"] = traction_boundary
123
+
124
+ traction_dictionary["left"] = traction_boundary
125
+
126
+ traction_dictionary["top"] = traction_boundary
127
+
128
+ # Defines a dictionary of boundary conditions. Each key is a physi-
129
+ # cal group and each value is another dictionary or a list of dicti-
130
+ # onaries with the boundary conditions' information. Each of these
131
+ # dictionaries must have the key "BC case", which carries the name
132
+ # of the function that builds this boundary condition
133
+
134
+ bcs_dictionary = dict()
135
+
136
+ # Applies the boundary condition to any boundary surface (the top in
137
+ # this case), but the RemoveRigidBodyMotion is applied to the domain.
138
+ # Hence, the information of a boundary surface is just for consis-
139
+ # tency with the other BCs programming
140
+
141
+ bcs_dictionary["top"] = {"BC case": "RemoveRigidBodyMotion", "cons"+
142
+ "train_translation_only": False}
143
+
144
+ ####################################################################
145
+ ####################################################################
146
+ ## Calculation and solution ##
147
+ ####################################################################
148
+ ####################################################################
149
+
150
+ # Solves the variational problem
151
+
152
+ variational_framework.hyperelasticity_displacementBased(
153
+ constitutive_model, traction_dictionary, maximum_loadingSteps,
154
+ t_final, post_processes, mesh_file_name, solver_parameters,
155
+ polynomial_degree=polynomial_degree, t=t,
156
+ dirichlet_boundaryConditions=bcs_dictionary, verbose=True)
157
+
158
+ # Saves a snapshot of the solution using the automatization of Para-
159
+ # View
160
+
161
+ if save_snapshot:
162
+
163
+ frozen_snapshots(displacement_file_name+"_visualization_copy",
164
+ "Displacement", input_path=results_path,
165
+ camera_position=[2.0330282921191993, 1.8148603901320899, 1.2731417495411312],
166
+ camera_focal_point=[0.012529434003528184, 0.36158465784309013, 0.12076486597591955],
167
+ camera_up_direction=[-0.3230357774017903, -0.27010620502800287, 0.9070228908488427],
168
+ camera_parallel_scale=0.7098627676493106,
169
+ camera_rotation=[0.0, 0.0, 0.0],
170
+ legend_bar_position=[0.7242157236408994, 0.11000000000000004],
171
+ legend_bar_length=0.7600000000000029,
172
+ size_in_pixels={'aspect ratio': 0.6791171477079796, 'pixels in width': 589},
173
+ axes_color=[0.0, 0.0, 0.0], get_attributes_render=False,
174
+ output_imageFileName="RVE_displacement_imposed_stress.png", resolution_ratio=5,
175
+ warp_by_vector=True, representation_type="Surface With Edges",
176
+ set_camera_interactively=False, time=1.0)
177
+
178
+ # Testing block
179
+
180
+ if __name__=="__main__":
181
+
182
+ # Defines the path to the results directory
183
+
184
+ results_path = get_parent_path_of_file()
185
+
186
+ displacement_file_name = "displacement_young_modulus_field"
187
+
188
+ # Defines the mesh file name and the name of the file of the field
189
+ # of Young modulus
190
+
191
+ mesh_file_name = results_path+"//box_mesh_mecsol"
192
+
193
+ young_modulus_file = results_path+"//E_from_dict.xdmf"
194
+
195
+ # Defines the components of the first Piola-Kirchhoff stress tensor
196
+ # prescribed to all facets
197
+
198
+ stress_tensor_components = [[2283538.0731331436,-9490.759281026269,-486.883852706879],
199
+ [-10079.298628478124,2283820.523737777,-9997.493987340664],
200
+ [-208.8868858364458,-10064.089398905406,2284106.145453561]]
201
+
202
+ # Solves the boundary value problem
203
+
204
+ solve_BVP(results_path, displacement_file_name, young_modulus_file,
205
+ mesh_file_name, stress_tensor_components, save_snapshot=True)