elasticipy 4.2.0__tar.gz → 6.0.0__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.
- {elasticipy-4.2.0 → elasticipy-6.0.0}/.github/workflows/Codecov.yml +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/.readthedocs.yaml +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/CITATION.bib +2 -2
- elasticipy-6.0.0/CITATION.cff +38 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Elasticipy_for_the_Impatient.ipynb +409 -124
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Elasticipy_vs_pymatgen.py +5 -5
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Elate_vs_Elasticipy.py +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Example_Stiffness_tensor.py +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Example_StressStrain_arrays.py +2 -2
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Example_WaveVelocity.py +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/Multiple_phases.py +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/SelfConsistent.py +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/essai_plasticity.py +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/example_readwrite.py +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/paper.bib +4 -2
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/paper.md +13 -11
- {elasticipy-4.2.0/src/elasticipy.egg-info → elasticipy-6.0.0}/PKG-INFO +41 -22
- {elasticipy-4.2.0 → elasticipy-6.0.0}/README.md +36 -19
- elasticipy-4.2.0/docs/source/Elasticipy.rst → elasticipy-6.0.0/docs/source/API/API.rst +6 -16
- elasticipy-6.0.0/docs/source/API/Elasticipy.interfaces.FEPX.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.interfaces.PRISMS.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.plasticity.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.spherical_function.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.elasticity.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.fourth_order.rst +8 -0
- elasticipy-4.2.0/docs/source/Elasticipy.tensors.elasticity.rst → elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.mapping.rst +3 -2
- elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.second_order.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.stress_strain.rst +8 -0
- elasticipy-6.0.0/docs/source/API/Elasticipy.tensors.thermal_expansion.rst +8 -0
- elasticipy-6.0.0/docs/source/Tutorials/FourthOrderTensors.rst +372 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/GUI.rst +7 -2
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Plasticity.rst +4 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_AveragingMethods.rst +29 -17
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_MultiplePhases.rst +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_ReadWriteFiles.rst +2 -3
- elasticipy-6.0.0/docs/source/Tutorials/Tutorial_StiffnessTensor.rst +218 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_StressStrain.rst +38 -15
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_ThermalExpansion.rst +1 -1
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/Tutorial_wave-velocities.rst +1 -2
- elasticipy-6.0.0/docs/source/Tutorials/images/GUI.png +0 -0
- elasticipy-6.0.0/docs/source/Tutorials/images/Nye.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials.rst +2 -1
- elasticipy-6.0.0/docs/source/citation.rst +23 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/conf.py +11 -4
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/index.rst +42 -25
- elasticipy-6.0.0/docs/source/install.rst +68 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/pyproject.toml +15 -4
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/FourthOrderTensor.py +4 -4
- elasticipy-6.0.0/src/elasticipy/StressStrainTensors.py +16 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/ThermalExpansion.py +3 -3
- elasticipy-6.0.0/src/elasticipy/gui/__init__.py +3 -0
- elasticipy-6.0.0/src/elasticipy/gui/about.py +49 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy/gui}/gui.py +218 -42
- elasticipy-6.0.0/src/elasticipy/gui/rotate_window.py +79 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/interfaces/FEPX.py +5 -5
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/interfaces/PRISMS.py +2 -2
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/plasticity.py +180 -35
- elasticipy-6.0.0/src/elasticipy/resources/favicon.png +0 -0
- elasticipy-6.0.0/src/elasticipy/resources/logo_text.svg +126 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/spherical_function.py +44 -5
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/tensors/elasticity.py +678 -152
- elasticipy-6.0.0/src/elasticipy/tensors/fourth_order.py +1385 -0
- elasticipy-6.0.0/src/elasticipy/tensors/mapping.py +92 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/tensors/second_order.py +56 -14
- elasticipy-6.0.0/src/elasticipy/tensors/stress_strain.py +360 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/tensors/thermal_expansion.py +8 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0/src/elasticipy.egg-info}/PKG-INFO +41 -22
- {elasticipy-4.2.0 → elasticipy-6.0.0}/src/elasticipy.egg-info/SOURCES.txt +40 -28
- elasticipy-6.0.0/src/elasticipy.egg-info/entry_points.txt +2 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/src/elasticipy.egg-info/requires.txt +1 -1
- elasticipy-6.0.0/src/elasticipy.egg-info/top_level.txt +1 -0
- elasticipy-6.0.0/tests/__init__.py +0 -0
- elasticipy-6.0.0/tests/test_FourthOrderTensors.py +176 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_SphericalFunction.py +23 -2
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_StiffnessTensor.py +93 -77
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_StressStrainTensors.py +18 -8
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_ThermalExpansion.py +4 -4
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_interfaces_FEPX.py +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_interfaces_prisms.py +3 -3
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/test_plasticity.py +3 -3
- elasticipy-4.2.0/CITATION.cff +0 -11
- elasticipy-4.2.0/docs/source/Elasticipy.interfaces.FEPX.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.interfaces.PRISMS.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.plasticity.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.spherical_function.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.tensors.fourth_order.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.tensors.second_order.rst +0 -7
- elasticipy-4.2.0/docs/source/Elasticipy.tensors.stress_strain.rst +0 -7
- elasticipy-4.2.0/docs/source/Tutorials/Tutorial_StiffnessTensor.rst +0 -156
- elasticipy-4.2.0/docs/source/Tutorials/images/GUI.png +0 -0
- elasticipy-4.2.0/docs/source/modules.rst +0 -7
- elasticipy-4.2.0/src/Elasticipy/StressStrainTensors.py +0 -16
- elasticipy-4.2.0/src/Elasticipy/tensors/fourth_order.py +0 -662
- elasticipy-4.2.0/src/Elasticipy/tensors/mapping.py +0 -44
- elasticipy-4.2.0/src/Elasticipy/tensors/stress_strain.py +0 -154
- elasticipy-4.2.0/src/elasticipy.egg-info/top_level.txt +0 -1
- elasticipy-4.2.0/tests/test_FourthOrderTensors.py +0 -112
- {elasticipy-4.2.0 → elasticipy-6.0.0}/.github/workflows/JOSS build.yml +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/.github/workflows/cloc.yml +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/.github/workflows/python-publish.yml +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/CODE_OF_CONDUCT.md +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/CONTRIBUTING.md +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/Examples/MaterialsProject.json +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/ElasticipyVSpymatgen.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/Nye.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/Plot_E.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/JOSS/YoungModulus.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/LICENSE +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/_static/images/HyperSphericalCoordinates.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/index.rst +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/Cyclic.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/E_PF.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/E_VRH_sections.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/E_hill_fiber.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/E_plot3D.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/E_xyz_sections.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/G_plot3D.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/G_plot3D_min.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/G_xyz_sections.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/Incremental.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/Mohr.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/Shear.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/Stress-controlled.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/StressStrain-controlled.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/WaveVelocities.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/Tutorials/images/plot_volumeFraction.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/favicon.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/logo.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/logo.svg +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/logo_text.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/logo_text.svg +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/docs/source/logo/logo_text_whitebg.png +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/postBuild +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/requirements.txt +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/runtime.txt +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/setup.cfg +0 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/__init__.py +0 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/crystal_symmetries.py +0 -0
- {elasticipy-4.2.0/src/Elasticipy/tensors → elasticipy-6.0.0/src/elasticipy/interfaces}/__init__.py +0 -0
- {elasticipy-4.2.0/src/Elasticipy → elasticipy-6.0.0/src/elasticipy}/polefigure.py +0 -0
- {elasticipy-4.2.0/tests → elasticipy-6.0.0/src/elasticipy/tensors}/__init__.py +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/src/elasticipy.egg-info/dependency_links.txt +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/MaterialsProject.json +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/.sim +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/defrate/defrate.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/defrate/defrate.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/defrate/defrate.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/ori/ori.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/ori/ori.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/ori/ori.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/spinrate/spinrate.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/spinrate/spinrate.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/spinrate/spinrate.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/strain/strain.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/strain/strain.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/strain/strain.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/stress/stress.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/stress/stress.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/stress/stress.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/velgrad/velgrad.step0 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/velgrad/velgrad.step1 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/FEPX/simulation.sim/results/elts/velgrad/velgrad.step2 +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/PRISMS/QuadratureOutputs.csv +0 -0
- {elasticipy-4.2.0 → elasticipy-6.0.0}/tests/interfaces/PRISMS/stressstrain.txt +0 -0
|
@@ -9,7 +9,7 @@ jobs:
|
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
strategy:
|
|
11
11
|
matrix:
|
|
12
|
-
python-version: ["3.11", "3.12"]
|
|
12
|
+
python-version: ["3.9", "3.10", "3.11", "3.12"]
|
|
13
13
|
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
pip install pytest pytest-cov codecov pymatgen orix
|
|
29
29
|
|
|
30
30
|
- name: Install project and its dependencies
|
|
31
|
-
run: pip install -e .[dev] # Installe
|
|
31
|
+
run: pip install -e .[dev] # Installe elasticipy et les dépendances dev
|
|
32
32
|
|
|
33
33
|
- name: Run tests
|
|
34
34
|
env:
|
|
@@ -40,6 +40,6 @@ jobs:
|
|
|
40
40
|
uses: codecov/codecov-action@v5
|
|
41
41
|
with:
|
|
42
42
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
43
|
-
slug: DorianDepriester/
|
|
43
|
+
slug: DorianDepriester/elasticipy
|
|
44
44
|
flags: ${{ matrix.python-version }}
|
|
45
45
|
name: python-${{ matrix.python-version }}
|
|
@@ -15,7 +15,7 @@ build:
|
|
|
15
15
|
# golang: "1.20"
|
|
16
16
|
jobs:
|
|
17
17
|
post_create_environment:
|
|
18
|
-
- python -m pip install sphinx_rtd_theme mp_api sphinx_copybutton
|
|
18
|
+
- python -m pip install sphinx_rtd_theme mp_api sphinx_copybutton matplotlib
|
|
19
19
|
|
|
20
20
|
# Build documentation in the "docs/" directory with Sphinx
|
|
21
21
|
sphinx:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@software{dorian_depriester_2025_15188346,
|
|
2
2
|
author = {Dorian Depriester},
|
|
3
|
-
title = {DorianDepriester/
|
|
3
|
+
title = {DorianDepriester/elasticipy: v4.0.0},
|
|
4
4
|
month = apr,
|
|
5
5
|
year = 2025,
|
|
6
6
|
publisher = {Zenodo},
|
|
@@ -12,6 +12,6 @@
|
|
|
12
12
|
sit=swh:1:snp:20bf603cb1ae305b4d37a4567557ac860e09
|
|
13
13
|
d3e5;anchor=swh:1:rel:6dad2d91dcebe09e35d44f82a0c8
|
|
14
14
|
a46c77f0d057;path=DorianDepriester-
|
|
15
|
-
|
|
15
|
+
elasticipy-c8bfc05
|
|
16
16
|
},
|
|
17
17
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
cff-version: "1.2.0"
|
|
2
|
+
authors:
|
|
3
|
+
- family-names: Depriester
|
|
4
|
+
given-names: Dorian
|
|
5
|
+
orcid: "https://orcid.org/0000-0002-2881-8942"
|
|
6
|
+
- family-names: Kubler
|
|
7
|
+
given-names: Régis
|
|
8
|
+
orcid: "https://orcid.org/0000-0001-7781-5855"
|
|
9
|
+
contact:
|
|
10
|
+
- family-names: Depriester
|
|
11
|
+
given-names: Dorian
|
|
12
|
+
orcid: "https://orcid.org/0000-0002-2881-8942"
|
|
13
|
+
doi: 10.5281/zenodo.17598307
|
|
14
|
+
message: If you use this software, please cite our article in the
|
|
15
|
+
Journal of Open Source Software.
|
|
16
|
+
preferred-citation:
|
|
17
|
+
authors:
|
|
18
|
+
- family-names: Depriester
|
|
19
|
+
given-names: Dorian
|
|
20
|
+
orcid: "https://orcid.org/0000-0002-2881-8942"
|
|
21
|
+
- family-names: Kubler
|
|
22
|
+
given-names: Régis
|
|
23
|
+
orcid: "https://orcid.org/0000-0001-7781-5855"
|
|
24
|
+
date-published: 2025-11-26
|
|
25
|
+
doi: 10.21105/joss.07940
|
|
26
|
+
issn: 2475-9066
|
|
27
|
+
issue: 115
|
|
28
|
+
journal: Journal of Open Source Software
|
|
29
|
+
publisher:
|
|
30
|
+
name: Open Journals
|
|
31
|
+
start: 7940
|
|
32
|
+
title: "Elasticipy: A Python package for linear elasticity and tensor
|
|
33
|
+
analysis"
|
|
34
|
+
type: article
|
|
35
|
+
url: "https://joss.theoj.org/papers/10.21105/joss.07940"
|
|
36
|
+
volume: 10
|
|
37
|
+
title: "Elasticipy: A Python package for linear elasticity and tensor
|
|
38
|
+
analysis"
|