Getting started
Brief description of the package
The package relies on the definition of
bases which can be of the following types (
Tdenotes the scalar type, subtype ofNumber)CanonicalBasis{dim,T}: fundamental canonical basis inℝᵈⁱᵐin which the metric tensor is the second-order identityRotatedBasis{dim,T}: orthonormal basis inℝᵈⁱᵐobtained by rotation of the canonical basis by means of one angle ifdim=2or three Euler angles ifdim=3, the metric tensor is again the second-order identityOrthogonalBasis{dim,T}: orthogonal basis inℝᵈⁱᵐobtained from a given orthonormal rotated basis by applying a scaling factor along each unit vector, the metric tensor is then diagonalBasis{dim,T}: arbitrary basis not entering the previous cases
tensors
- a tensor is determined by a set of data (array or synthetic parameters) corresponding to its
order, a basis and a tuple of variances - depending on the type of basis, the type of tensor can be
TensCanonical{order,dim,T,A},TensRotated{order,dim,T,A},TensOrthogonal{order,dim,T,A}orTens{order,dim,T,A}if the data are stored under the form of an array or aTensorobject (see Tensors.jl), or the type can beTensISO{order,dim,T,N}if the tensor is isotropic and data are stored under the form of a set of parameters (one for order 2 and two for order 4).
NOTE: More material symmetry types such as transverse isotropy or orthotropy will be added in the future.
- a tensor is determined by a set of data (array or synthetic parameters) corresponding to its
coordinate systems
- a coordinate system contains all information required to perform differential operations on tensor fields: position vector
OMexpressed in the canonical basis, coordinate namesxⁱ, natural basisaᵢ=∂ᵢOM, normalized basiseᵢ=aᵢ/||aᵢ||, Christoffel coefficientsΓᵢⱼᵏ=∂ᵢaⱼ⋅aᵏwhere(aⁱ)(1≤i≤dim)form the dual basis associated to the natural one - predefined coordinate systems are available: cartesian, polar, cylindrical, spherical and spheroidal but the user can define new systems
NOTE: Note that for the moment the coordinate systems and differential operators have been implemented only for symbolic calculations (using SymPy.jl). Numerical coordinate systems and differential operators based on automatic differentiation will be implemented in the future.
- a coordinate system contains all information required to perform differential operations on tensor fields: position vector
Detailed manual
Before detailing explanations about the main features of TensND, it is worth recalling that the use of the libraries TensND and SymPy requires starting scripts by
julia> using TensND, SymPyThe detailed manual is decomposed into the following chapters