~ubuntu-branches/debian/squeeze/gmsh/squeeze

« back to all changes in this revision

Viewing changes to Common/Gmsh.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Christophe Prud'homme, Christophe Prud'homme
  • Date: 2009-07-13 15:49:21 UTC
  • mfrom: (7.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090713154921-zer07j8wixwa07ig
Tags: 2.3.1.dfsg-4
[Christophe Prud'homme]
* Bug fix: "gmsh with cgns write support", thanks to Oliver Borm
  (Closes: #529972).
* debian/rules: make sure that Gmsh is built with occ support on all
  platforms thanks to Denis Barbier (#536435).

Show diffs side-by-side

added added

removed removed

Lines of Context:
7
7
#include <time.h>
8
8
#include "GmshConfig.h"
9
9
#include "GmshDefines.h"
 
10
#include "GmshPredicates.h"
10
11
#include "GModel.h"
11
12
#include "GmshMessage.h"
12
13
#include "OpenFile.h"
14
15
#include "Options.h"
15
16
#include "CommandLine.h"
16
17
#include "OS.h"
17
 
#include "Numeric.h"
18
18
#include "Generator.h"
19
19
#include "Field.h"
20
20
#include "Context.h"
25
25
#include "PluginManager.h"
26
26
#endif
27
27
 
28
 
extern Context_T CTX;
29
 
 
30
28
int GmshInitialize(int argc, char **argv)
31
29
{
32
30
  // we need at least one model during option parsing
37
35
  Msg::Init(argc, argv);
38
36
 
39
37
  // Load default options
40
 
  Init_Options(0);
 
38
  InitOptions(0);
41
39
 
42
40
  // Read configuration files and command line options
43
 
  Get_Options(argc, argv);
 
41
  GetOptions(argc, argv);
44
42
 
45
43
  // Make sure we have enough resources (stack)
46
44
  CheckResources();
47
45
  
48
46
#if !defined(HAVE_NO_POST)
49
47
  // Initialize the default plugins
50
 
  GMSH_PluginManager::instance()->registerDefaultPlugins();
 
48
  PluginManager::instance()->registerDefaultPlugins();
51
49
#endif
52
50
 
53
 
  // Initialize numeric library (gsl, robust predicates)
54
 
  Init_Numeric();
 
51
  // Initialize robust predicates
 
52
  gmsh::exactinit();
55
53
 
56
54
  if(dummy) delete dummy;
57
55
  return 1;
65
63
 
66
64
int GmshSetOption(std::string category, std::string name, std::string value, int index)
67
65
{
68
 
  if(StringOption(GMSH_SET, category.c_str(), index, name.c_str(), value.c_str()))
 
66
  if(StringOption(GMSH_SET, category.c_str(), index, name.c_str(), value))
69
67
    return 1;
70
68
  return 0;
71
69
}
93
91
  Msg::Info("Started on %s", Msg::GetLaunchDate().c_str());
94
92
 
95
93
  OpenProject(GModel::current()->getFileName());
96
 
  for(unsigned int i = 1; i < CTX.files.size(); i++){
97
 
    if(CTX.files[i] == "-new")
 
94
  for(unsigned int i = 1; i < CTX::instance()->files.size(); i++){
 
95
    if(CTX::instance()->files[i] == "-new")
98
96
      new GModel();
99
97
    else
100
 
      MergeFile(CTX.files[i]);
 
98
      MergeFile(CTX::instance()->files[i]);
101
99
  }
102
100
 
103
101
#if !defined(HAVE_NO_POST)
104
 
  if(!CTX.bgm_filename.empty()) {
105
 
    MergeFile(CTX.bgm_filename);
 
102
  if(!CTX::instance()->bgmFileName.empty()) {
 
103
    MergeFile(CTX::instance()->bgmFileName);
106
104
    if(PView::list.size())
107
 
      GModel::current()->getFields()->set_background_mesh(PView::list.size() - 1);
 
105
      GModel::current()->getFields()->setBackgroundMesh(PView::list.size() - 1);
108
106
    else
109
107
      Msg::Error("Invalid background mesh (no view)");
110
108
  }
111
109
#endif
112
110
 
113
 
  if(CTX.batch == -3){
114
 
    GmshDaemon(CTX.solver.socket_name);
115
 
  }
116
 
  else if(CTX.batch == -2){
117
 
    GModel::current()->checkMeshCoherence(CTX.geom.tolerance);
118
 
  }
119
 
  else if(CTX.batch == -1){
120
 
    CreateOutputFile(CTX.output_filename, FORMAT_GEO);
121
 
  }
122
 
  else if(CTX.batch > 0){
123
 
    if(CTX.batch < 4)
124
 
      GModel::current()->mesh(CTX.batch);
125
 
    else if(CTX.batch == 4)
 
111
  if(CTX::instance()->batch == -3){
 
112
    GmshDaemon(CTX::instance()->solver.socketName);
 
113
  }
 
114
  else if(CTX::instance()->batch == -2){
 
115
    GModel::current()->checkMeshCoherence(CTX::instance()->geom.tolerance);
 
116
  }
 
117
  else if(CTX::instance()->batch == -1){
 
118
    CreateOutputFile(CTX::instance()->outputFileName, FORMAT_GEO);
 
119
  }
 
120
  else if(CTX::instance()->batch > 0){
 
121
    if(CTX::instance()->batch < 4)
 
122
      GModel::current()->mesh(CTX::instance()->batch);
 
123
    else if(CTX::instance()->batch == 4)
126
124
      AdaptMesh(GModel::current());
127
 
    else if(CTX.batch == 5)
128
 
      RefineMesh(GModel::current(), CTX.mesh.second_order_linear);
 
125
    else if(CTX::instance()->batch == 5)
 
126
      RefineMesh(GModel::current(), CTX::instance()->mesh.secondOrderLinear);
129
127
#if defined(HAVE_CHACO) || defined(HAVE_METIS)
130
 
    if(CTX.batch_after_mesh == 1)
131
 
      PartitionMesh(GModel::current(), CTX.mesh.partition_options);
 
128
    if(CTX::instance()->batchAfterMesh == 1)
 
129
      PartitionMesh(GModel::current(), CTX::instance()->partitionOptions);
132
130
#endif
133
 
    CreateOutputFile(CTX.output_filename, CTX.mesh.format);
 
131
    CreateOutputFile(CTX::instance()->outputFileName, CTX::instance()->mesh.format);
134
132
  }
135
133
 
136
134
  time_t now;