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.
- {davout-0.1.1.dev134/source/Davout.egg-info → davout-0.1.1.dev136}/PKG-INFO +1 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/pyproject.toml +1 -1
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_imposed_displacement_gradient.py +194 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_young_modulus_field.py +205 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/dataset_generator.py +365 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/input_data_filler.py +146 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/neural_network_trainer.py +173 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/young_modulus_field_generator.py +118 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/aa_tests/tests_tool_box/test_quotient_space_NNs.py +191 -0
- davout-0.1.1.dev136/source/Davout/DeepMech/custom_architectures/gated_quotient_space.py +284 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/loss_assembler_classes.py +21 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/training_tools.py +67 -6
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_batching.py +2 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_loss_function.py +2 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_physics.py +2 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/box_tools.py +2 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/interactivity_tools.py +2 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/young_modulus_field.py +1 -1
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/compressible_hyperelasticity.py +3 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/incompressible_hyperelasticity.py +3 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_cauchy_continuum.py +10 -12
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_incompressible_cauchy_continuum.py +10 -12
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/hyperelastic_micropolar_continuum.py +10 -13
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/steady_state_heat_transfer.py +9 -12
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/post_processes_classes.py +3 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/post_processes_functions.py +66 -27
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/binary_tools.py +92 -32
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/boundary_conditions_tools.py +132 -3
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/functional_tools.py +327 -28
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/homogenization_tools.py +23 -21
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/mesh_handling_tools.py +140 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/pseudotime_stepping_tools.py +26 -8
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/surface_loading_tools.py +92 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/variational_tools.py +4 -3
- davout-0.1.1.dev136/source/Davout/MultiMech/tool_box/weak_boundary_conditions_tools.py +163 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/stochastic_tools.py +45 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136/source/Davout.egg-info}/PKG-INFO +1 -1
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/SOURCES.txt +9 -1
- davout-0.1.1.dev134/source/Davout/GraphUtilities/aa_tests/volumetric_kinematics.py +0 -2
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/LICENSE +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/README.md +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/setup.cfg +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/setup.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_artery.py +0 -0
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/elastin_fiber_creator.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_artery_transfinite.py +0 -0
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/elastin_fiber_creator.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale_ellipsoid.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/beam_micropolar_case_1.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/artery_parameters.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/fiber_matrix_parameters.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/periodic_structure.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/intervertebral_disc.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/aa_tests/solids/whole_ensemble_of_geometries.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_cylinders.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_ellipsoids.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_generator.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_helicoids.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/solids/cuboid_prisms.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/geometric_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/mesh_data_retriever.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/meshing_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/region_finder.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/CuboidGmsh/tool_box/verification_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/Physics/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/Physics/elasticity_equation.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/PINNs/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/heat_equation.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_optimization.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_tools.py +0 -0
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_math_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_tensor_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/convexity_concerned_NNs.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/custom_architectures/generic_feed_forward.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/ANN_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/activation_function_utilities.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/custom_activation_functions.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/differentiation_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/loss_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/math_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/numerical_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/parameters_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/DeepMech/tool_box/tensor_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/REPL_experiments.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/optimization/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/optimization/tests_optimization_methods.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/tests_finite_elements.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/bar_fea.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/hyperelastic_1D_energies.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/aa_tests/unidimensional/variational_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/body_forces_work.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/dirichlet_boundary_conditions_enforcer.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/hyperelastic_internal_work.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/assembly/surface_forces_work.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/constitutive_models/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/constitutive_models/hyperelastic_isotropic_models.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/elements_manager.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/finite_element_dispatcher.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/surface_elements/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/surface_elements/triangles.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/volume_elements/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/finite_elements/volume_elements/tetrahedrons.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/conditioning_matrices.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/loss_functions.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/neural_network_assembler.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/optimization/objective_function.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/physics/compressible_cauchy_hyperelasticy.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/constitutive_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/dirichlet_loading_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/math_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/mesh_info_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/mesh_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/neumann_loading_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/node_ordering.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/optimization_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/parametric_curves_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/sensitivity_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/FENN/tool_box/tensorflow_utilities.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/cauchy_tetrahedron.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/continuum_mechanics_potato_collage.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/null_space_architecture.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_collage_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_delaunay.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_paraview_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/aa_tests/tests_plotting_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/collage_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/paraview_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/plotting_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/arrows_lines_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/box_and_markers_classes.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/collage_classes.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/curves_setter.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/image_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/paraview_scripts.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/perspective_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/GraphUtilities/tool_box/text_excerpt_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/LaTeXUtilities/LaTeXUtilities.sty +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/LaTeXUtilities/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/heat_transfer/heat_box.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/beam_with_fibers.py +0 -0
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_HGO.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean.py +0 -0
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/hyperelastic_box.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/incompressible_hyperelastic_box.py +0 -0
- {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
- {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
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_hyperelastic_box.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_incompressible_box.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/stress_plots.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes/beam_gmsh.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes_paths.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/aa_tests_and_examples/various_physics_tests.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/heat_transfer/isotropic_heat_conduction.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/anisotropic_hyperelasticity.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/isotropic_hyperelasticity.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/constitutive_models/hyperelasticity/micropolar_hyperelasticity.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_classes.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_expressions.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_hyperelasticity.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/multiscale/multiscale_micropolar.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/physics/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/post_processes/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/body_forces_loading_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/constitutive_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/dirichlet_load_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/expressions_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/multiscale_boundary_conditions_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/numerical_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/parallelization_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/post_processing_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/read_write_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/MultiMech/tool_box/tensor_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/tests_template.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/aa_tests/txt_tests.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/coordinate_systems_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/dictionary_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/file_handling_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/fonts/CMU_Serif_Roman.ttf +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/function_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/interpolation_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/math_experiments.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/numpy_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/package_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/path_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/programming_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/recursion_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/string_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/tensor_and_math_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/testing_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/PythonicUtilities/user_interaction_tools.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout/__init__.py +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/dependency_links.txt +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/requires.txt +0 -0
- {davout-0.1.1.dev134 → davout-0.1.1.dev136}/source/Davout.egg-info/top_level.txt +0 -0
|
@@ -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)
|