[Getdp] Axisymmetric linear elasticity problem - someone to help?
Yves DUPUIS
yves.dupuis at S2M.FR
Fri Jan 15 12:23:42 CET 2016
Hello everyone,
Based on the Wiki example '2D linear elasticity' I would like to define an axisymmetric problem for a cylinder under external pressure.
The geometry is simple : a rectangular shape. Pressure is applied on outer surface. Upper and lower edges are clamped along Y direction (Y is axis of symmetry for geometry). I use Jacobian VolAxi and SurAxi. The result is a global displacement of geometry as if it was just a 2D square and not a symmetry of revolution around Y axis. So my question is rather simple : is VolAxi and SurAxi are suited for axisymmetric linear elasticty problems? If so, could you help me to understand the results.
Below is the code for .geo and .pro files :
AxiElasticity.geo file
r0 = 10e-3;
r1 = 80e-3;
L = 100e-3;
lc = 5e-3;
Point(1) = {r0,0.0,0.0,lc};
Point(2) = {r1-1e-6,0.0,0.0,lc};
Point(3) = {r1-1e-6,L,0.0,lc};
Point(4) = {r0,L,0.0,lc};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line Loop(5) = {1,2,3,4};
Plane Surface(6) = {5};
Physical Surface(100) = {6}; // Cyl
Physical Line(101) = {2}; // ForceCyl
Physical Line(102) = {1,3}; // Edges
Transfinite Line{4,2} = 150;
AxiElasticity.pro file
Group {
Domain_Disp = Region[100];
Domain_Force = Region[101];
Edges = Region[102] ;
DomainTot = Region[ {Domain_Disp, Domain_Force} ];
DefineGroup[ DomainInf ] ;
DefineVariable[ Val_Rint, Val_Rext ] ;
}
Function {
E = 2e11;
v = 0.3;
Lambda = E*v/((1+v)*(1-2*v));
Mu = E/(2*(1+v));
Pression = 10e6;
r0 = 10e-3;
r1 = 80e-3;
L = 100e-3;
C_m[ Domain_Disp ] = Tensor[Lambda+2*Mu,Lambda,0,Lambda,Lambda+2*Mu,0,0,0,Mu];
F[Domain_Force] = Pression*Vector[-1,0,0];
}
Constraint {
{ Name DeplacementX ; Type Assign ;
Case {
}
}
{ Name DeplacementY ; Type Assign ;
Case {
{ Region Edges; Value 0.0 ; }
}
}
{ Name DeplacementZ ; Type Assign ;
Case {
}
}
}
Jacobian {
{ Name MyJac ;
Case {
{ Region DomainInf ; Jacobian VolAxiSphShell {Val_Rint, Val_Rext} ; }
{ Region Domain_Force ; Jacobian SurAxi ; }
{ Region All ; Jacobian VolAxi ; }
}
}
}
Integration {
{ Name GradGrad ;
Case {
{ Type Gauss ;
Case {
{ GeoElement Point ; NumberOfPoints 1 ; }
{ GeoElement Line ; NumberOfPoints 2 ; }
{ GeoElement Triangle ; NumberOfPoints 4 ; }
{ GeoElement Quadrangle ; NumberOfPoints 4 ; }
}
}
}
}
}
/* --------------------------------------------------------------------------*/
/* Mechanics - Displacement ux, uy, uz formulations */
FunctionSpace {
{ Name H_u_Mec2D ; Type Vector ;
BasisFunction {
{ Name sxn ; NameOfCoef uxn ; Function BF_NodeX ;
dFunction {BF_NodeX_D12, BF_Zero} ;
Support DomainTot ; Entity NodesOf[ All ] ; }
{ Name syn ; NameOfCoef uyn ; Function BF_NodeY ;
dFunction {BF_NodeY_D12, BF_Zero} ;
Support DomainTot ; Entity NodesOf[ All ] ; }
}
Constraint {
{ NameOfCoef uxn ;
EntityType NodesOf ; NameOfConstraint DeplacementX ; }
{ NameOfCoef uyn ;
EntityType NodesOf ; NameOfConstraint DeplacementY ; }
}
}
}
/*------------------------------------------------------------------------*/
Formulation {
{ Name Mec2D_u ; Type FemEquation ;
Quantity {
{ Name u ; Type Local ; NameOfSpace H_u_Mec2D ; }
}
Equation {
Galerkin { [ C_m[] * Dof{D1 u}, {D1 u} ] ;
In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ; }
Galerkin { [ -F[] , {u} ] ;
In Domain_Force; Jacobian MyJac; Integration GradGrad; }
}
}
}
/*------------------------------------------------------------------------*/
Resolution {
{ Name Mec2D_u ;
System {
{ Name Sys_Mec ; NameOfFormulation Mec2D_u ; }
}
Operation { Generate Sys_Mec ; Solve Sys_Mec ; SaveSolution Sys_Mec ; }
}
}
/*------------------------------------------------------------------------*/
PostProcessing {
{ Name Mec2D_u ; NameOfFormulation Mec2D_u ;
PostQuantity {
{ Name u ; Value { Term { [ {u} ] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name um ; Value { Term { [Norm[{u}]] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name Sx ; Value { Term { [CompX[C_m[]*{D1 u}]] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name Sy ; Value { Term { [CompY[C_m[]*{D1 u}]] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name Sz ; Value { Term { [CompZ[C_m[]*{D1 u}]] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name F ; Value { Term { [F[]] ; In Domain_Force ; Jacobian MyJac ; Integration GradGrad ;} } }
{ Name Vm ; Value { Term {
[Sqrt[ CompX[C_m[]*{D1 u}]#1^2 + CompY[C_m[]*{D1 u}]#2^2 - #1*#2
+ 3*(CompZ[C_m[]*{D1 u}])^2 ] ] ; In Domain_Disp ; Jacobian MyJac ; Integration GradGrad ;} } }
}
}
}
PostOperation Map_u UsingPost Mec2D_u {
Print [ u, OnElementsOf Domain_Disp, File "u.pos"] ;
Print [ um, OnElementsOf Domain_Disp, File "um.pos"] ;
Print [ Sx, OnElementsOf Domain_Disp, File "Sx.pos"] ;
Print [ Sy, OnElementsOf Domain_Disp, File "Sy.pos"] ;
Print [ Sz, OnElementsOf Domain_Disp, File "Sz.pos"] ;
Print [ F, OnElementsOf Domain_Force, File "F.pos"] ;
Print [ Vm , OnElementsOf Domain_Disp, File "Vm.pos"] ;
}
Best regards,
Yves DUPUIS
Doctor / Engineer in Mechatronics
2, rue des champs
F-27950 St-Marcel – France
Tél : +33 2 76 48 51 25
Yves.dupuis at s2m.fr<mailto:Yves.dupuis at s2m.fr>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/getdp/attachments/20160115/44264ce6/attachment-0001.html>
More information about the getdp
mailing list