Esempio n. 1
0
 /// <summary>
 /// Get the name of the current model.
 /// </summary>
 public static string GetCurrent()
 {
     unsafe
     {
         byte *nameptr;
         Gmsh_Warp.GmshModelGetCurrent(&nameptr, ref Gmsh._staticreff);
         var array = UnsafeHelp.ToString(nameptr);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(array);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Set one or more parameters in the ONELAB database, encoded in `format'.
 /// </summary>
 public static string Get(string name = "", string format = "json")
 {
     unsafe
     {
         byte *data_ptr;
         Gmsh_Warp.GmshOnelabGet(&data_ptr, name, format, ref Gmsh._staticreff);
         var data = UnsafeHelp.ToString(data_ptr);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(data);
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Get the type of the entity of dimension `dim' and tag `tag'.
 /// </summary>
 public static string GetType(int dim, int tag)
 {
     unsafe
     {
         byte *entityTypeptr;
         Gmsh_Warp.GmshModelGetType(dim, tag, &entityTypeptr, ref Gmsh._staticreff);
         var typename = UnsafeHelp.ToString(entityTypeptr);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(typename);
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Get the name of the physical group of dimension `dim' and tag `tag'.
 /// </summary>
 public static string GetPhysicalName(int dim, int tag)
 {
     unsafe
     {
         byte *nameptr;
         Gmsh_Warp.GmshModelGetPhysicalName(dim, tag, &nameptr, ref Gmsh._staticreff);
         var name = UnsafeHelp.ToString(nameptr);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(name);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Get the `value' of a string option. `name' is of the form "category.option"
 /// or "category[num].option". Available categories and options are listed in
 /// the Gmsh reference manual.
 /// </summary>
 public static string GetString(string name)
 {
     unsafe
     {
         byte *valueptr;
         Gmsh_Warp.GmshOptionGetString(name, &valueptr, ref Gmsh._staticreff);
         var value = UnsafeHelp.ToString(valueptr);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(value);
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Get the value of the string parameter `name' from the ONELAB database.
 /// Return an empty vector if the parameter does not exist.
 /// </summary>
 public static string[] GetString(string name)
 {
     unsafe
     {
         byte **valueptr;
         long   value_n = 0;
         Gmsh_Warp.GmshOnelabGetString(name, &valueptr, ref value_n, ref Gmsh._staticreff);
         var value = UnsafeHelp.ToString(valueptr, value_n);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(value);
     }
 }
Esempio n. 7
0
 /// <summary>
 /// List the names of all models.
 /// </summary>
 public static string[] List()
 {
     unsafe
     {
         byte **names_ptr;
         long   name_n = 0;
         Gmsh_Warp.GmshModelList(&names_ptr, ref name_n, ref Gmsh._staticreff);
         var names = UnsafeHelp.ToString(names_ptr, name_n);
         Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
         return(names);
     }
 }
Esempio n. 8
0
            /// <summary>
            /// Get list-based post-processing data strings (2D strings if `dim' = 2, 3D
            /// strings if `dim' = 3) from the view with tag `tag'. Return the coordinates
            /// in `coord', the strings in `data' and the styles in `style'.
            /// </summary>
            public static void GetListDataStrings(int tag, int dim, out double[] coord, out string[] data, out string[] style)
            {
                unsafe
                {
                    double *coord_ptr;
                    long    coord_n = 0;
                    byte ** data_ptr;
                    long    data_n = 0;
                    byte ** style_ptr;
                    long    style_n = 0;

                    Gmsh_Warp.GmshViewGetListDataStrings(tag, dim, &coord_ptr, ref coord_n, &data_ptr, ref data_n, &style_ptr, ref style_n, ref Gmsh._staticreff);
                    coord = UnsafeHelp.ToDoubleArray(coord_ptr, coord_n);
                    data  = UnsafeHelp.ToString(data_ptr, data_n);
                    style = UnsafeHelp.ToString(style_ptr, style_n);
                    Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
                }
            }
Esempio n. 9
0
            /// <summary>
            /// Get logged messages.
            /// </summary>
            public static string[] Get()
            {
                unsafe
                {
                    byte **errorptr;
                    long   log_n = 0;
                    Gmsh_Warp.GmshLoggerGet(&errorptr, ref log_n, ref _staticreff);

                    var messages = UnsafeHelp.ToString(errorptr, log_n);
                    if (_staticreff != 0)
                    {
                        var method = MethodBase.GetCurrentMethod();
                        var where = $"{method.DeclaringType.FullName}.{method.Name}";
                        throw new GmshException("Could not get", where, _staticreff);
                    }
                    return(messages);
                }
            }
Esempio n. 10
0
            /// <summary>
            /// Add homogeneous model-based post-processing data to the view with tag `tag'.
            /// The arguments have the same meaning as in `addModelData', except that `data'
            /// is supposed to be homogeneous and is thus flattened in a single vector. For
            /// data types that can lead to different data sizes per tag (like
            /// "ElementNodeData"), the data should be padded.
            /// </summary>
            public static void GetListData(int tag, out string[] dataType, out int[] numElements, out double[][] data)
            {
                unsafe
                {
                    byte **  dataType_ptr;
                    long     dataType_n = 0;
                    int *    numElements_ptr;
                    long     numElements_n = 0;
                    double **data_ptr;
                    long *   data_n_ptr;
                    long     data_nn = 0;

                    Gmsh_Warp.GmshViewGetListData(tag, &dataType_ptr, ref dataType_n, &numElements_ptr, ref numElements_n, &data_ptr, &data_n_ptr, ref data_nn, ref Gmsh._staticreff);
                    dataType    = UnsafeHelp.ToString(dataType_ptr, dataType_n);
                    numElements = UnsafeHelp.ToIntArray(numElements_ptr, numElements_n);
                    data        = UnsafeHelp.ToDoubleArray(data_ptr, data_n_ptr, data_nn);
                    Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
                }
            }
Esempio n. 11
0
            /// <summary>
            /// Add homogeneous model-based post-processing data to the view with tag `tag'.
            /// The arguments have the same meaning as in `addModelData', except that `data'
            /// is supposed to be homogeneous and is thus flattened in a single vector. For
            /// data types that can lead to different data sizes per tag (like
            /// "ElementNodeData"), the data should be padded.
            /// </summary>
            public static void GetModelData(int tag, int step, out string dataType, out long[] tags, out double[][] data, out double time, out int numComponents)
            {
                unsafe
                {
                    byte *   dataType_ptr;
                    long *   tags_ptr;
                    long     tags_n = 0;
                    double **data_ptr;
                    long *   data_n_ptr;
                    long     data_nn = 0;
                    time = 0; numComponents = 0;

                    Gmsh_Warp.GmshViewGetModelData(tag, step, &dataType_ptr, &tags_ptr, ref tags_n, &data_ptr, &data_n_ptr, ref data_nn, ref time, ref numComponents, ref Gmsh._staticreff);
                    dataType = UnsafeHelp.ToString(dataType_ptr);
                    tags     = UnsafeHelp.ToLongArray(tags_ptr, tags_n);
                    data     = UnsafeHelp.ToDoubleArray(data_ptr, data_n_ptr, data_nn);
                    Gmsh.CheckException(MethodBase.GetCurrentMethod().MethodHandle);
                }
            }