Skip to content
Snippets Groups Projects
Commit 9b008600 authored by Ludovic Noels's avatar Ludovic Noels
Browse files

geo

parent 86e0d705
Branches
Tags
No related merge requests found
SetFactory("OpenCASCADE");
Mesh.Optimize = 1;
Mesh.SecondOrderLinear = 1;
mm = 1.; // Unit
//Geometry.AutoCoherence = 0.000000001*mm;
Geometry.Tolerance = 0.000000001*mm; // adjust value here for correct merge result
Mesh.CharacteristicLengthMin = 1.*mm;
Mesh.CharacteristicLengthMax = 25.*mm;
RextLattice = 100*mm;
HLattice = 4.*7.5*mm;
LLattice = 7.5*mm; //mesh size
LowerPlate = 2.*mm;
UpperPlate = 2.*mm;
LPlate = 7.5*mm; //mesh size
RextImpactor = 100*mm;
RintImpactor = 75.*mm;
LImpactor = 25*mm; //mesh size
// lower plate
plate()+=newv; Cylinder(newv) = {0,0,0, 0,0,LowerPlate, RextLattice, Pi/2.};
surflowerplate[] = Abs(Boundary{ Volume{plate(0)}; });
Printf("surf lower plate ",surflowerplate());
// upper plate
plate()+=newv; Cylinder(newv) = {0,0,LowerPlate+HLattice, 0,0,UpperPlate, RextLattice, Pi/2.};
surfupperplate[] = Abs(Boundary{ Volume{plate(1)}; });
Printf("surf upper plate ",surfupperplate());
Characteristic Length { PointsOf{ Volume{ plate[] }; } } = LPlate;
// lattice part
lattice()+=newv; Cylinder(newv) = {0,0,LowerPlate, 0,0,HLattice, RextLattice, Pi/2.};
surflattice[] = Abs(Boundary{ Volume{lattice(0)}; });
Printf("surf lattice ",surflattice());
Characteristic Length { PointsOf{ Volume{ lattice[] }; } } = LLattice;
//impactor
//+
impactortmp()+=newv; Sphere(newv) = {0.-0.0001*mm, 0.-0.0001*mm, LowerPlate+HLattice+UpperPlate+RextImpactor+0.0001*mm, RextImpactor, -Pi/2, 0., Pi/2.};
//+
impactortmp()+=newv; Sphere(newv) = {0.-0.0001*mm, 0.-0.0001*mm, LowerPlate+HLattice+UpperPlate+RextImpactor+0.0001*mm, RintImpactor, -Pi/2, 0., Pi/2.};
impactor()+=newv; BooleanDifference(newv) = { Volume{impactortmp(0)}; Delete; }{ Volume{impactortmp(1)}; Delete; };
surfimpactor[] = Abs(Boundary{ Volume{impactor(0)}; });
Printf("surf impactor ",surfimpactor());
Characteristic Length { PointsOf{ Volume{ impactor[] }; } } = LImpactor;
OXZ=101;
Physical Surface(OXZ) = {surflowerplate(3), surflattice(3),surfupperplate(3)};
OYZ=100;
Physical Surface(OYZ) = {surflowerplate(4), surflattice(4),surfupperplate(4)};
OXYLOW=200;
Physical Surface(OXYLOW) = {surflowerplate(2)};
OXYUP=201;
Physical Surface(OXYUP) = {surfupperplate(1)};
LOWERPLATE=51;
Physical Volume(LOWERPLATE) = {plate(0)};
UPPERPLATE=52;
Physical Volume(UPPERPLATE) = {plate(1)};
LATTICE=53;
Physical Volume(LATTICE) = {lattice(0)};
OXZIMPACTOR=1001;
Physical Surface(OXZIMPACTOR) = {surfimpactor(3)};
OYZIMPACTOR=1000;
Physical Surface(OYZIMPACTOR) = {surfimpactor(2)};
OXYIMPACTORLOW=2000;
Physical Surface(OXYIMPACTORLOW) ={surfimpactor(0)};
OXYIMPACTORUP=2001;
Physical Surface(OXYIMPACTORUP) = {surfimpactor(1)};
IMPACTOR=1001;
Physical Volume(IMPACTOR) = {impactor(0)};
//rigid contact
X_contact=-0.1*mm;
Y_contact=-0.1*mm;
Z_contact=-0.0000001*mm;
L_contact=RextLattice+2.*mm;
Point(11001) = {X_contact,Y_contact,Z_contact};
Point(11002) = {X_contact,Y_contact+L_contact,Z_contact};
Point(11003) = {X_contact+L_contact,Y_contact+L_contact,Z_contact};
Point(11004) = {X_contact+L_contact,Y_contact,Z_contact};
Line(10001) = {11001, 11002};
Line(10002) = {11002, 11003};
Line(10003) = {11003, 11004};
Line(10004) = {11004, 11001};
Line Loop(10001) = {10004, 10001, 10002, 10003};
Physical Point(11001) = {11001};
Plane Surface(10001) = {10001};
Transfinite Line {10001,10002,10003,10004} = 2 Using Progression 1;
Transfinite Surface {10001};
Recombine Surface {10001};
RIGIDCONTACT=10001;
Physical Surface(RIGIDCONTACT) = {10001};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment