// create the geometry with the OpenCASCADE kernel
SetFactory("OpenCASCADE");
Cylinder(1) = {0, 0, 0, 0, 0, 50, 25};
Cylinder(2) = {0, 0, 25, 0, 0, 50, 10};
BooleanDifference{ Volume{1};Delete; }{ Volume{2}; }
Coherence;  // this step creates a single surface for the interface

// define physical groups
Physical Volume("base",1) = {1};
Physical Volume("stem",2) = {2};
Physical Surface("fixed",3) = {9, 7};
Physical Surface("load",4) = {12};

// mesh options
Mesh.CharacteristicLengthMax = 3.0;

Mesh.SecondOrderLinear = 1;  // straight
Mesh.ElementOrder = 2;       // second-order elements

Mesh.Algorithm = 6;
Mesh.Algorithm3D = 1;

Mesh.Optimize = 1;
Mesh.OptimizeNetgen = 1;
Mesh.HighOrderOptimize = 1;

Mesh.MshFileVersion = 2.2;  // sparselizard needs the older v2.2
