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:

  • StiffnessTensor and ComplianceTensor are now at: Elasticipy.tensors.elasticity
  • StrainTensor and StressTensor are now at: Elasticipy.tensors.stress_strain
  • ThermalExpansion is 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 StiffnessTensor and ComplianceTensor from/to (6,6) Kelvin matrix,
  • tensor analysis (e.g. eigenstiffnesses/eigencompliances),
  • supports for multidim arrays of FourthOrderTensor thanks 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.9

- Python
Published by DorianDepriester about 1 year ago

elasticipy -

- Python
Published by DorianDepriester about 1 year ago

elasticipy - v2.8.7

- Python
Published by DorianDepriester about 1 year ago

elasticipy - v2.8.6

- 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 SphericalFunction and HyperSphericalfunction. In details, they use "home-made" integration, taking advantage of broadcasting

  • Possibility 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:

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.5

- Python
Published by DorianDepriester about 1 year ago

elasticipy - v2.1.1

- 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

elasticipy - v1.0.1

- Python
Published by DorianDepriester over 1 year ago

elasticipy - v1.0.0

First release

- Python
Published by DorianDepriester over 1 year ago