I used the geo module in Gmsh to create geometry. Add point firstly, and then add lines.
then using the .geo file you can mesh it with 2nd order elements in a consistent manner. Follow the example attached: tower.geo - Google Drive
Thank you for your patience in replying.
In the geo file you provided, you used ElementOrder=2 to do the higher order meshing and saved all nodes and elements to the inp file. The elements in the inp file are the T3D2 elements (Two-node 3D truss element).
In my Gmsh configuration, I used a similar meshing configuration.
But I saved it as a B32 element (Three-node 3D beam element). The crux of the problem is the number of nodes, and the three-node has the problem that the two-node does not have.
Suppose the knotted node is 1. In the two-node, element 1 will be represented as (1, 2), but in the three-node, element 1 will be represented as (2, 1, 3) to ensure the connection property of the intermediate nodes. This is why there is a non-positive Jacobian error.
They should be T3D3, is what I got, when the .inp is created just replace T3D3 by B32R, gmsh translates to the simplest element with same topology so no issue:
If you get a different thing maybe is the config settings in gmesh but I get parabolic elements.
Sure.
The same geo file running on my computer does not give the same results as yours.
The version of Gmsh I am using is: 4.10.5. I did not do any other configuration.
After some searching, I didn’t find any Gmsh configuration for the parabolic elements.
I don’t know what’s wrong.
I used 4.7.1. This is my whole Mesh-ing configuration:
Mesh.Algorithm = 8;
Mesh.Algorithm3D = 1;
Mesh.AlgorithmSwitchOnFailure = 1;
Mesh.AngleSmoothNormals = 30;
Mesh.AngleToleranceFacetOverlap = 0.1;
Mesh.AnisoMax = 1e+33;
Mesh.AllowSwapAngle = 10;
Mesh.BdfFieldFormat = 1;
Mesh.Binary = 0;
Mesh.BoundaryLayerFanPoints = 5;
Mesh.CgnsImportOrder = 1;
Mesh.CgnsImportIgnoreBC = 0;
Mesh.CgnsImportIgnoreSolution = 0;
Mesh.CgnsConstructTopology = 0;
Mesh.CgnsExportCPEX0045 = 0;
Mesh.CgnsExportStructured = 0;
Mesh.Clip = 0;
Mesh.ColorCarousel = 2;
Mesh.CompoundClassify = 1;
Mesh.CompoundMeshSizeFactor = 0.5;
Mesh.CpuTime = 0.001996755599975586;
Mesh.DrawSkinOnly = 0;
Mesh.Dual = 0;
Mesh.ElementOrder = 2;
Mesh.Explode = 1;
Mesh.FirstElementTag = 1;
Mesh.FirstNodeTag = 1;
Mesh.FlexibleTransfinite = 0;
Mesh.Format = 10;
Mesh.Hexahedra = 1;
Mesh.HighOrderDistCAD = 0;
Mesh.HighOrderIterMax = 100;
Mesh.HighOrderNumLayers = 6;
Mesh.HighOrderOptimize = 0;
Mesh.HighOrderPassMax = 25;
Mesh.HighOrderPeriodic = 0;
Mesh.HighOrderPoissonRatio = 0.33;
Mesh.HighOrderSavePeriodic = 0;
Mesh.HighOrderPrimSurfMesh = 0;
Mesh.HighOrderThresholdMin = 0.1;
Mesh.HighOrderThresholdMax = 2;
Mesh.LabelSampling = 1;
Mesh.LabelType = 2;
Mesh.LcIntegrationPrecision = 1e-09;
Mesh.Light = 1;
Mesh.LightLines = 2;
Mesh.LightTwoSide = 1;
Mesh.Lines = 1;
Mesh.LineNumbers = 0;
Mesh.LineWidth = 1;
Mesh.MaxIterDelaunay3D = 0;
Mesh.MaxNumThreads1D = 0;
Mesh.MaxNumThreads2D = 0;
Mesh.MaxNumThreads3D = 0;
Mesh.MaxRetries = 10;
Mesh.MeshOnlyVisible = 0;
Mesh.MeshOnlyEmpty = 0;
Mesh.MeshSizeExtendFromBoundary = 1;
Mesh.MeshSizeFactor = 1;
Mesh.MeshSizeMin = 0;
Mesh.MeshSizeMax = 1e+22;
Mesh.MeshSizeFromCurvature = 0;
Mesh.MeshSizeFromPoints = 1;
Mesh.MeshSizeFromParametricPoints = 0;
Mesh.MetisAlgorithm = 1;
Mesh.MetisEdgeMatching = 2;
Mesh.MetisMaxLoadImbalance = -1;
Mesh.MetisObjective = 1;
Mesh.MetisMinConn = -1;
Mesh.MetisRefinementAlgorithm = 2;
Mesh.MinimumCirclePoints = 7;
Mesh.MinimumCurvePoints = 3;
Mesh.MinimumElementsPerTwoPi = 6;
Mesh.MshFileVersion = 4.1;
Mesh.MedFileMinorVersion = -1;
Mesh.MedImportGroupsOfNodes = 0;
Mesh.MedSingleModel = 0;
Mesh.PartitionHexWeight = -1;
Mesh.PartitionLineWeight = -1;
Mesh.PartitionPrismWeight = -1;
Mesh.PartitionPyramidWeight = -1;
Mesh.PartitionQuadWeight = -1;
Mesh.PartitionTrihedronWeight = 0;
Mesh.PartitionTetWeight = -1;
Mesh.PartitionTriWeight = -1;
Mesh.PartitionCreateTopology = 1;
Mesh.PartitionCreatePhysicals = 1;
Mesh.PartitionCreateGhostCells = 0;
Mesh.PartitionSplitMeshFiles = 0;
Mesh.PartitionTopologyFile = 0;
Mesh.PartitionOldStyleMsh2 = 1;
Mesh.ReparamMaxTriangles = 250000;
Mesh.NbHexahedra = 0;
Mesh.NbNodes = 132;
Mesh.NbPartitions = 0;
Mesh.NbPrisms = 0;
Mesh.NbPyramids = 0;
Mesh.NbTrihedra = 0;
Mesh.NbQuadrangles = 0;
Mesh.NbTetrahedra = 0;
Mesh.NbTriangles = 0;
Mesh.NewtonConvergenceTestXYZ = 0;
Mesh.Normals = 0;
Mesh.NumSubEdges = 2;
Mesh.Optimize = 1;
Mesh.OptimizeThreshold = 0.3;
Mesh.OptimizeNetgen = 0;
Mesh.Points = 1;
Mesh.PointNumbers = 0;
Mesh.PointSize = 4;
Mesh.PointType = 0;
Mesh.Prisms = 1;
Mesh.Pyramids = 1;
Mesh.Trihedra = 1;
Mesh.Quadrangles = 1;
Mesh.QualityInf = 0;
Mesh.QualitySup = 0;
Mesh.QualityType = 2;
Mesh.RadiusInf = 0;
Mesh.RadiusSup = 0;
Mesh.RandomFactor = 1e-09;
Mesh.RandomFactor3D = 1e-12;
Mesh.RandomSeed = 1;
Mesh.PreserveNumberingMsh2 = 0;
Mesh.IgnoreParametrization = 0;
Mesh.IgnorePeriodicity = 1;
Mesh.RecombinationAlgorithm = 3;
Mesh.RecombineAll = 0;
Mesh.RecombineOptimizeTopology = 5;
Mesh.Recombine3DAll = 0;
Mesh.Recombine3DLevel = 0;
Mesh.Recombine3DConformity = 0;
Mesh.RefineSteps = 10;
Mesh.Renumber = 1;
Mesh.SaveAll = 1;
Mesh.SaveElementTagType = 1;
Mesh.SaveTopology = 0;
Mesh.SaveParametric = 0;
Mesh.SaveGroupsOfElements = 1;
Mesh.SaveGroupsOfNodes = 1;
Mesh.ScalingFactor = 1;
Mesh.SecondOrderIncomplete = 1;
Mesh.SecondOrderLinear = 0;
Mesh.Smoothing = 1;
Mesh.SmoothCrossField = 0;
Mesh.CrossFieldClosestPoint = 1;
Mesh.SmoothNormals = 0;
Mesh.SmoothRatio = 1.8;
Mesh.StlAngularDeflection = 0.35;
Mesh.StlLinearDeflection = 0.01;
Mesh.StlOneSolidPerSurface = 0;
Mesh.StlRemoveDuplicateTriangles = 0;
Mesh.SubdivisionAlgorithm = 0;
Mesh.SurfaceEdges = 0;
Mesh.SurfaceFaces = 1;
Mesh.SurfaceNumbers = 0;
Mesh.SwitchElementTags = 0;
Mesh.Tangents = 0;
Mesh.Tetrahedra = 1;
Mesh.ToleranceEdgeLength = 0;
Mesh.ToleranceInitialDelaunay = 1e-08;
Mesh.Triangles = 1;
Mesh.UnvStrictFormat = 1;
Mesh.VolumeEdges = 0;
Mesh.VolumeFaces = 0;
Mesh.VolumeNumbers = 0;
Mesh.Voronoi = 0;
Mesh.ZoneDefinition = 0;
Mesh.Color.Points = {0,0,255};
Mesh.Color.PointsSup = {255,0,255};
Mesh.Color.Lines = {0,0,0};
Mesh.Color.Triangles = {27,255,60};
Mesh.Color.Quadrangles = {130,120,225};
Mesh.Color.Tetrahedra = {160,150,255};
Mesh.Color.Hexahedra = {130,120,225};
Mesh.Color.Prisms = {232,210,23};
Mesh.Color.Pyramids = {217,113,38};
Mesh.Color.Trihedra = {20,255,0};
Mesh.Color.Tangents = {255,255,0};
Mesh.Color.Normals = {255,0,0};
Mesh.Color.Zero = {255,120,0};
Mesh.Color.One = {0,255,132};
Mesh.Color.Two = {255,160,0};
Mesh.Color.Three = {0,255,192};
Mesh.Color.Four = {255,200,0};
Mesh.Color.Five = {0,216,255};
Mesh.Color.Six = {255,240,0};
Mesh.Color.Seven = {0,176,255};
Mesh.Color.Eight = {228,255,0};
Mesh.Color.Nine = {0,116,255};
Mesh.Color.Ten = {188,255,0};
Mesh.Color.Eleven = {0,76,255};
Mesh.Color.Twelve = {148,255,0};
Mesh.Color.Thirteen = {24,0,255};
Mesh.Color.Fourteen = {108,255,0};
Mesh.Color.Fifteen = {84,0,255};
Mesh.Color.Sixteen = {68,255,0};
Mesh.Color.Seventeen = {104,0,255};
Mesh.Color.Eighteen = {0,255,52};
Mesh.Color.Nineteen = {184,0,255};
After I exchanged the two line, I got the right output.
Mesh 1;
Mesh.ElementOrder = 2;
Then I try to test the config in project using Pygccx. The results show that there may be some problems with Pygccx’s Gmsh export results, missing some elements