File: plugin.cpp

package info (click to toggle)
gmsh 4.15.1%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 52,880 kB
  • sloc: cpp: 440,657; ansic: 114,930; f90: 15,611; python: 13,907; yacc: 7,438; java: 3,491; lisp: 3,206; lex: 633; perl: 571; makefile: 500; xml: 414; sh: 407; javascript: 113; modula3: 32
file content (57 lines) | stat: -rw-r--r-- 1,822 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <gmsh.h>

int main(int argc, char **argv)
{
  gmsh::initialize();

  // Copied from discrete.cpp...
  gmsh::model::add("test");
  gmsh::model::addDiscreteEntity(2, 1);
  gmsh::model::mesh::addNodes(2, 1, {1, 2, 3, 4},
                              {0., 0., 0., 1., 0., 0., 1., 1., 0., 0., 1., 0.});
  gmsh::model::mesh::addElements(2, 1, {2}, {{1, 2}}, {{1, 2, 3, 1, 3, 4}});
  // ... end of copy

  // create a view with some data
  int t = gmsh::view::add("some data");
  gmsh::view::addModelData(t, 0, "test", "NodeData", {1, 2, 3, 4},
                           {{1.}, {10.}, {20.}, {1.}});

  // test getting data back
  std::string dataType;
  std::vector<std::size_t> tags;
  std::vector<std::vector<double> > data;
  double time;
  int numComp;
  gmsh::view::getModelData(t, 0, dataType, tags, data, time, numComp);
  std::cout << dataType;
  for(unsigned int i = 0; i < tags.size(); i++) std::cout << " " << tags[i];
  std::cout << std::endl;

  // compute the iso-curve at value 11
  gmsh::plugin::setNumber("Isosurface", "Value", 11.);
  gmsh::plugin::run("Isosurface");

  // delete the source view
  gmsh::view::remove(t);

  // check how many views the plugin created (a priori, a single list-based one)
  std::vector<int> viewTags;
  gmsh::view::getTags(viewTags);
  if(viewTags.size() == 1) {
    gmsh::view::write(viewTags[0], "iso.msh");
    // test getting data back
    std::vector<std::string> dataTypes;
    std::vector<int> numElements;
    gmsh::view::getListData(viewTags[0], dataTypes, numElements, data);
    for(unsigned int i = 0; i < dataTypes.size(); i++)
      std::cout << dataTypes[i] << " ";
    for(unsigned int i = 0; i < numElements.size(); i++)
      std::cout << numElements[i] << " ";
    std::cout << std::endl;
  }

  gmsh::finalize();
  return 0;
}