#----------------------------------------------------------------------------------------
# fichier a inclure dans un autre fichier gnuplot
#   => syntaxe : load 'gnu_commun'
#----------------------------------------------------------------------------------------
# contient des fonctions communes a tous les potentiels
#----------------------------------------------------------------------------------------


#----------------------------------------------------------------------------------------
#E connaissant K,G
E_KG(K,G) = 9.*K*G/(3*K + G)
#NU connaissant K,E
NU_KE(K,E) = (3.*K - E)/(6.*K)
#NU connaissant K,G
NU_KG(K,G) = (3.*K-2.*G)/(2.*(3.*K+G))
#G connaissant K,E
G_KE(K,E) = 3.*K*E/(9.*K-E)
#G connaissant K,NU
G_KNU(K,NU) = 3.*K*(1.-2.*NU)/(2.*(1.+NU))
#----------------------------------------------------------------------------------------


#----------------------------------------------------------------------------------------
#coef poisson dans un essai TU/CU en fonction vitesse de def
#----------------------------------------------------------------------------------------
#en contraine plane CP
NU_CP(epsL_11_point, epsL_22_point) = -epsL_22_point/epsL_11_point
#en def plane DP
NU_DP(epsL_11_point, epsL_22_point) = epsL_22_point/(epsL_22_point - epsL_11_point)
#----------------------------------------------------------------------------------------


#----------------------------------------------------------------------------------------
# divers grandeurs en fonction de l1, l2, l3
#   - variation de volume
#   - invariants de B et de Bbarre
#   - Bbarre et deviateur Bbarre
#   - Bbarre.Bbarre et deviateur Bbarre.Bbarre
#----------------------------------------------------------------------------------------
V(l1,l2,l3) = l1*l2*l3
I_1(l1,l2,l3) = l1**2 + l2**2 + l3**2
I_2(l1,l2,l3) = (l1*l2)**2 + (l2*l3)**2 + (l1*l3)**2
Ibar_1(l1,l2,l3) = V(l1,l2,l3)**(-2./3.)*I_1(l1,l2,l3)
Ibar_2(l1,l2,l3) = V(l1,l2,l3)**(-4./3.)*I_2(l1,l2,l3)
Bbarre_11(l1,l2,l3) = V(l1,l2,l3)**(-2./3.)*l1**2
Bbarre_22(l1,l2,l3) = V(l1,l2,l3)**(-2./3.)*l2**2
Bbarre_33(l1,l2,l3) = V(l1,l2,l3)**(-2./3.)*l3**2
trace_Bbarre(l1,l2,l3) = Bbarre_11(l1,l2,l3) + Bbarre_22(l1,l2,l3) + Bbarre_33(l1,l2,l3)
Bbarre_dev_11(l1,l2,l3) = Bbarre_11(l1,l2,l3) - trace_Bbarre(l1,l2,l3)/3.
Bbarre_dev_22(l1,l2,l3) = Bbarre_22(l1,l2,l3) - trace_Bbarre(l1,l2,l3)/3.
Bbarre_dev_33(l1,l2,l3) = Bbarre_33(l1,l2,l3) - trace_Bbarre(l1,l2,l3)/3.
Bbarre_Bbarre_11(l1,l2,l3) = Bbarre_11(l1,l2,l3)**2
Bbarre_Bbarre_22(l1,l2,l3) = Bbarre_22(l1,l2,l3)**2
Bbarre_Bbarre_33(l1,l2,l3) = Bbarre_33(l1,l2,l3)**2
trace_Bbarre_Bbarre(l1,l2,l3) = Bbarre_Bbarre_11(l1,l2,l3) + Bbarre_Bbarre_22(l1,l2,l3) + Bbarre_Bbarre_33(l1,l2,l3)
Bbarre_Bbarre_dev_11(l1,l2,l3) = Bbarre_Bbarre_11(l1,l2,l3) - trace_Bbarre_Bbarre(l1,l2,l3)/3.
Bbarre_Bbarre_dev_22(l1,l2,l3) = Bbarre_Bbarre_22(l1,l2,l3) - trace_Bbarre_Bbarre(l1,l2,l3)/3.
Bbarre_Bbarre_dev_33(l1,l2,l3) = Bbarre_Bbarre_33(l1,l2,l3) - trace_Bbarre_Bbarre(l1,l2,l3)/3.
#----------------------------------------------------------------------------------------


#----------------------------------------------------------------------------------------
# nouveaux invariants SPHERIQUE et derivees
#----------------------------------------------------------------------------------------
#Iv_n_v1 = 1/n*(V**n - 1)
#  si n = 0 => Iv_n_v1 = ln(V)
Iv_n_v1(n,l1,l2,l3) = n == 0 ? log(V(l1,l2,l3)) :\
                               1./n*(V(l1,l2,l3)**n - 1.)
d1_dV_Iv_n_v1(n,l1,l2,l3) = n == 0 ? V(l1,l2,l3)**-1 :\
                                     V(l1,l2,l3)**(n-1.)
d2_dV_Iv_n_v1(n,l1,l2,l3) = n == 0 ? -V(l1,l2,l3)**-2 :\
                                     (n-1.)*V(l1,l2,l3)**(n-2.)

#Iv_n_v2 = 1/(n*(n+1)) (V**(n+1) - (n+1) V + n)
#             si n= 0  => Iv_n_v2  = 1. - V + V*ln(V)
#             si n=-1  => Iv_n_v2 = -1. + V - ln(V)
Iv_n_v2(n,l1,l2,l3) = n == 0  ? 1. - V(l1,l2,l3) + V(l1,l2,l3)*log(V(l1,l2,l3)) :\
                      n == -1 ? -1. + V(l1,l2,l3) - log(V(l1,l2,l3)) :\
                                1./(n*(n+1.))*(V(l1,l2,l3)**(n+1.) - (n+1.)*V(l1,l2,l3) + n)
d1_dV_Iv_n_v2(n,l1,l2,l3) = n == 0  ? log(V(l1,l2,l3)) :\
                            n == -1 ? 1.-V(l1,l2,l3)**-1 :\
                                      (V(l1,l2,l3)**n-1.)/n
d2_dV_Iv_n_v2(n,l1,l2,l3) = n == 0  ? V(l1,l2,l3)**-1 :\
                            n == -1 ? V(l1,l2,l3)**-2 :\
                                      V(l1,l2,l3)**(n-1.)
#----------------------------------------------------------------------------------------
# nouveaux invariants DEVIATORIQUE et derivees
#----------------------------------------------------------------------------------------
#NB : c_r = parametre de regularisation
#
#Ibar_w = w1*Ibar_1 + w2*Ibar_2 - 3*(w1+w2) + c_r
Ibar_w(w1,w2,c_r,l1,l2,l3) = w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2) + c_r
d1_dIbar_1_Ibar_w(w1,w2,c_r,l1,l2,l3) = w1
d1_dIbar_2_Ibar_w(w1,w2,c_r,l1,l2,l3) = w2
d2_dIbar_1_Ibar_w(w1,w2,c_r,l1,l2,l3) = 0.
d2_dIbar_2_Ibar_w(w1,w2,c_r,l1,l2,l3) = 0.
d2_dIbar_1_dIbar_2_Ibar_w(w1,w2,c_r,l1,l2,l3) = 0.

#Ibar_n_v1 = Ibar_w**n = (w1*Ibar_1 + w2*Ibar_2 - 3*(w1+w2) + c_r)**n
#     (obligatoire : n > 0)
Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? Ibar_w(w1,w2,c_r,l1,l2,l3)**n : 1/0
d1_dIbar_1_Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? n*w1*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-1.) : 1/0
d1_dIbar_2_Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? n*w2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-1.) : 1/0
d2_dIbar_1_Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? n*(n-1.)*w1**2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0
d2_dIbar_2_Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? n*(n-1.)*w2**2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0
d2_dIbar_1_dIbar_2_Ibar_n_v1(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? n*(n-1.)*w1*w2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0

#Ibar_n_v2 = 1/n * Ibar_w**n = 1/n * (w1*Ibar_1 + w2*Ibar_2 - 3*(w1+w2) + c_r)**n
#     (obligatoire : n > 0)
Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? 1./n*Ibar_w(w1,w2,c_r,l1,l2,l3)**n : 1/0
d1_dIbar_1_Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? w1*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-1.) : 1/0
d1_dIbar_2_Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? w2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-1.) : 1/0
d2_dIbar_1_Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? (n-1.)*w1**2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0
d2_dIbar_2_Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? (n-1.)*w2**2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0
d2_dIbar_1_dIbar_2_Ibar_n_v2(w1,w2,n,c_r,l1,l2,l3) = n > 0 ? (n-1.)*w1*w2*(w1*Ibar_1(l1,l2,l3)+w2*Ibar_2(l1,l2,l3)-3.*(w1+w2)+c_r)**(n-2.) : 1/0

#Ibar_n_v3 = w1*Ibar_1**n1 + w2*Ibar_2**n2 - (w1*3**n1 + w2*3**n2) + c_r
#     (obligatoire : n1 > 0 et n2 > 0)
Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? w1*Ibar_1(l1,l2,l3)**n1+w2*Ibar_2(l1,l2,l3)**n2-(w1*3.**n1+w2*3.**n2)+c_r : 1/0
d1_dIbar_1_Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? n1*w1*Ibar_1(l1,l2,l3)**(n1-1.) : 1/0
d1_dIbar_2_Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? n2*w2*Ibar_2(l1,l2,l3)**(n2-1.) : 1/0
d2_dIbar_1_Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? n1*(n1-1.)*w1*Ibar_1(l1,l2,l3)**(n1-2.) : 1/0
d2_dIbar_2_Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? n2*(n2-1.)*w2*Ibar_2(l1,l2,l3)**(n2-2.) : 1/0
d2_dIbar_1_dIbar_2_Ibar_n_v3(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 > 0 && n2 > 0) ? 0. : 1/0

#Ibar_n_v4 = 3*w1/n1*((Ibar_1/3)**n1 - 1) + 3*w2/n2*((Ibar_2/3)**n2 - 1) + c_r
#     (si n1 = 0 => Ibar_n_v4 = 3*w1*ln(Ibar_1/3) +      ...          + c_r
#      si n2 = 0 => Ibar_n_v4 =       ...         + 3*w2*ln(Ibar_2/3) + c_r)
Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? 3.*w1*log(Ibar_1(l1,l2,l3)/3.)+3.*w2*log(Ibar_2(l1,l2,l3)/3.)+c_r :\
                                      (n1 == 0) ? 3.*w1*log(Ibar_1(l1,l2,l3)/3.)+3.*w2/n2*((Ibar_2(l1,l2,l3)/3.)**n2-1.)+c_r :\
                                      (n2 == 0) ? 3.*w1/n1*((Ibar_1(l1,l2,l3)/3.)**n1-1.)+3.*w2*log(Ibar_2(l1,l2,l3)/3.)+c_r :\
                                                  3.*w1/n1*((Ibar_1(l1,l2,l3)/3.)**n1-1.)+3.*w2/n2*((Ibar_2(l1,l2,l3)/3.)**n2-1.)+c_r
d1_dIbar_1_Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? w1/Ibar_1(l1,l2,l3) :\
                                                 (n1 == 0) ? w1/Ibar_1(l1,l2,l3) :\
                                                 (n2 == 0) ? w1*(Ibar_1(l1,l2,l3)/3.)**(n1-1.) :\
                                                             w1*(Ibar_1(l1,l2,l3)/3.)**(n1-1.)
d1_dIbar_2_Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? w2/Ibar_2(l1,l2,l3) :\
                                                 (n1 == 0) ? w2*(Ibar_2(l1,l2,l3)/3.)**(n2-1.) :\
                                                 (n2 == 0) ? w2/Ibar_2(l1,l2,l3) :\
                                                             w2*(Ibar_2(l1,l2,l3)/3.)**(n2-1.)
d2_dIbar_1_Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? -w1/Ibar_1(l1,l2,l3)**2 :\
                                                 (n1 == 0) ? -w1/Ibar_1(l1,l2,l3)**2 :\
                                                 (n2 == 0) ? w1/3.*(n1-1.)*(Ibar_1(l1,l2,l3)/3.)**(n1-2.) :\
                                                             w1/3.*(n1-1.)*(Ibar_1(l1,l2,l3)/3.)**(n1-2.)
d2_dIbar_2_Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? -w2/Ibar_2(l1,l2,l3)**2 :\
                                                 (n1 == 0) ? w2/3.*(n2-1.)*(Ibar_2(l1,l2,l3)/3.)**(n2-2.) :\
                                                 (n2 == 0) ? -w2/Ibar_2(l1,l2,l3)**2 :\
                                                             w2/3.*(n2-1.)*(Ibar_2(l1,l2,l3)/3.)**(n2-2.)
d2_dIbar_1_dIbar_2_Ibar_n_v4(w1,w2,n1,n2,c_r,l1,l2,l3) = (n1 == 0 && n2 == 0) ? 0. :\
                                                         (n1 == 0) ? 0. :\
                                                         (n2 == 0) ? 0. :\
                                                                     0.


#----------------------------------------------------------------------------------------
#divers grandeurs dependantes des elongations et de la vitesse des elongations
#      => derivee temporelle notee "_point"
#  - tenseur vitesse de def D et deviateur Dbarre
#  - Dbarre.Dbarre et trace
#  - Bbarre.Dbarre et trace et deviateur
#  - Bbarre.Dbarre.Dbarre et trace
#  - Bbarre.Bbarre.Dbarre et trace et deviateur
#  - Bbarre.Bbarre.Dbarre.Dbarre et trace
#----------------------------------------------------------------------------------------
#tenseur vitesse de def : D
D_11(l1,l2,l3,l1_point,l2_point,l3_point) = l1_point/l1
D_22(l1,l2,l3,l1_point,l2_point,l3_point) = l2_point/l2
D_33(l1,l2,l3,l1_point,l2_point,l3_point) = l3_point/l3
trace_D(l1,l2,l3,l1_point,l2_point,l3_point) = D_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                               D_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                               D_33(l1,l2,l3,l1_point,l2_point,l3_point)

#deviateur tenseur vitesse de def : Dbarre
Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = D_11(l1,l2,l3,l1_point,l2_point,l3_point) - trace_D(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = D_22(l1,l2,l3,l1_point,l2_point,l3_point) - trace_D(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = D_33(l1,l2,l3,l1_point,l2_point,l3_point) - trace_D(l1,l2,l3,l1_point,l2_point,l3_point)/3.

#produit Dbarre.Dbarre
Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point)**2
Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point)**2
Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)**2
trace_Dbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point) = Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                           Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                           Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)

#produit Bbarre.Dbarre
Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_11(l1,l2,l3)*Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point)
Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_22(l1,l2,l3)*Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point)
Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_33(l1,l2,l3)*Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)
trace_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                           Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                           Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)
#deviateur Bbarre.Dbarre
Bbarre_Dbarre_dev_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Bbarre_Dbarre_dev_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Bbarre_Dbarre_dev_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.

#produit Bbarre.Dbarre.Dbarre
Bbarre_Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_11(l1,l2,l3)*Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point)**2
Bbarre_Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_22(l1,l2,l3)*Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point)**2
Bbarre_Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_33(l1,l2,l3)*Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)**2
trace_Bbarre_Dbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                  Bbarre_Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                  Bbarre_Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)

#produit Bbarre.Bbarre.Dbarre
Bbarre_Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_11(l1,l2,l3)**2*Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point)
Bbarre_Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_22(l1,l2,l3)**2*Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point)
Bbarre_Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_33(l1,l2,l3)**2*Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)
trace_Bbarre_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                  Bbarre_Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                  Bbarre_Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)
#deviateur Bbarre.Bbarre.Dbarre
Bbarre_Bbarre_Dbarre_dev_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Bbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Bbarre_Bbarre_Dbarre_dev_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Bbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.
Bbarre_Bbarre_Dbarre_dev_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Bbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) - trace_Bbarre_Bbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point)/3.

#produit Bbarre.Bbarre.Dbarre.Dbarre
Bbarre_Bbarre_Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_11(l1,l2,l3)**2*Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point)**2
Bbarre_Bbarre_Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_22(l1,l2,l3)**2*Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point)**2
Bbarre_Bbarre_Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_33(l1,l2,l3)**2*Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)**2
trace_Bbarre_Bbarre_Dbarre_Dbarre(l1,l2,l3,l1_point,l2_point,l3_point) = Bbarre_Bbarre_Dbarre_Dbarre_11(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                         Bbarre_Bbarre_Dbarre_Dbarre_22(l1,l2,l3,l1_point,l2_point,l3_point) + \
                                                                         Bbarre_Bbarre_Dbarre_Dbarre_33(l1,l2,l3,l1_point,l2_point,l3_point)
#----------------------------------------------------------------------------------------
