Пример #1
0
        private static void Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine($"Usage: {args[0]} file");
                return;
            }

            Gmsh.Initialize();
            Gmsh.Option.SetNumber("General.Terminal", 1);

            //in the MSH format: `t1.exe file.msh'
            Gmsh.Open(args[0]);

            var name = Gmsh.Model.GetCurrent();

            Console.WriteLine($"Model {name} ({Gmsh.Model.GetDimension()}D)");
            var entities = Gmsh.Model.GetEntities();

            for (int i = 0; i < entities.Length; i++)
            {
                int dim = entities[i].Item1, tag = entities[i].Item2;
                Gmsh.Model.Mesh.GetNodes(out var nodeTags, out var nodeCoords, out var nodeParams, dim, tag);
                Gmsh.Model.Mesh.GetElements(out var elemTypes, out var elemTags, out var elemNodeTags, dim, tag);

                var type = Gmsh.Model.GetType(dim, tag);
                name = Gmsh.Model.GetEntitiesName(dim, tag);
                Console.WriteLine($"Entity {name} ({dim},{tag}) of type {type}");

                var boundary = Gmsh.Model.GetBoundary(new[] { (dim, tag) });