Getting started
Brief description of the package
The package relies on the definition of
bases which can be of the following types (
T
denotes 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=2
or 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 aTensor
object (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
OM
expressed 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, SymPy
The detailed manual is decomposed into the following chapters