Recent Releases of elasticipy
elasticipy - v4.0.0
Refactored project structure
In order to simplify the syntax and comply with PEP8 convention, the following changes have been made:
StiffnessTensorandComplianceTensorare now at:Elasticipy.tensors.elasticityStrainTensorandStressTensorare now at:Elasticipy.tensors.stress_strainThermalExpansionis now at:Elasticipy.tensors.thermal_expansion
For instance, the former import statements
````python
Old syntax
from Elasticipy.FourthOrderTensor import StiffnessTensor
from Elasticipy.StressStressTensors import StressTensor, StrainTensor
from Elasticipy.ThermalExpansion import ThermalExpansionTensor
becomes
python
New syntax
from Elasticipy.tensors.elasticity import StiffnessTensor from Elasticipy.tensors.stressstrain import StressTensor, StrainTensor from Elasticipy.tensors.thermalexpansion import ThermalExpansionTensor ````
Backward compatibility has been maintained, but a deprecation warning is raised if one uses the old syntax.
Multidimensional arrays of 4th-order tensors
It is now possible to define nd-arrays of 4th-order tensors (such as StiffnessTensor). This can easily be done with orix rotations. These arrays no longer store the orientations, but all the rotated components as a (...,6,6) matrix.
General-purpose 4th-order tensors
The release introduces the classes FourthOrderTensor and SymmetricFourthOrderTensor. This allows to perform tensor operation on between two 4th-order tensors.
New features
This release provides new features, such as:
- invariants for
SymmetricFourthOrderTensor - invariant-based tests for isotropic, cubic and tetragonal symmetries
- invariant-based method to compute the Zener ratio
- Python
Published by DorianDepriester 11 months ago
elasticipy - v3.0.0
New syntax for basic operations between tensor arrays
Tensor product: broadcasting or cross-combinations?
In order to avoid confusion, tensor product with single contraction (e.g. matrix-like product) is now made with dot. By default, if the two tensors to be multiplied are multidimensional tensor arrays, the product is made on the last coincident axes, according to the numpy's broadcasting rules. E.g.:
python
a = StressTensor.rand(4, 5)
b = StrainTensor.rand(5)
ab = a.dot(b)
ab.shape
(4, 5,)
Conversely, if one wants to compute all cross-combinations, he/she must use mode='cross' option, thus increasing the dimensionality of the returned tensor:
python
ab_cross=a.dot(b, mode='cross')
ab_cross.shape
(4, 5, 5)
Rotation of tensors
The same considerations also apply with rotate (which takes the option mode='cross' to compute all cross-combinations between the single tensors and the considered rotations).
What about * operator then?
Standard multiplication (*) still works; it is just a shortcut for dot and rotate (depending on the type of object used for mutliplication). For instance:
np.all(a.dot(b) == a*b)
True
And matmul?
For backward compatibilitymatmul still works, but throws a warning message mentioning its deprecation.
Other features
- convertion of second-order tensors from/to vector(s), according to the Voigt or Kelvin(-Mandel) conventions,
- convertion of
StiffnessTensorandComplianceTensorfrom/to (6,6) Kelvin matrix, - tensor analysis (e.g. eigenstiffnesses/eigencompliances),
- supports for multidim arrays of
FourthOrderTensorthanks to multidim rotations, as provided by Orix, - minor bug fixes.
- Python
Published by DorianDepriester 12 months ago
elasticipy - v2.9.0
The main new feature of this release is the implementation of the Johnson-Cook plasticity model, available for J2 and Tresca criteria. The following tutorial explains how this works: https://elasticipy.readthedocs.io/en/latest/
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.8.10...v2.9.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.10
This release fixes the inconsistant rotation conventions between scipy.spatial.transform.Rotation and orix.quaternion.orientation.Orientation
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.5
Add requirements.txt to conda, to allow conda build
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.4
Fix wrong path to requirements.txt, which prevents Conda build
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.3
Remove duplicate build section, which avoids Conda build
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.2
Fix error in filename for Conda build
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.1
Fix error for Conda built
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.8.0
This release is mainly meant to integrate Conda as a package manager
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.7.0
This release mainly introduces compatibilities with other packages dedicated to crystallographic analyses, namely: - pymatgen, - orix.
Evaluation of statistics for SphericalFunction and HyperSphericalFunction (e.g. .mean() or .std()) now take advantage of broadcasting, therefore speeding them up (~10 times faster).
The input matrix for creating a StiffnessTensor or a ComplianceTensor now must be symmetric and definite positive (except if check_symmetry=True and check_positive_definite=False, respectively).
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.6.0...v2.7.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.6.0
Faster statistics on
SphericalFunctionandHyperSphericalfunction. In details, they use "home-made" integration, taking advantage of broadcastingPossibility to reuse existing XYZ sections in
SphericalFunction.plot_xyz_sections()
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.5.0...v2.6.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.5.0
This release provides abilities to convert stress, strain and compliance from/to pymatgen.
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.4.3...v2.5.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.4.3
This release mainly consists in fixing minor bugs in orthotropic and transverse_isotropic stiffness constructors
New feature: ability to compute tensor divergence from array
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.4.2...v2.4.3
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.4.2
This release mainly consists in minor bug fixes. In addition, coverage has been implemented on codecov
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.4.0...v2.4.2
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.4.1
This release is only meant to be associated with a Zenodo DOI
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.4.0
Among other changes, this release provides the following new feature:
- Compatibility with The Materials Project,
- Import and export commands,
- Thermal expansion analysis.
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.3.0...v2.4.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.3.0
The main changes of this release are:
- a Graphical User Interface (GUI) to plot the engineering constants
- even simpler ways to define crystal's symmetries
- new material's symmetry:
- orthotropic
- transverse-isotropic
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.2.0...v2.3.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.2.0
New features
- compute and plot wave velocities
- finer control on pole figure
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.1.6...v2.2.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.1.6
This release mainly consists in bug fixing the wrong Reuss average when using a finite set of rotations
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/v2.1.5...v2.1.6
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.1.0
It is now possible to plot SphericalFunctions and HyperSphericalFunctions as a Pole Figure.
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/2.0.0...2.1.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v2.0.0
The main changes of this release are:
- The Voigt, Reuss and Hill averages are now computed from the stiffness/compliance orientation attribute
- plot() has been renamed plot3D()
Full Changelog: https://github.com/DorianDepriester/Elasticipy/compare/1.1.0...2.0.0
- Python
Published by DorianDepriester about 1 year ago
elasticipy - v1.1.0
Full documentation available on ReadTheDoc
- Python
Published by DorianDepriester over 1 year ago
elasticipy - v1.0.2
Fix bug with wrong relative path to modules
- Python
Published by DorianDepriester over 1 year ago
elasticipy - v1.0.2
Change tree managing, so that all modules are submodules of Elasticipy
- Python
Published by DorianDepriester over 1 year ago