Davout 0.1.1.dev179__tar.gz → 0.1.1.dev181__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.dev179/source/Davout.egg-info → davout-0.1.1.dev181}/PKG-INFO +7 -4
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/README.md +6 -3
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/pyproject.toml +1 -1
- {davout-0.1.1.dev179/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space → davout-0.1.1.dev181/source/Davout/DeepMech/aa_tests/SVD_framework}/dataset_generator.py +10 -5
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/SVD_framework/kinematics_surrogate_model.py +140 -35
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/neural_network_trainer.py +55 -18
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_SVD_based_NNs.py +22 -16
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/custom_architectures/SVD_quotient_space.py +234 -12
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/ANN_tools.py +7 -4
- davout-0.1.1.dev181/source/Davout/DeepMech/tool_box/FEM_surrogate_testing_tools.py +1224 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/activation_function_utilities.py +52 -35
- davout-0.1.1.dev181/source/Davout/DeepMech/tool_box/custom_activation_functions.py +207 -0
- davout-0.1.1.dev181/source/Davout/DeepMech/tool_box/numerical_tools.py +717 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/training_tools.py +4 -4
- davout-0.1.1.dev181/source/Davout/GraphUtilities/aa_tests/positive_orthant_modulating_function.py +645 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/tests_collage_tools.py +12 -9
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/tests_plotting_tools.py +111 -24
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/plotting_tools.py +657 -184
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/collage_classes.py +28 -2
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/paraview_scripts.py +10 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/text_excerpt_tools.py +114 -12
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/binary_tools.py +119 -100
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/mesh_handling_tools.py +197 -3
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/dictionary_tools.py +37 -26
- davout-0.1.1.dev181/source/Davout/PythonicUtilities/error_and_type_tools.py +130 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/function_tools.py +53 -2
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/path_tools.py +126 -15
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/tensor_and_math_tools.py +3 -3
- {davout-0.1.1.dev179 → davout-0.1.1.dev181/source/Davout.egg-info}/PKG-INFO +7 -4
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout.egg-info/SOURCES.txt +3 -0
- davout-0.1.1.dev179/source/Davout/DeepMech/tool_box/custom_activation_functions.py +0 -106
- davout-0.1.1.dev179/source/Davout/DeepMech/tool_box/numerical_tools.py +0 -337
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/LICENSE +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/setup.cfg +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/setup.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_artery.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/RVE_matrix_with_fiber.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/non_transfinite/elastin_fiber_creator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_artery_transfinite.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/RVE_matrix_with_fiber_transfinite.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/elastin_fiber_creator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/RVEs/transfinite/spherical_RVE.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/artery/artery_macroscale_ellipsoid.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/micropolar_meshes/beam_micropolar_case_1.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/artery_parameters.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/fiber_matrix_parameters.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/periodic_meshes/periodic_structure.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/solids/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/solids/intervertebral_disc.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/aa_tests/solids/whole_ensemble_of_geometries.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/cuboid_cylinders.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/cuboid_ellipsoids.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/cuboid_generator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/cuboid_helicoids.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/solids/cuboid_prisms.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/geometric_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/mesh_data_retriever.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/meshing_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/region_finder.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/CuboidGmsh/tool_box/verification_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/PINNs/Physics/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/PINNs/Physics/elasticity_equation.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/PINNs/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/SVD_framework/box_with_imposed_displacement_gradient.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/SVD_framework/box_with_young_modulus_field.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/SVD_framework/input_data_filler.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/SVD_framework/young_modulus_field_generator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/heat_equation.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_imposed_displacement_gradient.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/box_with_young_modulus_field.py +0 -0
- {davout-0.1.1.dev179/source/Davout/DeepMech/aa_tests/SVD_framework → davout-0.1.1.dev181/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space}/dataset_generator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/input_data_filler.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/mecsol_2026_quotient_space/young_modulus_field_generator.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_optimization.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_ANN_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_SVD_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_convex_and_partially_convex_input_NNs.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_math_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_quotient_space_NNs.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/aa_tests/tests_tool_box/test_tensor_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/custom_architectures/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/custom_architectures/convexity_concerned_NNs.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/custom_architectures/gated_quotient_space.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/custom_architectures/generic_feed_forward.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/SVD_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/differentiation_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/loss_assembler_classes.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/loss_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/math_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/parameters_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/DeepMech/tool_box/tensor_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/REPL_experiments.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/optimization/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/optimization/tests_optimization_methods.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/tests_batching.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/tests_finite_elements.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/tests_loss_function.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/tests_physics.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/unidimensional/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/unidimensional/bar_fea.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/unidimensional/hyperelastic_1D_energies.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/aa_tests/unidimensional/variational_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/assembly/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/assembly/body_forces_work.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/assembly/dirichlet_boundary_conditions_enforcer.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/assembly/hyperelastic_internal_work.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/assembly/surface_forces_work.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/constitutive_models/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/constitutive_models/hyperelastic_isotropic_models.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/elements_manager.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/finite_element_dispatcher.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/surface_elements/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/surface_elements/triangles.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/volume_elements/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/finite_elements/volume_elements/tetrahedrons.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/optimization/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/optimization/conditioning_matrices.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/optimization/loss_functions.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/optimization/neural_network_assembler.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/optimization/objective_function.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/physics/compressible_cauchy_hyperelasticy.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/constitutive_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/dirichlet_loading_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/math_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/mesh_info_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/mesh_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/neumann_loading_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/node_ordering.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/optimization_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/parametric_curves_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/sensitivity_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/FENN/tool_box/tensorflow_utilities.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/cauchy_tetrahedron.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/continuum_mechanics_potato_collage.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/fake_book_spines.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/null_space_architecture.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/strain_tensors.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/tests_delaunay.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/aa_tests/tests_paraview_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/collage_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/paraview_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/arrows_lines_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/box_and_markers_classes.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/box_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/curves_setter.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/image_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/interactivity_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/GraphUtilities/tool_box/perspective_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/LaTeXUtilities.sty +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/aa_tests/latex_parser_tests.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/latex_parser.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/tool_box/command_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/tool_box/parsing_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/LaTeXUtilities/tool_box/sty_file_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/heat_transfer/heat_box.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/beam_with_fibers.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/box_with_young_modulus_field.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_HGO.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/disc_neo_hookean_incompressible.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/hyperelastic_box.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/incompressible_hyperelastic_box.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/cylindrical_coordinates_material_property.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/disc_HGO.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/intervertebral_disc/local_coordinate_system_generation.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_hyperelastic_box.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/parallel_incompressible_box.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/read_dofs_in_volume.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/hyperelasticity/young_modulus_field.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_macroscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/bending_case/beam_with_fibers_microscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/deformation_laboratory/microscale_deformation_lab.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/disc_micropolar_neo_hookean.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Bauer_et_al/beam_neo_hookean.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/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.dev179 → davout-0.1.1.dev181}/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.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/Suh_et_al/suh_implementation.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/micropolar_with_homogenization_original.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_homogenization.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/old_tests/tools_io.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/stress_plots.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/numerical_differentiation_second_elasticity_tensor.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/tangent_operators/tangent_operator_plotter.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_macroscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/torsion_case/beam_with_fibers_microscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_macroscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/micropolar/traction_case/beam_with_fibers_microscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/curve_fitting.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_field.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/cylindrical_coordinates_material_property.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/elasticity_tensor.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/incompressible.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/linear_expression_test.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/petsc_2D.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_periodic_class.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/test_shifted_field.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/teste_afim.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/minimal_working_examples_forum/working_example_dictionaries.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/multiscale/hyperelasticity/beam_with_fibers_microscale.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/compressible_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/physics_prototypes/incompressible_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes/beam_gmsh.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/test_meshes_paths.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/aa_tests_and_examples/various_physics_tests.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/heat_transfer/isotropic_heat_conduction.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/hyperelasticity/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/hyperelasticity/anisotropic_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/hyperelasticity/isotropic_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/constitutive_models/hyperelasticity/micropolar_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_classes.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/multiscale_boundary_conditions/multiscale_expressions.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/multiscale_hyperelasticity.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/multiscale/multiscale_micropolar.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/physics/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/physics/hyperelastic_cauchy_continuum.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/physics/hyperelastic_incompressible_cauchy_continuum.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/physics/hyperelastic_micropolar_continuum.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/physics/steady_state_heat_transfer.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/post_processes/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/post_processes/post_processes_classes.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/post_processes/post_processes_functions.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/body_forces_loading_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/boundary_conditions_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/constitutive_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/dirichlet_load_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/expressions_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/functional_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/homogenization_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/multiscale_boundary_conditions_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/numerical_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/parallelization_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/post_processing_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/pseudotime_stepping_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/read_write_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/surface_loading_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/tensor_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/variational_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/MultiMech/tool_box/weak_boundary_conditions_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/aa_tests/tests_template.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/aa_tests/txt_tests.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/coordinate_systems_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/file_handling_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/fonts/CMU_Serif_Roman.ttf +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/interpolation_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/math_experiments.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/numpy_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/package_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/programming_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/recursion_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/string_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/testing_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/PythonicUtilities/user_interaction_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/aa_tests/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/aa_tests/test_delaunay_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/domain_decomposition/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/tool_box/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/tool_box/delaunay_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/tool_box/sampling_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/StochasticUtilities/tool_box/statistics_tools.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout/__init__.py +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout.egg-info/dependency_links.txt +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/source/Davout.egg-info/requires.txt +0 -0
- {davout-0.1.1.dev179 → davout-0.1.1.dev181}/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.
|
|
3
|
+
Version: 0.1.1.dev181
|
|
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>
|
|
@@ -29,7 +29,9 @@ to the repository and source files: https://github.com/Matheus-Janczkowski/Davou
|
|
|
29
29
|
|
|
30
30
|
4. Link to the book on continuum mechanics: https://github.com/Matheus-Janczkowski/CompMechSelfStudy/tree/main/introduction_to_continuum_mechanics
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
5. Link for the presentation template: https://www.overleaf.com/read/sbgxdphxswmm#6d7d64
|
|
33
|
+
|
|
34
|
+
6. Link for the report/paper template: https://www.overleaf.com/read/vhpsmzhwdsfg#c5dee9
|
|
33
35
|
|
|
34
36
|
# Citation
|
|
35
37
|
https://doi.org/10.5281/zenodo.18806245
|
|
@@ -65,8 +67,9 @@ such as FEniCS, TensorFlow, GMSH, ParaView, and matplotlib.
|
|
|
65
67
|
# Installation using pip
|
|
66
68
|
pip install Davout
|
|
67
69
|
|
|
68
|
-
Or for a special dev version (123 for example). Check the pyproject.toml
|
|
69
|
-
|
|
70
|
+
Or for a special dev version (123 for example). Check the pyproject.toml
|
|
71
|
+
file (see https://github.com/Matheus-Janczkowski/Davout/blob/main/pyproject.toml
|
|
72
|
+
at line 66) to consult the latest version at the line 'version = "0.1.1.dev123"':
|
|
70
73
|
|
|
71
74
|
pip install Davout==0.1.1.dev123
|
|
72
75
|
|
|
@@ -10,7 +10,9 @@ to the repository and source files: https://github.com/Matheus-Janczkowski/Davou
|
|
|
10
10
|
|
|
11
11
|
4. Link to the book on continuum mechanics: https://github.com/Matheus-Janczkowski/CompMechSelfStudy/tree/main/introduction_to_continuum_mechanics
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
5. Link for the presentation template: https://www.overleaf.com/read/sbgxdphxswmm#6d7d64
|
|
14
|
+
|
|
15
|
+
6. Link for the report/paper template: https://www.overleaf.com/read/vhpsmzhwdsfg#c5dee9
|
|
14
16
|
|
|
15
17
|
# Citation
|
|
16
18
|
https://doi.org/10.5281/zenodo.18806245
|
|
@@ -46,8 +48,9 @@ such as FEniCS, TensorFlow, GMSH, ParaView, and matplotlib.
|
|
|
46
48
|
# Installation using pip
|
|
47
49
|
pip install Davout
|
|
48
50
|
|
|
49
|
-
Or for a special dev version (123 for example). Check the pyproject.toml
|
|
50
|
-
|
|
51
|
+
Or for a special dev version (123 for example). Check the pyproject.toml
|
|
52
|
+
file (see https://github.com/Matheus-Janczkowski/Davout/blob/main/pyproject.toml
|
|
53
|
+
at line 66) to consult the latest version at the line 'version = "0.1.1.dev123"':
|
|
51
54
|
|
|
52
55
|
pip install Davout==0.1.1.dev123
|
|
53
56
|
|
|
@@ -162,10 +162,11 @@ save_snapshot_displacement=False):
|
|
|
162
162
|
strain_energy_file_name+"_"+simulation_number+".npy")[:,1:
|
|
163
163
|
].tolist())
|
|
164
164
|
|
|
165
|
-
# Adds the
|
|
165
|
+
# Adds the displacement gradient and, then, the Young modulus
|
|
166
|
+
# data. The variables related to the quotient space must come
|
|
167
|
+
# first
|
|
166
168
|
|
|
167
|
-
successful_sample_data = [
|
|
168
|
-
"eak E"]], sample_data[variables_indices["base E"]]]
|
|
169
|
+
successful_sample_data = []
|
|
169
170
|
|
|
170
171
|
successful_sample_data.extend(displacement_gradient[0])
|
|
171
172
|
|
|
@@ -173,6 +174,9 @@ save_snapshot_displacement=False):
|
|
|
173
174
|
|
|
174
175
|
successful_sample_data.extend(displacement_gradient[2])
|
|
175
176
|
|
|
177
|
+
successful_sample_data.extend([sample_data[variables_indices[
|
|
178
|
+
"peak E"]], sample_data[variables_indices["base E"]]])
|
|
179
|
+
|
|
176
180
|
succesful_data.append(successful_sample_data)
|
|
177
181
|
|
|
178
182
|
# Updates the list of completed simulations
|
|
@@ -339,7 +343,7 @@ if __name__=="__main__":
|
|
|
339
343
|
|
|
340
344
|
cube_size = 0.5
|
|
341
345
|
|
|
342
|
-
n_divisions = 10
|
|
346
|
+
n_divisions = 6#10
|
|
343
347
|
|
|
344
348
|
E_extremum = 10E6
|
|
345
349
|
|
|
@@ -355,7 +359,8 @@ if __name__=="__main__":
|
|
|
355
359
|
|
|
356
360
|
# Sets the paths and files names
|
|
357
361
|
|
|
358
|
-
results_path = get_parent_path_of_file()+"//
|
|
362
|
+
results_path = (get_parent_path_of_file()+"//results_n_divisions_"+
|
|
363
|
+
str(n_divisions))
|
|
359
364
|
|
|
360
365
|
displacement_file_name = "displacement_young_modulus_field"
|
|
361
366
|
|
|
@@ -9,6 +9,8 @@ from time import time
|
|
|
9
9
|
|
|
10
10
|
from .....Davout.DeepMech.tool_box import ANN_tools, training_tools
|
|
11
11
|
|
|
12
|
+
from .....Davout.DeepMech.tool_box.numerical_tools import DataMatrixRegularization
|
|
13
|
+
|
|
12
14
|
from .....Davout.DeepMech.tool_box.loss_assembler_classes import MaximumAbsoluteError
|
|
13
15
|
|
|
14
16
|
from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file
|
|
@@ -22,12 +24,23 @@ class RVEKinematicsSurrogateModel:
|
|
|
22
24
|
activations_list_auxiliar_network, quotient_space_dimension,
|
|
23
25
|
modulating_function, displacement_data_file, input_data_file,
|
|
24
26
|
results_path, loss_metric, n_training_samples, saved_model_file,
|
|
25
|
-
n_monte_carlo_realizations, n_best_models,
|
|
27
|
+
n_monte_carlo_realizations, n_best_models, n_best_samples,
|
|
26
28
|
maximum_training_iterations, verbose_delta_iterations,
|
|
27
|
-
|
|
29
|
+
mesh_file_name, optimizer, subdofs_to_learn, parameters_dtype="flo"+
|
|
30
|
+
"at32", householder_epsilon=1.0, verbose=True, integer_dtype="int3"+
|
|
31
|
+
"2", get_all_inputs_to_zeroth_order_of_magnitude=False,
|
|
32
|
+
non_orthogonal_matrices=False, device_type="CPU",
|
|
33
|
+
input_data_regularization_method=None):
|
|
28
34
|
|
|
29
35
|
# Saves the needed information
|
|
30
36
|
|
|
37
|
+
self.non_orthogonal_matrices = non_orthogonal_matrices
|
|
38
|
+
|
|
39
|
+
self.device_type = device_type
|
|
40
|
+
|
|
41
|
+
self.get_all_inputs_to_zeroth_order_of_magnitude = (
|
|
42
|
+
get_all_inputs_to_zeroth_order_of_magnitude)
|
|
43
|
+
|
|
31
44
|
self.activations_list_main_network = activations_list_main_network
|
|
32
45
|
|
|
33
46
|
self.activations_list_auxiliar_network = (
|
|
@@ -45,6 +58,8 @@ class RVEKinematicsSurrogateModel:
|
|
|
45
58
|
|
|
46
59
|
self.loss_metric = loss_metric
|
|
47
60
|
|
|
61
|
+
self.optimizer = optimizer
|
|
62
|
+
|
|
48
63
|
self.n_training_samples = n_training_samples
|
|
49
64
|
|
|
50
65
|
self.saved_model_file = saved_model_file
|
|
@@ -53,7 +68,9 @@ class RVEKinematicsSurrogateModel:
|
|
|
53
68
|
|
|
54
69
|
self.n_best_models = n_best_models
|
|
55
70
|
|
|
56
|
-
self.
|
|
71
|
+
self.n_best_samples = n_best_samples
|
|
72
|
+
|
|
73
|
+
self.mesh_file_name = mesh_file_name
|
|
57
74
|
|
|
58
75
|
self.householder_epsilon = householder_epsilon
|
|
59
76
|
|
|
@@ -63,19 +80,38 @@ class RVEKinematicsSurrogateModel:
|
|
|
63
80
|
|
|
64
81
|
self.verbose_delta_iterations = verbose_delta_iterations
|
|
65
82
|
|
|
66
|
-
|
|
83
|
+
# Saves the tensorflow dtypes
|
|
67
84
|
|
|
68
|
-
|
|
85
|
+
self.parameters_dtype = parameters_dtype
|
|
69
86
|
|
|
70
|
-
|
|
87
|
+
self.integer_dtype = integer_dtype
|
|
71
88
|
|
|
72
|
-
|
|
89
|
+
# Converts the tensor of DOFs to a tensorflow integer tensor
|
|
90
|
+
|
|
91
|
+
self.subdofs_to_learn = tf.convert_to_tensor(subdofs_to_learn,
|
|
92
|
+
dtype=tf.as_dtype(self.parameters_dtype))
|
|
93
|
+
|
|
94
|
+
# Gets the number of output neurons from the tensor of the indi-
|
|
95
|
+
# ces of the DOFs that will actually be learnt
|
|
96
|
+
|
|
97
|
+
self.n_output_neurons = self.subdofs_to_learn.shape[0]
|
|
98
|
+
|
|
99
|
+
# Reads the output data
|
|
100
|
+
|
|
101
|
+
self.output_data = np.load(self.results_path+"//"+
|
|
73
102
|
self.displacement_data_file)
|
|
74
103
|
|
|
104
|
+
# Gets the numbers of samples and of total of DOFs
|
|
105
|
+
|
|
106
|
+
self.number_of_samples, self.total_number_of_dofs = (
|
|
107
|
+
self.output_data.shape)
|
|
108
|
+
|
|
109
|
+
# Gets the input data
|
|
110
|
+
|
|
75
111
|
input_data = np.load(self.results_path+"//"+self.input_data_file)
|
|
76
112
|
|
|
77
113
|
# Checks whether there is sufficient samples in the dataset
|
|
78
|
-
|
|
114
|
+
|
|
79
115
|
if self.n_training_samples>=input_data.shape[0]:
|
|
80
116
|
|
|
81
117
|
raise IndexError(str(self.n_training_samples)+" samples we"+
|
|
@@ -83,7 +119,7 @@ class RVEKinematicsSurrogateModel:
|
|
|
83
119
|
input_data.shape[0])+" samples in the input data matrix at"+
|
|
84
120
|
":\n"+str(self.results_path+"//"+self.input_data_file))
|
|
85
121
|
|
|
86
|
-
if self.n_training_samples>=output_data.shape[0]:
|
|
122
|
+
if self.n_training_samples>=self.output_data.shape[0]:
|
|
87
123
|
|
|
88
124
|
raise IndexError(str(self.n_training_samples)+" samples we"+
|
|
89
125
|
"re asked for training, but there are only "+str(
|
|
@@ -91,26 +127,40 @@ class RVEKinematicsSurrogateModel:
|
|
|
91
127
|
"t:\n"+str(self.results_path+"//"+
|
|
92
128
|
self.displacement_data_file))
|
|
93
129
|
|
|
94
|
-
if output_data.shape[0]!=input_data.shape[0]:
|
|
130
|
+
if self.output_data.shape[0]!=input_data.shape[0]:
|
|
95
131
|
|
|
96
132
|
raise IndexError("The output data matrix has "+str(
|
|
97
|
-
output_data.shape[0])+" samples, whereas the input
|
|
98
|
-
"
|
|
99
|
-
"
|
|
133
|
+
self.output_data.shape[0])+" samples, whereas the input da"+
|
|
134
|
+
"ta matrix has "+str(input_data.shape[0])+" samples.\n\nTh"+
|
|
135
|
+
"e output data matrix is at:\n"+str(self.results_path+"//"+
|
|
100
136
|
self.displacement_data_file)+"\n\nthe input data matrix is"+
|
|
101
137
|
"at:\n"+str(self.results_path+"//"+self.input_data_file))
|
|
102
138
|
|
|
103
|
-
#
|
|
139
|
+
# Checks if a regularization technique was requested for the in-
|
|
140
|
+
# put data matrix
|
|
141
|
+
|
|
142
|
+
if input_data_regularization_method is not None:
|
|
143
|
+
|
|
144
|
+
# Instantiates the data regularization class
|
|
145
|
+
|
|
146
|
+
data_regularization_class = DataMatrixRegularization(
|
|
147
|
+
regularization_function=input_data_regularization_method)
|
|
104
148
|
|
|
105
|
-
|
|
149
|
+
# Regularizes the data matrix and saves the regularization
|
|
150
|
+
# data using this input data
|
|
106
151
|
|
|
107
|
-
|
|
152
|
+
self.input_data, _ = data_regularization_class(input_data,
|
|
153
|
+
True)
|
|
108
154
|
|
|
109
|
-
#
|
|
155
|
+
# Otherwise, simply saves the input data into the class
|
|
156
|
+
|
|
157
|
+
else:
|
|
158
|
+
|
|
159
|
+
self.input_data = input_data
|
|
110
160
|
|
|
111
|
-
|
|
161
|
+
# Gets the number of input neurons
|
|
112
162
|
|
|
113
|
-
|
|
163
|
+
self.n_input_neurons = self.input_data.shape[1]
|
|
114
164
|
|
|
115
165
|
# Verifies if the output layer of the main network has the same
|
|
116
166
|
# number of output neurons
|
|
@@ -121,32 +171,47 @@ class RVEKinematicsSurrogateModel:
|
|
|
121
171
|
|
|
122
172
|
n_output_neurons_main_network += value
|
|
123
173
|
|
|
124
|
-
if n_output_neurons_main_network!=n_output_neurons:
|
|
174
|
+
if n_output_neurons_main_network!=self.n_output_neurons:
|
|
125
175
|
|
|
126
176
|
raise ValueError("The main network has "+str(
|
|
127
177
|
n_output_neurons_main_network)+" neurons in the output lay"+
|
|
128
178
|
"er; whereas the data indicate that there must be "+str(
|
|
129
|
-
n_output_neurons)+" neurons in the output layer")
|
|
179
|
+
self.n_output_neurons)+" neurons in the output layer")
|
|
130
180
|
|
|
131
181
|
# Sets the architecture dictionary
|
|
132
182
|
|
|
133
|
-
custom_architecture = {"name": "SVDQuotientSpace", "
|
|
134
|
-
"
|
|
135
|
-
"
|
|
136
|
-
"
|
|
183
|
+
self.custom_architecture = {"name": "SVDQuotientSpace", "weigh"+
|
|
184
|
+
"ts modulating function": self.modulating_function, "Household"+
|
|
185
|
+
"er epsilon": self.householder_epsilon, "activations accessory"+
|
|
186
|
+
" layer list": self.activations_list_auxiliar_network, "non-or"+
|
|
187
|
+
"thogonal matrices": self.non_orthogonal_matrices, "hardware d"+
|
|
188
|
+
"evice": self.device_type, "convex with respect to quotient sp"+
|
|
189
|
+
"ace": False}
|
|
190
|
+
|
|
191
|
+
# Defines a function to train the neural network model
|
|
192
|
+
|
|
193
|
+
def train_surrogate_model(self):
|
|
194
|
+
|
|
195
|
+
# Sets the training data
|
|
196
|
+
|
|
197
|
+
training_data = self.input_data[0:self.n_training_samples,:]
|
|
198
|
+
|
|
199
|
+
training_true_values = self.output_data[0:self.n_training_samples
|
|
200
|
+
,:]
|
|
137
201
|
|
|
138
202
|
# Creates the class of neural network information
|
|
139
203
|
|
|
140
|
-
ANN_class = ANN_tools.MultiLayerModel(n_input_neurons,
|
|
204
|
+
ANN_class = ANN_tools.MultiLayerModel(self.n_input_neurons,
|
|
141
205
|
self.activations_list_main_network, enforce_customLayers=True,
|
|
142
206
|
verbose=self.verbose, parameters_dtype=self.parameters_dtype,
|
|
143
|
-
custom_architecture=custom_architecture,
|
|
144
|
-
self.quotient_space_dimension)
|
|
207
|
+
custom_architecture=self.custom_architecture,
|
|
208
|
+
input_size_main_network=self.quotient_space_dimension)
|
|
145
209
|
|
|
146
210
|
self.custom_model = ANN_class()
|
|
147
211
|
|
|
148
212
|
# Defines the loss metric
|
|
149
213
|
|
|
214
|
+
"""
|
|
150
215
|
self.live_loss_metric = None
|
|
151
216
|
|
|
152
217
|
if isinstance(self.loss_metric, str):
|
|
@@ -159,7 +224,9 @@ class RVEKinematicsSurrogateModel:
|
|
|
159
224
|
"metric by the name '"+str(self.loss_metric)+"'")
|
|
160
225
|
|
|
161
226
|
self.live_loss_metric = getattr(tf.keras.losses,
|
|
162
|
-
self.loss_metric)(dtype=tf.as_dtype(self.parameters_dtype))
|
|
227
|
+
self.loss_metric)(dtype=tf.as_dtype(self.parameters_dtype))"""
|
|
228
|
+
|
|
229
|
+
self.live_loss_metric = self.loss_metric
|
|
163
230
|
|
|
164
231
|
# Sets the optimization class for training
|
|
165
232
|
|
|
@@ -169,7 +236,7 @@ class RVEKinematicsSurrogateModel:
|
|
|
169
236
|
self.maximum_training_iterations, verbose_deltaIterations=
|
|
170
237
|
self.verbose_delta_iterations, save_model_file=
|
|
171
238
|
self.saved_model_file, match_data_float_type_to_trainables=True,
|
|
172
|
-
parent_path=self.results_path)
|
|
239
|
+
parent_path=self.results_path, optimizer=self.optimizer)
|
|
173
240
|
|
|
174
241
|
t_initial = time()
|
|
175
242
|
|
|
@@ -183,7 +250,8 @@ class RVEKinematicsSurrogateModel:
|
|
|
183
250
|
|
|
184
251
|
training_class.monte_carlo_training(n_realizations=
|
|
185
252
|
self.n_monte_carlo_realizations, best_models_rank_size=
|
|
186
|
-
self.n_best_models, show_reinitialization_distance=True
|
|
253
|
+
self.n_best_models, show_reinitialization_distance=True,
|
|
254
|
+
model_base_name=self.saved_model_file)
|
|
187
255
|
|
|
188
256
|
# Checks the loss again with the best model of the Monte Carlo
|
|
189
257
|
# training
|
|
@@ -275,6 +343,10 @@ class RVEKinematicsSurrogateModel:
|
|
|
275
343
|
|
|
276
344
|
if __name__=="__main__":
|
|
277
345
|
|
|
346
|
+
# Defines the array with the DOFs to be learnt
|
|
347
|
+
|
|
348
|
+
subdofs_to_learn = np.arange(0, 20577, 3)
|
|
349
|
+
|
|
278
350
|
# Defines the number of input neurons of the main network. Remember
|
|
279
351
|
# that the data matrix is a tensor [n_samples, n_input_variables].
|
|
280
352
|
# The first quotient_space_dimension columns must be dedicated to
|
|
@@ -307,6 +379,8 @@ if __name__=="__main__":
|
|
|
307
379
|
|
|
308
380
|
# Sets the training information
|
|
309
381
|
|
|
382
|
+
optimizer = "Adam"
|
|
383
|
+
|
|
310
384
|
n_training_samples = 10000
|
|
311
385
|
|
|
312
386
|
maximum_training_iterations = 1000
|
|
@@ -317,6 +391,8 @@ if __name__=="__main__":
|
|
|
317
391
|
|
|
318
392
|
n_best_models = 5
|
|
319
393
|
|
|
394
|
+
n_best_samples = 10
|
|
395
|
+
|
|
320
396
|
loss_metric = "MeanSquaredError"
|
|
321
397
|
|
|
322
398
|
parameters_dtype = "float32"
|
|
@@ -331,6 +407,26 @@ if __name__=="__main__":
|
|
|
331
407
|
|
|
332
408
|
input_data_file = "00_successful_complete_and_filtered_data_matrix.npy"
|
|
333
409
|
|
|
410
|
+
mesh_file_name = get_parent_path_of_file()+"//box_mesh_mecsol"
|
|
411
|
+
|
|
412
|
+
# Sets the method to regularize the input data matrix
|
|
413
|
+
|
|
414
|
+
input_data_regularization_method = None
|
|
415
|
+
|
|
416
|
+
# Sets if the input data must be put into the same order of magnitu-
|
|
417
|
+
# de
|
|
418
|
+
|
|
419
|
+
get_all_inputs_to_zeroth_order_of_magnitude = False
|
|
420
|
+
|
|
421
|
+
# Sets the device type where the training will be performed
|
|
422
|
+
|
|
423
|
+
device_type = "GPU"
|
|
424
|
+
|
|
425
|
+
# Sets whether the constraint on orthogonality of the SVD matrices
|
|
426
|
+
# will not be enforced
|
|
427
|
+
|
|
428
|
+
non_orthogonal_matrices = False
|
|
429
|
+
|
|
334
430
|
# Instantiates the class that owns all information about training
|
|
335
431
|
# and testing models
|
|
336
432
|
|
|
@@ -339,14 +435,23 @@ if __name__=="__main__":
|
|
|
339
435
|
quotient_space_dimension, modulating_function,
|
|
340
436
|
displacement_data_file, input_data_file, results_path, loss_metric,
|
|
341
437
|
n_training_samples, saved_model_file, n_monte_carlo_realizations,
|
|
342
|
-
n_best_models, maximum_training_iterations,
|
|
343
|
-
|
|
344
|
-
|
|
438
|
+
n_best_models, n_best_samples, maximum_training_iterations,
|
|
439
|
+
verbose_delta_iterations, mesh_file_name, optimizer,
|
|
440
|
+
subdofs_to_learn, parameters_dtype=parameters_dtype,
|
|
441
|
+
householder_epsilon=1.0, verbose=True,
|
|
442
|
+
get_all_inputs_to_zeroth_order_of_magnitude=
|
|
443
|
+
get_all_inputs_to_zeroth_order_of_magnitude, device_type=
|
|
444
|
+
device_type, non_orthogonal_matrices=non_orthogonal_matrices,
|
|
445
|
+
input_data_regularization_method=input_data_regularization_method)
|
|
345
446
|
|
|
346
447
|
training_flag = True
|
|
347
448
|
|
|
449
|
+
testing_flag = False
|
|
450
|
+
|
|
348
451
|
if training_flag:
|
|
349
452
|
|
|
350
453
|
modeling_class.train_surrogate_model()
|
|
351
454
|
|
|
352
|
-
|
|
455
|
+
if testing_flag:
|
|
456
|
+
|
|
457
|
+
modeling_class.test_surrogate_model()
|
|
@@ -9,9 +9,11 @@ from time import time
|
|
|
9
9
|
|
|
10
10
|
from .....Davout.DeepMech.tool_box import ANN_tools, training_tools
|
|
11
11
|
|
|
12
|
+
from .....Davout.DeepMech.tool_box.FEM_surrogate_testing_tools import FEMSurrogateEvaluator
|
|
13
|
+
|
|
12
14
|
from .....Davout.DeepMech.tool_box.loss_assembler_classes import MaximumAbsoluteError
|
|
13
15
|
|
|
14
|
-
from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file
|
|
16
|
+
from .....Davout.PythonicUtilities.path_tools import get_parent_path_of_file, take_outFileNameTermination
|
|
15
17
|
|
|
16
18
|
from .....Davout.MultiMech.tool_box.binary_tools import read_field_from_binary
|
|
17
19
|
|
|
@@ -113,9 +115,11 @@ class SurrogateModel:
|
|
|
113
115
|
)+"; the maximum absolute is: "+str(np.max(np.abs(
|
|
114
116
|
material_input_data)))+"\n")
|
|
115
117
|
|
|
116
|
-
|
|
118
|
+
print("The architecture is:\n"+str(self.activations_list)+"\n"+
|
|
117
119
|
"\nThe output data has a total of "+str(self.total_number_of_dofs
|
|
118
|
-
)+" DOFs
|
|
120
|
+
)+" DOFs")
|
|
121
|
+
|
|
122
|
+
#input("\nPress ENTER to continue\n\n")
|
|
119
123
|
|
|
120
124
|
# The order of magnitude of the material data is expected to be
|
|
121
125
|
# larger than the kinematic data. Thus, gets the material input
|
|
@@ -127,6 +131,14 @@ class SurrogateModel:
|
|
|
127
131
|
self.input_data = np.hstack((self.kinematic_input_data,
|
|
128
132
|
self.material_input_data))
|
|
129
133
|
|
|
134
|
+
# Saves the corrected input data
|
|
135
|
+
|
|
136
|
+
self.corrected_data_file = take_outFileNameTermination(
|
|
137
|
+
self.input_data_file)+"_corrected.npy"
|
|
138
|
+
|
|
139
|
+
np.save(self.results_path+"//"+self.corrected_data_file,
|
|
140
|
+
self.input_data)
|
|
141
|
+
|
|
130
142
|
# Defines a function to train the neural network model
|
|
131
143
|
|
|
132
144
|
def train_surrogate_model(self):
|
|
@@ -215,7 +227,7 @@ class SurrogateModel:
|
|
|
215
227
|
# Loads this model
|
|
216
228
|
|
|
217
229
|
loaded_model = tf.keras.models.load_model(self.results_path+
|
|
218
|
-
"//"+str(i+1)+"
|
|
230
|
+
"//"+str(i+1)+"_"+self.saved_model_file+".keras")
|
|
219
231
|
|
|
220
232
|
# Gets the output of the loaded model
|
|
221
233
|
|
|
@@ -230,7 +242,7 @@ class SurrogateModel:
|
|
|
230
242
|
print("Loss function on test set:", format(test_loss.numpy(
|
|
231
243
|
), '.5e'))
|
|
232
244
|
|
|
233
|
-
# Verifies with the maximum absolute error
|
|
245
|
+
# Verifies with the maximum absolute error
|
|
234
246
|
|
|
235
247
|
maximum_absolute_value = maximum_absolute_error(
|
|
236
248
|
test_true_values, output_model)
|
|
@@ -295,7 +307,7 @@ class SurrogateModel:
|
|
|
295
307
|
self.n_training_samples:,:][best_samples_indices,:])
|
|
296
308
|
|
|
297
309
|
np.save(self.results_path+"//surrogate_best_samples_of_"+
|
|
298
|
-
str(i+1)+"
|
|
310
|
+
str(i+1)+"_"+self.saved_model_file+".npy",
|
|
299
311
|
model_displacement.numpy()[best_samples_indices,:])
|
|
300
312
|
|
|
301
313
|
# Defines a function to insert the results into a function space and
|
|
@@ -324,6 +336,31 @@ class SurrogateModel:
|
|
|
324
336
|
|
|
325
337
|
last_model = limit_model+0
|
|
326
338
|
|
|
339
|
+
# Initializes the class for performance testing
|
|
340
|
+
|
|
341
|
+
#"""
|
|
342
|
+
surrogate_evaluation_class = FEMSurrogateEvaluator(
|
|
343
|
+
self.corrected_data_file, self.displacement_data_file,
|
|
344
|
+
self.n_training_samples, self.saved_model_file, "Displacement",
|
|
345
|
+
parent_path=self.results_path, verbose=True,
|
|
346
|
+
maximum_number_of_models_to_be_evaluated=last_model,
|
|
347
|
+
subdofs_to_learn=self.subdofs_to_learn, take_snapshots=True,
|
|
348
|
+
field_type="vector", polynomial_degree=2,
|
|
349
|
+
interpolation_function="CG", mesh_file_name=self.mesh_file_name,
|
|
350
|
+
screenshots_path=self.screenshots_path, field_component_to_plot=
|
|
351
|
+
self.displacement_component_to_plot, number_of_best_samples=
|
|
352
|
+
self.n_best_samples, number_of_samples_to_be_snapshot=1,
|
|
353
|
+
set_camera_interactively=False, build_error_field=True,
|
|
354
|
+
mean_absolute_error_threshold=5E-3)
|
|
355
|
+
|
|
356
|
+
# Tests on the training dataset that has been set during instan-
|
|
357
|
+
# tiation of the class
|
|
358
|
+
|
|
359
|
+
surrogate_evaluation_class.evaluate_model_on_dataset()
|
|
360
|
+
|
|
361
|
+
#float(a)#"""
|
|
362
|
+
|
|
363
|
+
"""
|
|
327
364
|
# Iterates through the best models
|
|
328
365
|
|
|
329
366
|
for i in range(last_model):
|
|
@@ -331,7 +368,7 @@ class SurrogateModel:
|
|
|
331
368
|
# Loads this model
|
|
332
369
|
|
|
333
370
|
loaded_model = tf.keras.models.load_model(self.results_path+
|
|
334
|
-
"//"+str(i+1)+"
|
|
371
|
+
"//"+str(i+1)+"_"+self.saved_model_file+".keras")
|
|
335
372
|
|
|
336
373
|
# Gets the output of the loaded model
|
|
337
374
|
|
|
@@ -341,7 +378,7 @@ class SurrogateModel:
|
|
|
341
378
|
|
|
342
379
|
test_loss = loss_metric(training_true_values, output_model)
|
|
343
380
|
|
|
344
|
-
print("
|
|
381
|
+
print("\n\n\n\nLoads the "+str(i+1)+"-th best model")
|
|
345
382
|
|
|
346
383
|
print("Loss function on training set:", format(
|
|
347
384
|
test_loss.numpy(), '.5e'))
|
|
@@ -375,7 +412,7 @@ class SurrogateModel:
|
|
|
375
412
|
# ment DOFs of this model
|
|
376
413
|
|
|
377
414
|
displacement_output_file = (self.results_path+"//surrogate"+
|
|
378
|
-
"_best_training_samples_of_"+str(i+1)+"
|
|
415
|
+
"_best_training_samples_of_"+str(i+1)+"_"+
|
|
379
416
|
self.saved_model_file+".npy")
|
|
380
417
|
|
|
381
418
|
# Recovers the name of the file with the true values of dis-
|
|
@@ -455,7 +492,7 @@ class SurrogateModel:
|
|
|
455
492
|
# Sets the name of the screenshot file
|
|
456
493
|
|
|
457
494
|
screenshot_file = ("surrogate_best_training_sample_of_"+str(
|
|
458
|
-
i+1)+"
|
|
495
|
+
i+1)+"_"+self.saved_model_file+".png")
|
|
459
496
|
|
|
460
497
|
# Sets the name of the screenshot file for the true displa-
|
|
461
498
|
# cement
|
|
@@ -498,7 +535,7 @@ class SurrogateModel:
|
|
|
498
535
|
legend_bar_visibility=True)
|
|
499
536
|
|
|
500
537
|
print("\nThe input data for the "+str(i+1)+"-th model is: "+
|
|
501
|
-
str(training_data[best_samples_indices[0],:])+"\n")
|
|
538
|
+
str(training_data[best_samples_indices[0],:])+"\n")#"""
|
|
502
539
|
|
|
503
540
|
# Defines a function to insert the results into a function space and
|
|
504
541
|
# plot it for the samples of the test set
|
|
@@ -513,7 +550,7 @@ class SurrogateModel:
|
|
|
513
550
|
# ment DOFs of this model
|
|
514
551
|
|
|
515
552
|
displacement_output_file = (self.results_path+"//surrogate"+
|
|
516
|
-
"_best_samples_of_"+str(i+1)+"
|
|
553
|
+
"_best_samples_of_"+str(i+1)+"_"+self.saved_model_file+
|
|
517
554
|
".npy")
|
|
518
555
|
|
|
519
556
|
# Recovers the name of the file with the true values of dis-
|
|
@@ -553,7 +590,7 @@ class SurrogateModel:
|
|
|
553
590
|
# Sets the name of the screenshot file
|
|
554
591
|
|
|
555
592
|
screenshot_file = ("surrogate_best_sample_of_"+str(i+1)+"_"+
|
|
556
|
-
|
|
593
|
+
self.saved_model_file+".png")
|
|
557
594
|
|
|
558
595
|
# Sets the name of the screenshot file for the true displa-
|
|
559
596
|
# cement
|
|
@@ -604,7 +641,7 @@ class SurrogateModel:
|
|
|
604
641
|
# Gets the name of the screenshot file
|
|
605
642
|
|
|
606
643
|
screenshot_file = ("surrogate_best_training_sample_of_"+str(
|
|
607
|
-
model_number)+"
|
|
644
|
+
model_number)+"_"+self.saved_model_file+".png")
|
|
608
645
|
|
|
609
646
|
# Sets the name of the screenshot file for the true displa-
|
|
610
647
|
# cement
|
|
@@ -732,7 +769,7 @@ class SurrogateModel:
|
|
|
732
769
|
# Loads the best gated model
|
|
733
770
|
|
|
734
771
|
loaded_gated_model = tf.keras.models.load_model(
|
|
735
|
-
self.results_path+"//
|
|
772
|
+
self.results_path+"//1_"+self.saved_model_file+".keras")
|
|
736
773
|
|
|
737
774
|
# Gets the output of the loaded gated model
|
|
738
775
|
|
|
@@ -763,7 +800,7 @@ if __name__=="__main__":
|
|
|
763
800
|
|
|
764
801
|
Lp_norm_exponent = 12
|
|
765
802
|
|
|
766
|
-
saved_model_file = "
|
|
803
|
+
saved_model_file = "best_saved_model_lp_norm_"+str(Lp_norm_exponent)
|
|
767
804
|
|
|
768
805
|
saved_model_without_gate_file = ("saved_model_without_gate_lp_norm"+
|
|
769
806
|
"_"+str(Lp_norm_exponent))
|
|
@@ -797,13 +834,13 @@ if __name__=="__main__":
|
|
|
797
834
|
|
|
798
835
|
test_flag = False
|
|
799
836
|
|
|
800
|
-
plot_training_responses =
|
|
837
|
+
plot_training_responses = True
|
|
801
838
|
|
|
802
839
|
plot_test_responses = False
|
|
803
840
|
|
|
804
841
|
collage_flag = False
|
|
805
842
|
|
|
806
|
-
compare_without_gate =
|
|
843
|
+
compare_without_gate = False
|
|
807
844
|
|
|
808
845
|
# Gets the mesh of the RVE
|
|
809
846
|
|