CALCULUS METHODS PROGRAMMING IN VPCOMPO99 & VPCOMPO2000
This is the methods programming in VPCOMPO99 :
A.T.A method
D.E.M method
C.P.A method
Devaney method
Voigt method
Reuss method
and methods programming in VPCOMPO2000 :
Matrix methods
ATA
K and G are given by the formulas of following ATA method:
that we programmed by:
procedure ATA(v : real; Z1 : polymere
; Z2 : ceramique ; VAR Z3 : composite);
var _f : real;
begin_f := Z1.g/6*(9*Z1.k+8*Z1.g)/(Z1.k+2*Z1.g);
Z3.k := 1/((1-v)/(Z1.k+4/3*Z1.g)+v/(Z2.k+4/3*Z1.g))-4/3*Z1.g;
Z3.g := 1/((1-v)/(Z1.g+_f)+v/(Z2.g+_f))-_f;
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
_F is used for the calculation as intermediate variable.
DEM
K and G are given by the formulas of following DEM method:
with those initial conditions
K(y = 0) = K
G(y = 0) = G
what we programmed by:
procedure DEM(v : real; Z1 : polymere
; Z2 : ceramique ; VAR Z3 : composite);
const
nb_iteration = 10;
precision = 100;
vark_0 : real;
g_0 : real;
f_0 : real;
k_1 : real;
g_1 : real;
j : integer;
u : real;
du : real;
begin
k_0 := Z1.k;
g_0 := Z1.g;
for j:=0 to trunc(v*precision-1) do
begin
u := j/precision;
du := 1/precision;
f_0 := g_0/6*(9*k_0+8*g_0)/(k_0+2*g_0);
k_1 := ((Z2.k-k_0)/(Z2.k+4/3*g_0))*(k_0+4/3*g_0)*du/(1-u)+k_0;
g_1 := ((Z2.g-g_0)/(Z2.g+f_0))*(g_0+f_0)*du/(1-u)+g_0;
k_0 := k_1;
g_0 := g_1;
end;
Z3.k:=k_0;
Z3.g:=g_0;
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
This method is delicate to implement because there is a circular reference
in its formulation (discretization of a differential equation). We chose to
do 10 iterations ( nb_iteration = 10 ). This is a good compromise between
calculations made by the machine and expected numerical precision.
Notice the presence of the precision parameter.
This parameter allows to specify dy (named du in this source...). It must
be well chosen because it influences directly the precision of the results.
We must have: Dy = y2 - y1, i.e. the distance between two value of K or G
must be equal to a certain rate. Without that, the results are "deformed ":
Dy (du) " precedes " (or don't "follows") the successively computed values.
CPA
K and G are given by the formulas of following CPA method:
that we programmed by:
procedure CPA(v : real; Z1 : polymere;
Z2 : ceramique ; VAR Z3 : composite);
const
nb_iteration = 10;
var
k_0 : real;
g_0 : real;
f_0 : real;
k_1 : real;
g_1 : real;
j : integer;
begin
k_0 := Z1.k;
g_0 := Z1.g;
for j:=1 to nb_iteration do
begin
f_0 := g_0/6*(9*k_0 + 8*g_0)/(k_0 + 2*g_0);
k_1 := 1/((1-v)/(Z1.k+4/3*g_0)+v/(Z2.k+4/3*g_0))-4/3*g_0;
g_1 := 1/((1-v)/(Z1.g+f_0)+v/(Z2.g+f_0))-f_0;
k_0 := k_1;
g_0 := g_1;
end;
Z3.k:=k_0;
Z3.g:=g_0;
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
Here, the given formulas have a circular reference.
Indeed, G can be expressed according to F , and K according to G and
of F , therefore of G only. But F is expressed according to G itself! It's
then impossible to deduce from such formulas, the simple and literal
expressions of
K and G .
For these reasons we solved the problem by programming an
iterative loop which give a completely suitable numerical solution.
The number of iteration is 10. This value is selected because it allows to
converge accurately to the sought result.
Of course, bigger the number of iteration is longer the needed time for the
calculation is.
DEVANNEY
K and G are given by the formulas of following DEVANEY method:
that we programmed by:
procedure DEVANEY(v : real; Z1
: polymere ; Z2 : ceramique ; VAR Z3 : composite);
const
nb_iteration = 10;
var
k_0 : real;
g_0 : real;
k_1 : real;
g_1 : real;
j : integer;
begin
k_0 := Z1.k;
g_0 := Z1.g;
for j:=1 to nb_iteration do
begin
k_1 := Z1.k+v*((3*k_0+4*g_0)*(Z2.k-Z1.k))/(3*k_0+4*g_0+3*(Z2.k-Z1.k));
g_1 := Z1.g+v*((5*(3*k_0+4*g_0)*g_0*(Z2.g-Z1.g))/((15*k_0+20*g_0)*g_0+6*(k_0+2*g_0)*(Z2.g-Z1.g)));
k_0 := k_1;
g_0 := g_1;
end;
Z3.k:=k_0;
Z3.g:=g_0;
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
Method DEVANEY is the vaguest method of modeling for
volumic fractions when charge rate (ceramic piezo) is higher than 50%. The
model
" diverges ".
Literal expressions of K and G are defined in circular reference too.
So we proceed for it like for CPA method, using an iteration calculus.
VOIGT
K and G are given by the formulas of following VOIGT method:
that we programmed by:
procedure VOIGT(v : real; Z1 :
polymere ; Z2 : ceramique ; VAR Z3 : composite);
begin
Z3.k := (1-v)*Z1.k+v*Z2.k;
Z3.g := (1-v)*Z1.g+v*Z2.g;
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
This method is simple to program. Starting from the preceding formulas we
obtain easily the simple literal expressions of K and G.
REUSS
K and G are given by the formulas of following REUSS method:
that we programmed by:
procedure REUSS(v : real; Z1 :
polymere ; Z2 : ceramique ; VAR Z3 : composite);
begin
Z3.k := 1/((1-v)/Z1.k+v/Z2.k);
Z3.g := 1/((1-v)/Z1.g+v/Z2.g);
Z3.r := v*Z2.r+(1-v)*Z1.r;
Z3.cs := Calcul_CS(Z3.g,Z3.r);
Z3.cl := Calcul_CL(Z3.k,Z3.g,Z3.r);
end;
The programming of this method is similar to the programming of method
VOIGT.
MATRIX METHODS 0-3
MATRIX METHODS 3-3
The matrix model is proposed in order to determine the electrical-elastic
modules of piezoelectric composites (of connectivity 0-3 and 3-3) starting
from parameters like the velocity of propagation of a longitudinal
mechanical wave.
The matrix method is a general method. It takes in account the anisotropy
of the ceramic phase and its effects on the properties of the composite.
This method allows to optimize the accuracy and quality of the results and
to choose the two components (composite = charge + matrix) among several
polymers and ceramics available on the market.
The composite, a polymer charged with ceramic particles, is represented by
a cell unit.
The procedures for matrix calculation (encoded with PASCAL) are not
published here. VPCOMPO 99 witch is downloadable on this site don't allow
matrix calculation. This is only possible with VPCOMPO 2000, ask it to the
authors. VPCOMPO 99 is only a preview of VPCOMPO 2000 allowing calculation
with "classical" methods. But you can have look to the results obtained
with matrix methods on this site.