Skip to content
Snippets Groups Projects
Commit de5d952e authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

simplify

parent 209a41ee
Branches
No related tags found
No related merge requests found
Pipeline #2021 passed
DefineConstant[
visu = {1, Choices{0, 1}, AutoCheck 0,
Name "Input/Solver/Visu", Label "Real-time visualization"}
];
Group { Group {
Left = Region[{1}]; Sur_Clamp = Region[{1}];
Top = Region[{2}]; Vol_Mec = Region[{100}]; // Mechanical domain
Right = Region[{3}];
Domain_Mecha = Region[{100}]; // Mechanical domain
} }
Flag_ExternalForce = 0;
Function { Function {
DefineFunction[ FT_F, PK2, C_Tot_xx, C_Tot_xy, C_Tot_xz, C_Tot_yx, C_Tot_yy, C_Tot_yz, C_Tot_zx, C_Tot_zy, C_Tot_zz, E_g, nu_g]; E = 771.0e6; // Young modulus
nu = 0.29; // Poisson ratio
// 1. Parameters of the problem lambda = E/(2.0 * (1.0 + nu)); // first Lame parameter
//============================= mu = (nu * E)/((1.0 + nu) * (1.0 - 2 * nu)); // second Lame parameter
E = 771.0e6;
nu = 0.29;
//Lame parameters
//===============
lambda = E/(2.0 * (1.0 + nu)); // First Lame parameter
mu = (nu * E)/((1.0 + nu) * (1.0 - 2 * nu)); // Second Lame parameter
//Other material properties
//=========================
rho_0 = 2700; // for Alu
cp_0 = 897; // for Alu
// Parameters used during resolution
//==================================
t_0 = 0.0;
t_end = 4.0e-0;
period = (t_end - t_0);
Freq = 1.0/period;
tol_abs[] = 1e-8;
tol_rel[] = 1e-8;
iter_max = 50;
dt_max[] = $var_Dt_Max;
dtime[] = $var_DTime;
v_TS[] = $var_TS;
num_steps = 32;
theta_value = 1.0;
// Definition of parameters of the Dirichlet BCs, the dynamic problem and the external force
//==========================================================================================
force_amplitude = 1.8e8;
force_ext[] = Vector[0., force_amplitude, 0.0];
}
//Include "smp_stent_KMat_Elasticity.pro";
force_ext[] = Vector[0., 1.8e8, 0.0]; // volume force
tol_abs[] = 1e-8; // absolute tolerance for Newton-Raphson solver
tol_rel[] = 1e-8; // relative tolerance for Newton-Rasphon solver
iter_max = 50; // maximum number of iterations for Newton-Raphon solver
}
Function { Function {
// 3. Kinetic information : second Piola Kirchhoff [PK2] stresses
//===============================================================
// Green Lagrange strain measure GL = E = 0.5 * (C - I) and the 2nd Piola-Kirchoff stress // Green Lagrange strain measure GL = E = 0.5 * (C - I) and the 2nd Piola-Kirchoff stress
//=======================================================================================
FT_F[] = Transpose[$1] * $1; // C = (F^T * F) FT_F[] = Transpose[$1] * $1; // C = (F^T * F)
GL[] = 0.5 * (FT_F[$1] - TensorDiag[1.0, 1.0, 1.0]); GL[] = 0.5 * (FT_F[$1] - TensorDiag[1.0, 1.0, 1.0]);
GL_Trace[] = (CompXX[GL[$1]] + CompYY[GL[#1]] + CompZZ[GL[#1]]) ; GL_Trace[] = (CompXX[GL[$1]] + CompYY[GL[#1]] + CompZZ[GL[#1]]) ;
PK2[] = (lambda * GL_Trace[$1] * TensorDiag[1.0, 1.0, 1.0] + 2 * mu * GL[$1]); PK2[] = (lambda * GL_Trace[$1] * TensorDiag[1.0, 1.0, 1.0] + 2 * mu * GL[$1]);
// 4. The nonlinear right hand side // The nonlinear right hand side P_i: (i = 1 for x, 2 for y, 3 for z)
//=================================
//RHS[] = PK2[$1] * Transpose[$1]; // The first Piola Kirchhoff : P = S * F^T //RHS[] = PK2[$1] * Transpose[$1]; // The first Piola Kirchhoff : P = S * F^T
RHS[] = $1 * PK2[$1]; // The first Piola Kirchhoff : P = F S RHS[] = $1 * PK2[$1]; // The first Piola Kirchhoff : P = F S
// x
P~{1}[] = Vector[CompXX[RHS[$1#1]], CompXY[RHS[#1]], CompXZ[RHS[#1]] ]; P~{1}[] = Vector[CompXX[RHS[$1#1]], CompXY[RHS[#1]], CompXZ[RHS[#1]] ];
// y
P~{2}[] = Vector[CompYX[RHS[$1#1]], CompYY[RHS[#1]], CompYZ[RHS[#1]] ]; P~{2}[] = Vector[CompYX[RHS[$1#1]], CompYY[RHS[#1]], CompYZ[RHS[#1]] ];
// z
P~{3}[] = Vector[CompZX[RHS[$1#1]], CompZY[RHS[#1]], CompZZ[RHS[#1]] ]; P~{3}[] = Vector[CompZX[RHS[$1#1]], CompZY[RHS[#1]], CompZZ[RHS[#1]] ];
// 5. The stiffness matrix : C_Tot_ij = C_Mat_ij + C_Geo_ij // The stiffness matrix: C_Tot_ij = C_Mat_ij + C_Geo_ij
//==========================================================
// 1. Geometric stiffness: C_Geo_ij
// (see (4.69) in "P. Wriggers, Nonlinear finite element methods, 2008")
// 5.1. Geometric stiffness "C_Geo_ij" (see formula (4.69) of "Wriggers, P.,
// 2008. Nonlinear finite element methods. Springer Science & Business
// Media.")
//==========================================================
// xx
C_Geo~{1}~{1}[] = PK2[$1]; C_Geo~{1}~{1}[] = PK2[$1];
// yx
C_Geo~{2}~{1}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{2}~{1}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// zx
C_Geo~{3}~{1}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{3}~{1}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// xy
C_Geo~{1}~{2}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{1}~{2}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// yy
C_Geo~{2}~{2}[] = PK2[$1]; C_Geo~{2}~{2}[] = PK2[$1];
// zy
C_Geo~{3}~{2}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{3}~{2}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// xz
C_Geo~{1}~{3}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{1}~{3}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// yz
C_Geo~{2}~{3}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]; C_Geo~{2}~{3}[] = Tensor[ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0];
// zz
C_Geo~{3}~{3}[] = PK2[$1]; C_Geo~{3}~{3}[] = PK2[$1];
// 2 Material stiffness: C_Mat_ij
// The material stiffness // 2.1. Material stiffness - the part resulting from "mu" : C_Mat_mu_ij
//========================
// xx C_Mat_mu~{1}~{1}[] = mu *
C_Mat_mu~{1}~{1}[] = mu * Tensor[ 2 * CompXX[$1#1] * CompXX[#1] + CompXY[#1] * CompXY[#1] + CompXZ[#1] * CompXZ[#1], Tensor[ 2 * CompXX[$1#1] * CompXX[#1] + CompXY[#1] * CompXY[#1] + CompXZ[#1] * CompXZ[#1],
CompXX[#1] * CompXY[#1], CompXX[#1] * CompXY[#1],
CompXX[#1] * CompXZ[#1], CompXX[#1] * CompXZ[#1],
CompXY[#1] * CompXX[#1], CompXY[#1] * CompXX[#1],
CompXX[#1] * CompXX[#1] + 2 * CompXY[#1] * CompXY[#1] + CompXZ[#1] * CompXZ[#1], CompXX[#1] * CompXX[#1] + 2 * CompXY[#1] * CompXY[#1] + CompXZ[#1] * CompXZ[#1],
CompXY[#1] * CompXZ[#1], CompXY[#1] * CompXZ[#1],
CompXZ[#1] * CompXX[#1], CompXZ[#1] * CompXX[#1],
CompXZ[#1] * CompXY[#1], CompXZ[#1] * CompXY[#1],
CompXX[#1] * CompXX[#1] + CompXY[#1] * CompXY[#1] + 2 * CompXZ[#1] * CompXZ[#1] ]; CompXX[#1] * CompXX[#1] + CompXY[#1] * CompXY[#1] + 2 * CompXZ[#1] * CompXZ[#1] ];
// yx C_Mat_mu~{2}~{1}[] = mu *
C_Mat_mu~{2}~{1}[] = mu * Tensor[ 2 * CompYX[$1#1] * CompXX[#1] + CompYY[#1] * CompXY[#1] + CompYZ[#1] * CompXZ[#1], Tensor[ 2 * CompYX[$1#1] * CompXX[#1] + CompYY[#1] * CompXY[#1] + CompYZ[#1] * CompXZ[#1],
CompYX[#1] * CompXY[#1], CompYX[#1] * CompXY[#1],
CompYX[#1] * CompXZ[#1], CompYX[#1] * CompXZ[#1],
CompYY[#1] * CompXX[#1], CompYY[#1] * CompXX[#1],
CompYX[#1] * CompXX[#1] + 2 * CompYY[#1] * CompXY[#1] + CompYZ[#1] * CompXZ[#1], CompYX[#1] * CompXX[#1] + 2 * CompYY[#1] * CompXY[#1] + CompYZ[#1] * CompXZ[#1],
CompYY[#1] * CompXZ[#1], CompYY[#1] * CompXZ[#1],
CompYZ[#1] * CompXX[#1], CompYZ[#1] * CompXX[#1],
CompYZ[#1] * CompXY[#1], CompYZ[#1] * CompXY[#1],
CompYX[#1] * CompXX[#1] + CompYY[#1] * CompXY[#1] + 2 * CompYZ[#1] * CompXZ[#1] ]; CompYX[#1] * CompXX[#1] + CompYY[#1] * CompXY[#1] + 2 * CompYZ[#1] * CompXZ[#1] ];
// zx C_Mat_mu~{3}~{1}[] = mu *
C_Mat_mu~{3}~{1}[] = mu * Tensor[ 2 * CompZX[$1#1] * CompXX[#1] + CompZY[#1] * CompXY[#1] + CompZZ[#1] * CompXZ[#1], Tensor[ 2 * CompZX[$1#1] * CompXX[#1] + CompZY[#1] * CompXY[#1] + CompZZ[#1] * CompXZ[#1],
CompZX[#1] * CompXY[#1], CompZX[#1] * CompXY[#1],
CompZX[#1] * CompXZ[#1], CompZX[#1] * CompXZ[#1],
CompZY[#1] * CompXX[#1], CompZY[#1] * CompXX[#1],
CompZX[#1] * CompXX[#1] + 2 * CompZY[#1] * CompXY[#1] + CompZZ[#1] * CompXZ[#1], CompZX[#1] * CompXX[#1] + 2 * CompZY[#1] * CompXY[#1] + CompZZ[#1] * CompXZ[#1],
CompZY[#1] * CompXZ[#1], CompZY[#1] * CompXZ[#1],
CompZZ[#1] * CompXX[#1], CompZZ[#1] * CompXX[#1],
CompZZ[#1] * CompXY[#1], CompZZ[#1] * CompXY[#1],
CompZX[#1] * CompXX[#1] + CompZY[#1] * CompXY[#1] + 2 * CompZZ[#1] * CompXZ[#1] ]; CompZX[#1] * CompXX[#1] + CompZY[#1] * CompXY[#1] + 2 * CompZZ[#1] * CompXZ[#1] ];
// xy C_Mat_mu~{1}~{2}[] = mu *
C_Mat_mu~{1}~{2}[] = mu * Tensor[ 2 * CompXX[$1#1] * CompYX[#1] + CompXY[#1] * CompYY[#1] + CompXZ[#1] * CompYZ[#1], Tensor[ 2 * CompXX[$1#1] * CompYX[#1] + CompXY[#1] * CompYY[#1] + CompXZ[#1] * CompYZ[#1],
CompXX[#1] * CompYY[#1], CompXX[#1] * CompYY[#1],
CompXX[#1] * CompYZ[#1], CompXX[#1] * CompYZ[#1],
CompXY[#1] * CompYX[#1], CompXY[#1] * CompYX[#1],
CompXX[#1] * CompYX[#1] + 2 * CompXY[#1] * CompYY[#1] + CompXZ[#1] * CompYZ[#1], CompXX[#1] * CompYX[#1] + 2 * CompXY[#1] * CompYY[#1] + CompXZ[#1] * CompYZ[#1],
CompXY[#1] * CompYZ[#1], CompXY[#1] * CompYZ[#1],
CompXZ[#1] * CompYX[#1], CompXZ[#1] * CompYX[#1],
CompXZ[#1] * CompYY[#1], CompXZ[#1] * CompYY[#1],
CompXX[#1] * CompYX[#1] + CompXY[#1] * CompYY[#1] + 2 * CompXZ[#1] * CompYZ[#1] ]; CompXX[#1] * CompYX[#1] + CompXY[#1] * CompYY[#1] + 2 * CompXZ[#1] * CompYZ[#1] ];
// yy C_Mat_mu~{2}~{2}[] = mu *
C_Mat_mu~{2}~{2}[] = mu * Tensor[ 2 * CompYX[$1#1] * CompYX[#1] + CompYY[#1] * CompYY[#1] + CompYZ[#1] * CompYZ[#1], Tensor[ 2 * CompYX[$1#1] * CompYX[#1] + CompYY[#1] * CompYY[#1] + CompYZ[#1] * CompYZ[#1],
CompYX[#1] * CompYY[#1], CompYX[#1] * CompYY[#1],
CompYX[#1] * CompYZ[#1], CompYX[#1] * CompYZ[#1],
CompYY[#1] * CompYX[#1], CompYY[#1] * CompYX[#1],
CompYX[#1] * CompYX[#1] + 2 * CompYY[#1] * CompYY[#1] + CompYZ[#1] * CompYZ[#1], CompYX[#1] * CompYX[#1] + 2 * CompYY[#1] * CompYY[#1] + CompYZ[#1] * CompYZ[#1],
CompYY[#1] * CompYZ[#1], CompYY[#1] * CompYZ[#1],
CompYZ[#1] * CompYX[#1], CompYZ[#1] * CompYX[#1],
CompYZ[#1] * CompYY[#1], CompYZ[#1] * CompYY[#1],
CompYX[#1] * CompYX[#1] + CompYY[#1] * CompYY[#1] + 2 * CompYZ[#1] * CompYZ[#1] ]; CompYX[#1] * CompYX[#1] + CompYY[#1] * CompYY[#1] + 2 * CompYZ[#1] * CompYZ[#1] ];
// zy C_Mat_mu~{3}~{2}[] = mu *
C_Mat_mu~{3}~{2}[] = mu * Tensor[ 2 * CompZX[$1#1] * CompYX[#1] + CompZY[#1] * CompYY[#1] + CompZZ[#1] * CompYZ[#1], Tensor[ 2 * CompZX[$1#1] * CompYX[#1] + CompZY[#1] * CompYY[#1] + CompZZ[#1] * CompYZ[#1],
CompZX[#1] * CompYY[#1], CompZX[#1] * CompYY[#1],
CompZX[#1] * CompYZ[#1], CompZX[#1] * CompYZ[#1],
CompZY[#1] * CompYX[#1], CompZY[#1] * CompYX[#1],
CompZX[#1] * CompYX[#1] + 2 * CompZY[#1] * CompYY[#1] + CompZZ[#1] * CompYZ[#1], CompZX[#1] * CompYX[#1] + 2 * CompZY[#1] * CompYY[#1] + CompZZ[#1] * CompYZ[#1],
CompZY[#1] * CompYZ[#1], CompZY[#1] * CompYZ[#1],
CompZZ[#1] * CompYX[#1], CompZZ[#1] * CompYX[#1],
CompZZ[#1] * CompYY[#1], CompZZ[#1] * CompYY[#1],
CompZX[#1] * CompYX[#1] + CompZY[#1] * CompYY[#1] + 2 * CompZZ[#1] * CompYZ[#1] ]; CompZX[#1] * CompYX[#1] + CompZY[#1] * CompYY[#1] + 2 * CompZZ[#1] * CompYZ[#1] ];
// xz C_Mat_mu~{1}~{3}[] = mu *
C_Mat_mu~{1}~{3}[] = mu * Tensor[ 2 * CompXX[$1#1] * CompZX[#1] + CompXY[#1] * CompZY[#1] + CompXZ[#1] * CompZZ[#1], Tensor[ 2 * CompXX[$1#1] * CompZX[#1] + CompXY[#1] * CompZY[#1] + CompXZ[#1] * CompZZ[#1],
CompXX[#1] * CompZY[#1], CompXX[#1] * CompZY[#1],
CompXX[#1] * CompZZ[#1], CompXX[#1] * CompZZ[#1],
CompXY[#1] * CompZX[#1], CompXY[#1] * CompZX[#1],
CompXX[#1] * CompZX[#1] + 2 * CompXY[#1] * CompZY[#1] + CompXZ[#1] * CompZZ[#1], CompXX[#1] * CompZX[#1] + 2 * CompXY[#1] * CompZY[#1] + CompXZ[#1] * CompZZ[#1],
CompXY[#1] * CompZZ[#1], CompXY[#1] * CompZZ[#1],
CompXZ[#1] * CompZX[#1], CompXZ[#1] * CompZX[#1],
CompXZ[#1] * CompZY[#1], CompXZ[#1] * CompZY[#1],
CompXX[#1] * CompZX[#1] + CompXY[#1] * CompZY[#1] + 2 * CompXZ[#1] * CompZZ[#1] ]; CompXX[#1] * CompZX[#1] + CompXY[#1] * CompZY[#1] + 2 * CompXZ[#1] * CompZZ[#1] ];
// yz C_Mat_mu~{2}~{3}[] = mu *
C_Mat_mu~{2}~{3}[] = mu * Tensor[ 2 * CompYX[$1#1] * CompZX[#1] + CompYY[#1] * CompZY[#1] + CompYZ[#1] * CompZZ[#1], Tensor[ 2 * CompYX[$1#1] * CompZX[#1] + CompYY[#1] * CompZY[#1] + CompYZ[#1] * CompZZ[#1],
CompYX[#1] * CompZY[#1], CompYX[#1] * CompZY[#1],
CompYX[#1] * CompZZ[#1], CompYX[#1] * CompZZ[#1],
CompYY[#1] * CompZX[#1], CompYY[#1] * CompZX[#1],
CompYX[#1] * CompZX[#1] + 2 * CompYY[#1] * CompZY[#1] + CompYZ[#1] * CompZZ[#1], CompYX[#1] * CompZX[#1] + 2 * CompYY[#1] * CompZY[#1] + CompYZ[#1] * CompZZ[#1],
CompYY[#1] * CompZZ[#1], CompYY[#1] * CompZZ[#1],
CompYZ[#1] * CompZX[#1], CompYZ[#1] * CompZX[#1],
CompYZ[#1] * CompZY[#1], CompYZ[#1] * CompZY[#1],
CompYX[#1] * CompZX[#1] + CompYY[#1] * CompZY[#1] + 2 * CompYZ[#1] * CompZZ[#1] ]; CompYX[#1] * CompZX[#1] + CompYY[#1] * CompZY[#1] + 2 * CompYZ[#1] * CompZZ[#1] ];
// zz C_Mat_mu~{3}~{3}[] = mu *
C_Mat_mu~{3}~{3}[] = mu * Tensor[ 2 * CompZX[$1#1] * CompZX[#1] + CompZY[#1] * CompZY[#1] + CompZZ[#1] * CompZZ[#1], Tensor[ 2 * CompZX[$1#1] * CompZX[#1] + CompZY[#1] * CompZY[#1] + CompZZ[#1] * CompZZ[#1],
CompZX[#1] * CompZY[#1], CompZX[#1] * CompZY[#1],
CompZX[#1] * CompZZ[#1], CompZX[#1] * CompZZ[#1],
CompZY[#1] * CompZX[#1], CompZY[#1] * CompZX[#1],
CompZX[#1] * CompZX[#1] + 2 * CompZY[#1] * CompZY[#1] + CompZZ[#1] * CompZZ[#1], CompZX[#1] * CompZX[#1] + 2 * CompZY[#1] * CompZY[#1] + CompZZ[#1] * CompZZ[#1],
CompZY[#1] * CompZZ[#1], CompZY[#1] * CompZZ[#1],
CompZZ[#1] * CompZX[#1], CompZZ[#1] * CompZX[#1],
CompZZ[#1] * CompZY[#1], CompZZ[#1] * CompZY[#1],
CompZX[#1] * CompZX[#1] + CompZY[#1] * CompZY[#1] + 2 * CompZZ[#1] * CompZZ[#1] ]; CompZX[#1] * CompZX[#1] + CompZY[#1] * CompZY[#1] + 2 * CompZZ[#1] * CompZZ[#1] ];
// 5.2.2. Material stiffness - the part resulting from "lambda" : C_Mat_lambda_ij // 2.2. Material stiffness - the part resulting from "lambda" : C_Mat_lambda_ij
//===============================================================================
// xx C_Mat_lambda~{1}~{1}[] = lambda *
C_Mat_lambda~{1}~{1}[] = lambda * Tensor[ CompXX[$1#1] * CompXX[#1], CompXX[#1] * CompXY[#1], CompXX[#1] * CompXZ[#1], Tensor[ CompXX[$1#1] * CompXX[#1], CompXX[#1] * CompXY[#1], CompXX[#1] * CompXZ[#1],
CompXY[#1] * CompXX[#1], CompXY[#1] * CompXY[#1], CompXY[#1] * CompXZ[#1], CompXY[#1] * CompXX[#1], CompXY[#1] * CompXY[#1], CompXY[#1] * CompXZ[#1],
CompXZ[#1] * CompXX[#1], CompXZ[#1] * CompXY[#1], CompXZ[#1] * CompXZ[#1]]; CompXZ[#1] * CompXX[#1], CompXZ[#1] * CompXY[#1], CompXZ[#1] * CompXZ[#1]];
// yx C_Mat_lambda~{2}~{1}[] = lambda *
C_Mat_lambda~{2}~{1}[] = lambda * Tensor[ CompYX[$1#1] * CompXX[#1], CompYX[#1] * CompXY[#1], CompYX[#1] * CompXZ[#1], Tensor[ CompYX[$1#1] * CompXX[#1], CompYX[#1] * CompXY[#1], CompYX[#1] * CompXZ[#1],
CompYY[#1] * CompXX[#1], CompYY[#1] * CompXY[#1], CompYY[#1] * CompXZ[#1], CompYY[#1] * CompXX[#1], CompYY[#1] * CompXY[#1], CompYY[#1] * CompXZ[#1],
CompYZ[#1] * CompXX[#1], CompYZ[#1] * CompXY[#1], CompYZ[#1] * CompXZ[#1]]; CompYZ[#1] * CompXX[#1], CompYZ[#1] * CompXY[#1], CompYZ[#1] * CompXZ[#1]];
// zx C_Mat_lambda~{3}~{1}[] = lambda *
C_Mat_lambda~{3}~{1}[] = lambda * Tensor[ CompZX[$1#1] * CompXX[#1], CompZX[#1] * CompXY[#1], CompZX[#1] * CompXZ[#1], Tensor[ CompZX[$1#1] * CompXX[#1], CompZX[#1] * CompXY[#1], CompZX[#1] * CompXZ[#1],
CompZY[#1] * CompXX[#1], CompZY[#1] * CompXY[#1], CompZY[#1] * CompXZ[#1], CompZY[#1] * CompXX[#1], CompZY[#1] * CompXY[#1], CompZY[#1] * CompXZ[#1],
CompZZ[#1] * CompXX[#1], CompZZ[#1] * CompXY[#1], CompZZ[#1] * CompXZ[#1]]; CompZZ[#1] * CompXX[#1], CompZZ[#1] * CompXY[#1], CompZZ[#1] * CompXZ[#1]];
// xy C_Mat_lambda~{1}~{2}[] = lambda *
C_Mat_lambda~{1}~{2}[] = lambda * Tensor[ CompXX[$1#1] * CompYX[#1], CompXX[#1] * CompYY[#1], CompXX[#1] * CompYZ[#1], Tensor[ CompXX[$1#1] * CompYX[#1], CompXX[#1] * CompYY[#1], CompXX[#1] * CompYZ[#1],
CompXY[#1] * CompYX[#1], CompXY[#1] * CompYY[#1], CompXY[#1] * CompYZ[#1], CompXY[#1] * CompYX[#1], CompXY[#1] * CompYY[#1], CompXY[#1] * CompYZ[#1],
CompXZ[#1] * CompYX[#1], CompXZ[#1] * CompYY[#1], CompXZ[#1] * CompYZ[#1]]; CompXZ[#1] * CompYX[#1], CompXZ[#1] * CompYY[#1], CompXZ[#1] * CompYZ[#1]];
// yy C_Mat_lambda~{2}~{2}[] = lambda *
C_Mat_lambda~{2}~{2}[] = lambda * Tensor[ CompYX[$1#1] * CompYX[#1], CompYX[#1] * CompYY[#1], CompYX[#1] * CompYZ[#1], Tensor[ CompYX[$1#1] * CompYX[#1], CompYX[#1] * CompYY[#1], CompYX[#1] * CompYZ[#1],
CompYY[#1] * CompYX[#1], CompYY[#1] * CompYY[#1], CompYY[#1] * CompYZ[#1], CompYY[#1] * CompYX[#1], CompYY[#1] * CompYY[#1], CompYY[#1] * CompYZ[#1],
CompYZ[#1] * CompYX[#1], CompYZ[#1] * CompYY[#1], CompYZ[#1] * CompYZ[#1]]; CompYZ[#1] * CompYX[#1], CompYZ[#1] * CompYY[#1], CompYZ[#1] * CompYZ[#1]];
// zy C_Mat_lambda~{3}~{2}[] = lambda *
C_Mat_lambda~{3}~{2}[] = lambda * Tensor[ CompZX[$1#1] * CompYX[#1], CompZX[#1] * CompYY[#1], CompZX[#1] * CompYZ[#1], Tensor[ CompZX[$1#1] * CompYX[#1], CompZX[#1] * CompYY[#1], CompZX[#1] * CompYZ[#1],
CompZY[#1] * CompYX[#1], CompZY[#1] * CompYY[#1], CompZY[#1] * CompYZ[#1], CompZY[#1] * CompYX[#1], CompZY[#1] * CompYY[#1], CompZY[#1] * CompYZ[#1],
CompZZ[#1] * CompYX[#1], CompZZ[#1] * CompYY[#1], CompZZ[#1] * CompYZ[#1]]; CompZZ[#1] * CompYX[#1], CompZZ[#1] * CompYY[#1], CompZZ[#1] * CompYZ[#1]];
// xz C_Mat_lambda~{1}~{3}[] = lambda *
C_Mat_lambda~{1}~{3}[] = lambda * Tensor[ CompXX[$1#1] * CompZX[#1], CompXX[#1] * CompZY[#1], CompXX[#1] * CompZZ[#1], Tensor[ CompXX[$1#1] * CompZX[#1], CompXX[#1] * CompZY[#1], CompXX[#1] * CompZZ[#1],
CompXY[#1] * CompZX[#1], CompXY[#1] * CompZY[#1], CompXY[#1] * CompZZ[#1], CompXY[#1] * CompZX[#1], CompXY[#1] * CompZY[#1], CompXY[#1] * CompZZ[#1],
CompXZ[#1] * CompZX[#1], CompXZ[#1] * CompZY[#1], CompXZ[#1] * CompZZ[#1]]; CompXZ[#1] * CompZX[#1], CompXZ[#1] * CompZY[#1], CompXZ[#1] * CompZZ[#1]];
// yz C_Mat_lambda~{2}~{3}[] = lambda *
C_Mat_lambda~{2}~{3}[] = lambda * Tensor[ CompYX[$1#1] * CompZX[#1], CompYX[#1] * CompZY[#1], CompYX[#1] * CompZZ[#1], Tensor[ CompYX[$1#1] * CompZX[#1], CompYX[#1] * CompZY[#1], CompYX[#1] * CompZZ[#1],
CompYY[#1] * CompZX[#1], CompYY[#1] * CompZY[#1], CompYY[#1] * CompZZ[#1], CompYY[#1] * CompZX[#1], CompYY[#1] * CompZY[#1], CompYY[#1] * CompZZ[#1],
CompYZ[#1] * CompZX[#1], CompYZ[#1] * CompZY[#1], CompYZ[#1] * CompZZ[#1]]; CompYZ[#1] * CompZX[#1], CompYZ[#1] * CompZY[#1], CompYZ[#1] * CompZZ[#1]];
// zz C_Mat_lambda~{3}~{3}[] = lambda *
C_Mat_lambda~{3}~{3}[] = lambda * Tensor[ CompZX[$1#1] * CompZX[#1], CompZX[#1] * CompZY[#1], CompZX[#1] * CompZZ[#1], Tensor[ CompZX[$1#1] * CompZX[#1], CompZX[#1] * CompZY[#1], CompZX[#1] * CompZZ[#1],
CompZY[#1] * CompZX[#1], CompZY[#1] * CompZY[#1], CompZY[#1] * CompZZ[#1], CompZY[#1] * CompZX[#1], CompZY[#1] * CompZY[#1], CompZY[#1] * CompZZ[#1],
CompZZ[#1] * CompZX[#1], CompZZ[#1] * CompZY[#1], CompZZ[#1] * CompZZ[#1]]; CompZZ[#1] * CompZX[#1], CompZZ[#1] * CompZY[#1], CompZZ[#1] * CompZZ[#1]];
// 5.2. Total material stiffness : C_Mat_ij = C_Mat_lambda_ij + C_Mat_mu_ij // Total material stiffness : C_Mat_ij = C_Mat_lambda_ij + C_Mat_mu_ij
//==========================================================================
For i In {1:3} For i In {1:3}
For j In {1:3} For j In {1:3}
C_Mat~{i}~{j}[] = C_Mat_lambda~{i}~{j}[$1#1] + Transpose[C_Mat_mu~{i}~{j}[#1]] ; C_Mat~{i}~{j}[] = C_Mat_lambda~{i}~{j}[$1#1] + Transpose[C_Mat_mu~{i}~{j}[#1]] ;
EndFor EndFor
EndFor EndFor
} // Total stiffness : C_Mat_ij + C_Geo_ij
Function {
// 5.3 Total stiffness : C_Mat_ij + C_Geo_ij
//===========================================
For i In {1:3} For i In {1:3}
For j In {1:3} For j In {1:3}
C_Tot~{i}~{j}[] = C_Mat~{i}~{j}[$1] + C_Geo~{i}~{j}[$1]; C_Tot~{i}~{j}[] = C_Mat~{i}~{j}[$1] + C_Geo~{i}~{j}[$1];
...@@ -276,25 +201,159 @@ Function { ...@@ -276,25 +201,159 @@ Function {
Constraint { Constraint {
{ Name Displacement_1 ; // x { Name Displacement_1 ; // x
Case { Case {
{ Region Left; Value 0.0 ; } { Region Sur_Clamp; Value 0.0 ; }
} }
} }
{ Name Displacement_2 ; // y { Name Displacement_2 ; // y
Case { Case {
{ Region Left; Value 0.0 ; } { Region Sur_Clamp; Value 0.0 ; }
} }
} }
{ Name Displacement_3 ; // z { Name Displacement_3 ; // z
Case { Case {
{ Region Left; Value 0.0 ; } { Region Sur_Clamp; Value 0.0 ; }
}
}
}
Jacobian {
{ Name JVol ;
Case {
{ Region All ; Jacobian Vol ; }
}
}
{ Name JSur ;
Case {
{ Region All ; Jacobian Sur ; }
}
}
{ Name JLin ;
Case {
{ Region All ; Jacobian Lin ; }
}
}
}
Integration {
{ Name GradGrad ;
Case { {Type Gauss ;
Case {
{ GeoElement Point ; NumberOfPoints 1 ; }
{ GeoElement Line ; NumberOfPoints 4 ; }
{ GeoElement Triangle ; NumberOfPoints 4 ; }
{ GeoElement Quadrangle ; NumberOfPoints 4 ; }
{ GeoElement Tetrahedron ; NumberOfPoints 4 ; }
{ GeoElement Hexahedron ; NumberOfPoints 6 ; }
{ GeoElement Prism ; NumberOfPoints 9 ; } }
}
}
}
}
FunctionSpace {
For i In {1:3}
{ Name H_u~{i} ; Type Form0 ;
BasisFunction {
{ Name sn~{i} ; NameOfCoef un~{i} ; Function BF_Node ;
Support Region[ { Vol_Mec} ] ; Entity NodesOf[ All ] ; }
}
Constraint {
{ NameOfCoef un~{i} ;
EntityType NodesOf ; NameOfConstraint Displacement~{i} ; }
}
}
EndFor
}
Formulation {
{ Name Total_Lagrangian ; Type FemEquation ;
Quantity {
For i In {1:3}
{ Name u~{i} ; Type Local ; NameOfSpace H_u~{i} ; }
EndFor
}
Equation {
For i In {1:3}
For j In {1:3}
Galerkin { [ C_Tot~{j}~{i}[ TensorDiag[1.0, 1.0, 1.0] +
TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ] *
Dof{d u~{i}}, {d u~{j}} ] ;
In Vol_Mec ; Jacobian JVol ; Integration GradGrad ; }
Galerkin { [-C_Tot~{j}~{i}[ TensorDiag[1.0, 1.0, 1.0] +
TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ] *
{d u~{i}}, {d u~{j}} ] ;
In Vol_Mec ; Jacobian JVol ; Integration GradGrad ; }
EndFor
Galerkin { [ P~{i}[ TensorDiag[1., 1., 1.] +
TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ] , {d u~{i}} ] ;
In Vol_Mec; Jacobian JVol; Integration GradGrad; }
EndFor
Galerkin { [ - CompX[ -force_ext[] ] , {u~{1}} ] ;
In Vol_Mec; Jacobian JVol; Integration GradGrad; }
Galerkin { [ - CompY[ -force_ext[] ] , {u~{2}} ] ;
In Vol_Mec; Jacobian JVol; Integration GradGrad; }
Galerkin { [ - CompZ[ -force_ext[] ] , {u~{3}} ] ;
In Vol_Mec; Jacobian JVol; Integration GradGrad; }
} }
} }
} }
PostProcessing {
{ Name Total_Lagrangian ; NameOfFormulation Total_Lagrangian ; NameOfSystem Sys_Mec;
PostQuantity {
{ Name u ; Value{ Term{ [ Vector[ {u~{1}}, {u~{2}}, {u~{3}} ]];
In Vol_Mec ; Jacobian JVol ; } } }
{ Name um ; Value{ Term{ [ Norm[ Vector[ {u~{1}}, {u~{2}}, {u~{3}} ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name ux ; Value{ Term{ [ {u~{1}} ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name uy ; Value{ Term{ [ {u~{2}} ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name uz ; Value{ Term{ [ {u~{3}} ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_xx; Value{ Term { [ CompXX[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_xy; Value{ Term { [ CompXY[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_xz; Value{ Term { [ CompXZ[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_yx; Value{ Term { [ CompYX[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_yy; Value{ Term { [ CompYY[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_yz; Value{ Term { [ CompYZ[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_zx; Value{ Term { [ CompZX[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_zy; Value{ Term { [ CompZY[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name PK2_zz; Value{ Term { [ CompZZ[PK2[ (TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_xx ; Value { Term { [ CompXX[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_xy ; Value { Term { [ CompXY[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_xz ; Value { Term { [ CompXZ[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_yx ; Value { Term { [ CompYX[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_yy ; Value { Term { [ CompYY[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_yz ; Value { Term { [ CompYZ[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_zx ; Value { Term { [ CompZX[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_zy ; Value { Term { [ CompZY[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
{ Name F_tot_zz ; Value { Term { [ CompZZ[(TensorDiag[1.0, 1.0, 1.0] + TensorV[{d u~{1}}, {d u~{2}}, {d u~{3}} ] ) ] ] ;
In Vol_Mec ; Jacobian JVol; } } }
}
}
}
Include "Jacobian_Lib.pro"
Include "Integration_Lib.pro"
Include "Total_Lagrangian.pro"
Resolution { Resolution {
{ Name Mec_SMP ; { Name Mec_SMP ;
...@@ -304,43 +363,17 @@ Resolution { ...@@ -304,43 +363,17 @@ Resolution {
Operation { Operation {
SetGlobalSolverOptions["-petsc_prealloc 400"]; SetGlobalSolverOptions["-petsc_prealloc 400"];
CreateDir["res/"]; CreateDir["res/"];
Evaluate[ $syscount = 0 ];
InitSolution[Sys_Mec]; InitSolution[Sys_Mec];
Evaluate[ $var_DTime = period/(num_steps)]; Generate[Sys_Mec]; Solve[Sys_Mec];
Evaluate[ $var_Dt_Max = period/(num_steps)]; Generate[Sys_Mec]; GetResidual[Sys_Mec, $res0]; Evaluate[ $res = $res0, $iter = 0 ];
Print[{$iter, $res, $res / $res0}, Format "Residual %03g: abs %14.12e rel %14.12e"];
TimeLoopTheta[t_0, 1.0 * t_end, dtime[], theta_value]{ //TimeLoopNewmark[t_0, t_end, dtime[], beta, gamma] { While[$res > tol_abs[] && $res / $res0 > tol_rel[] && $res / $res0 <= 1 && $iter < iter_max]{
Solve[Sys_Mec]; Evaluate[ $syscount = $syscount + 1 ];
Generate[Sys_Mec]; Solve[Sys_Mec]; Evaluate[ $syscount = $syscount + 1 ]; Generate[Sys_Mec]; GetResidual[Sys_Mec, $res]; Evaluate[ $iter = $iter + 1 ];
Generate[Sys_Mec]; GetResidual[Sys_Mec, $res0]; Evaluate[ $res = $res0, $iter = 0 ];
Print[{$iter, $res, $res / $res0}, Format "Residual %03g: abs %14.12e rel %14.12e"]; Print[{$iter, $res, $res / $res0}, Format "Residual %03g: abs %14.12e rel %14.12e"];
While[$res > tol_abs[] && $res / $res0 > tol_rel[] && $res / $res0 <= 1 && $iter < iter_max]{
Solve[Sys_Mec]; Evaluate[ $syscount = $syscount + 1 ];
Generate[Sys_Mec]; GetResidual[Sys_Mec, $res]; Evaluate[ $iter = $iter + 1 ];
Print[{$iter, $res, $res / $res0}, Format "Residual %03g: abs %14.12e rel %14.12e"];
}
Test[ ($iter < iter_max) && ($res / $res0 <= 1) ]{
SaveSolution[Sys_Mec];
Test[ GetNumberRunTime[visu]{"Input/Solver/Visu"} ]{
PostOperation[Mec];
}
Test[ ($iter < iter_max / 10) && ($DTime < dt_max[]) ]{
Evaluate[ $dt_new = Min[$DTime * 2.0, dt_max[]] ];
Print[{$dt_new}, Format "*** Fast convergence: increasing time step to %g"];
SetDTime[$dt_new];
}
}
{
Evaluate[ $dt_new = $DTime/2.0 ];
Print[{$iter, $dt_new}, Format "*** Non convergence (iter %g): recomputing with reduced step %g"];
SetTime[$Time - $DTime];
SetTimeStep[$TimeStep - 1];
RemoveLastSolution[Sys_Mec];
SetDTime[$dt_new];
Evaluate[ $var_DTime = $dt_new ];
}
} }
Print[{$syscount}, Format "Total number of linear systems solved: %g"]; SaveSolution[Sys_Mec];
PostOperation[Mec];
} }
} }
} }
...@@ -348,33 +381,33 @@ Resolution { ...@@ -348,33 +381,33 @@ Resolution {
PostOperation { PostOperation {
{ Name Mec ; NameOfPostProcessing Total_Lagrangian; { Name Mec ; NameOfPostProcessing Total_Lagrangian;
Operation { Operation {
Print[ u, OnElementsOf Domain_Mecha, File "res/u.pos"] ; Print[ u, OnElementsOf Vol_Mec, File "res/u.pos"] ;
Print[ PK2_xx, OnElementsOf Domain_Mecha, File "res/PK2_xx.pos"] ; Print[ PK2_xx, OnElementsOf Vol_Mec, File "res/PK2_xx.pos"] ;
Print[ PK2_xy, OnElementsOf Domain_Mecha, File "res/PK2_xy.pos"] ; Print[ PK2_xy, OnElementsOf Vol_Mec, File "res/PK2_xy.pos"] ;
Print[ PK2_xz, OnElementsOf Domain_Mecha, File "res/PK2_xz.pos"] ; Print[ PK2_xz, OnElementsOf Vol_Mec, File "res/PK2_xz.pos"] ;
Print[ PK2_yx, OnElementsOf Domain_Mecha, File "res/PK2_yx.pos"] ; Print[ PK2_yx, OnElementsOf Vol_Mec, File "res/PK2_yx.pos"] ;
Print[ PK2_yy, OnElementsOf Domain_Mecha, File "res/PK2_yy.pos"] ; Print[ PK2_yy, OnElementsOf Vol_Mec, File "res/PK2_yy.pos"] ;
Print[ PK2_yz, OnElementsOf Domain_Mecha, File "res/PK2_yz.pos"] ; Print[ PK2_yz, OnElementsOf Vol_Mec, File "res/PK2_yz.pos"] ;
Print[ PK2_zx, OnElementsOf Domain_Mecha, File "res/PK2_zx.pos"] ; Print[ PK2_zx, OnElementsOf Vol_Mec, File "res/PK2_zx.pos"] ;
Print[ PK2_zy, OnElementsOf Domain_Mecha, File "res/PK2_zy.pos"] ; Print[ PK2_zy, OnElementsOf Vol_Mec, File "res/PK2_zy.pos"] ;
Print[ PK2_zz, OnElementsOf Domain_Mecha, File "res/PK2_zz.pos"] ; Print[ PK2_zz, OnElementsOf Vol_Mec, File "res/PK2_zz.pos"] ;
Print[ F_tot_xx, OnElementsOf Domain_Mecha, File "res/F_tot_xx.pos"] ; Print[ F_tot_xx, OnElementsOf Vol_Mec, File "res/F_tot_xx.pos"] ;
Print[ F_tot_xy, OnElementsOf Domain_Mecha, File "res/F_tot_xy.pos"] ; Print[ F_tot_xy, OnElementsOf Vol_Mec, File "res/F_tot_xy.pos"] ;
Print[ F_tot_xz, OnElementsOf Domain_Mecha, File "res/F_tot_xz.pos"] ; Print[ F_tot_xz, OnElementsOf Vol_Mec, File "res/F_tot_xz.pos"] ;
Print[ F_tot_yx, OnElementsOf Domain_Mecha, File "res/F_tot_yx.pos"] ; Print[ F_tot_yx, OnElementsOf Vol_Mec, File "res/F_tot_yx.pos"] ;
Print[ F_tot_yy, OnElementsOf Domain_Mecha, File "res/F_tot_yy.pos"] ; Print[ F_tot_yy, OnElementsOf Vol_Mec, File "res/F_tot_yy.pos"] ;
Print[ F_tot_yz, OnElementsOf Domain_Mecha, File "res/F_tot_yz.pos"] ; Print[ F_tot_yz, OnElementsOf Vol_Mec, File "res/F_tot_yz.pos"] ;
Print[ F_tot_zx, OnElementsOf Domain_Mecha, File "res/F_tot_zx.pos"] ; Print[ F_tot_zx, OnElementsOf Vol_Mec, File "res/F_tot_zx.pos"] ;
Print[ F_tot_zy, OnElementsOf Domain_Mecha, File "res/F_tot_zy.pos"] ; Print[ F_tot_zy, OnElementsOf Vol_Mec, File "res/F_tot_zy.pos"] ;
Print[ F_tot_zz, OnElementsOf Domain_Mecha, File "res/F_tot_zz.pos"] ; Print[ F_tot_zz, OnElementsOf Vol_Mec, File "res/F_tot_zz.pos"] ;
} }
} }
} }
DefineConstant[ DefineConstant[
R_ = {"Mec_SMP", Name "GetDP/1ResolutionChoices", Visible 0}, R_ = {"Mec_SMP", Name "GetDP/1ResolutionChoices", Visible 0},
C_ = {"-solve -bin -v 3 -v2 -pos", Name "GetDP/9ComputeCommand", Visible 0}, C_ = {"-solve -bin -v 3 -v2", Name "GetDP/9ComputeCommand", Visible 0},
P_ = { "", Name "GetDP/2PostOperationChoices", Visible 0} P_ = { "", Name "GetDP/2PostOperationChoices", Visible 0}
]; ];
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment