Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement StaticMechanicalSimulation results (#261)
* Pseudocode for mechanical static analysis type * Pseudocode for mechanical transient analysis type * Pseudocode for mechanical modal analysis type * Pseudocode for mechanical harmonic analysis type * Improve the Simulation time_freq_support access API * Add Mesh API section * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve transient_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Improve static_analysis.py * Make static_analysis.py runnable * Update static_analysis.py * Update static_analysis.py * Update static_analysis.py * static_analysis.md * Update static_analysis.md * Update static_analysis.md * meetng discussions * Add StaticMechanicalSimulation, TransientMechanicalSimulation, ModalMechanicalSimulation and HarmonicMechanicalSimulation * Link each mechanical simulation type in load_simulation() * Add Simulation.geometries property * Add Simulation.boundary_conditions and refactor Simulation.geometries * Add Simulation.loads * Add Simulation.named_selections * Add StaticMechanicalSimulation.steps * Simulation.results now returns the list of string representations of available results * Add Simulation.plot * Add Simulation.plot with geometry * Fix Simulation.activate_selection * Add load_simulation tests * Add AvailableSimulationTypes Add test_load_simulation.py Refactor load_simulation's simulation type logic transient_rst example is not loaded as transient by default * Switched test_load_simulation_transient_mechanical to use plate_msup which is recognized as transient. * Add test_simulation.py * Improve typehinting * Improve coverage for load_simulation * Improve Simulation.mesh docstring * Add Simulation.active_selection property * Solution -> Simulation in selection.py * Add test_simulation_active_selection and improve imports * Remove StaticMechanicalSimulation.steps property. * Add a basic test_simulation_plot * Change docs/src/api/index.rst to include old and new APIs. * Clean-up simulation.py * Clean-up simulation.py * Improve docstrings * Fix doctest simulation.mesh * Take into account meeting recommendations * Fix typehinting of load_simulation * Clean MechanicalSimulation.displacement * Add components logic for result extraction Add time_scoping building logic for static_analysis.py * Add TestStaticMechanicalSimulation.test_displacement * Add TestStaticMechanicalSimulation.test_displacement with named_selection * Add Simulation._build_op_names_from_principal_components * Add Simulation._build_op_names_from_principal_components * Allow for single values for set_ids, times, load_steps, and sub-steps. A location argument can be given to the MechanicalSimulation._build_mesh_scoping method * Location transpose works for both elemental and nodal * Fixed "elements" argument for displacement (or any nodal based result) * Refactor with a common _get_result * switch test_simulation to static_rst instead of simple_bar * Add stress() * Refactor naming * Add stress_eqv_von_mises_elemental * Add stress_eqv_von_mises_nodal * Treat case with no spatial input * Add elastic and plastic strain * Add case of invalid category requested * Make _build_time_freq_scoping and _build_mesh_scoping abstract and mandatory * Add reaction_force and update tests to be consistent with results using pydpf-core directly. * Add elemental_volume (needs a bug fix server-side) * Fix mesh_scoping when None is given (to work on the real complete mesh with hidden elements) * Add several new results to StaticMechanicalSimulation * Add element_nodal_forces * Add element_nodal_forces_nodal and element_nodal_forces_elemental * Switch to an "extract all components+select" logic * Move element_nodal_forces apis back into static * Add norm argument, remove rogue print * Add norm argument to other vectorial results * Allow str for simulation_type argument of load_simulation. * components argument for result queries becomes "component_ids" * components argument for result queries becomes "component_ids" * Raise warning when returning an empty dataframe, with column names indicating which request it was. * Raise warning when returning an empty dataframe, with column names indicating which request it was. * Raise warning when returning an empty dataframe, with column names indicating which request it was. * fix dosctrings according to new result extraction APIs * fix dosctrings according to new result extraction APIs * Add stress_eqv_von_mises * Fix stress_eqv_von_mises* docstrings * Fix stress* docstrings * Refactor result categories and workflow construction to decompose it more. Principals not working * Fix principals * Test different principal components * Add elastic_strain_principal and _eqv * Add plastic_strain_principal and _eqv * Add creep strain * Add hydrostatic_pressure, elemental_mass, elemental_heat_generation, element_orientations, element_centroids, thickness, nodal_moment, nodal_force, plastic_state_variable * Add static_mechanical overview example from Guillem's PR * Update 02-get_data_from_static_simulation.py with currently working code * Update pseudo-code for dpf.load_simulation * Rename Simulation.geometries to Simulation.constructed_geometries * Update Simulation.plot to take a constructed_geometries argument * Update Selection pseudo-code according to comments * Add main case of Selection creation via tools.create_selection * Apply suggestions from code review Co-authored-by: Maxime Rey <[email protected]> * Delete pseudo-code from code PR --------- Co-authored-by: Camille Bellot <[email protected]> Co-authored-by: Maxime Rey <[email protected]>
- Loading branch information