escript  Revision_Unversioneddirectory
EscriptParams.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 #ifndef escript_EscriptParams_H
18 #define escript_EscriptParams_H
19 #include "system_dep.h"
20 #include <boost/python/list.hpp>
21 #include "Data.h" // for the operators
22 
23 namespace escript
24 {
25 
26 class Data;
27 class DataLazy;
28 
30 {
31 public:
33  EscriptParams();
34 
36  int getInt(const char* name, int sentinel=0) const;
37 
39  void setInt(const char* name, int value);
40 
41  boost::python::list
43 
44 private:
45 
46  // If we get more params we can replace this with a map
48  int autolazy;
56  int gmsh;
57  int gmsh_mpi;
58  mutable int temp_direct_solver;
59 
60 protected:
61  // This is to provide fast access for methods in Data.
62  // Its a little bit ugly, needing all those friends but I really want to
63  // limit outside access to the char* interface
64 
66  int getAUTOLAZY() { return autolazy;}
69  int getLAZY_STR_FMT() {return lazy_str_fmt;}
70  int getLAZY_VERBOSE() {return lazy_verbose;}
71 
72  friend class escript::Data;
73  friend class escript::DataLazy;
74  friend Data operator+(const boost::python::api::object&, const escript::Data&);
75  friend Data operator-(const boost::python::api::object&, const escript::Data&);
76  friend Data operator*(const boost::python::api::object&, const escript::Data&);
77  friend Data operator/(const boost::python::api::object&, const escript::Data&);
78  friend Data operator+(const escript::Data&, const escript::Data&);
79  friend Data operator-(const escript::Data&, const escript::Data&);
80  friend Data operator*(const escript::Data&, const escript::Data&);
81  friend Data operator/(const escript::Data&, const escript::Data&);
82  friend Data operator+(const escript::Data&, const boost::python::api::object&);
83  friend Data operator-(const escript::Data&, const boost::python::api::object&);
84  friend Data operator*(const escript::Data&, const boost::python::api::object&);
85  friend Data operator/(const escript::Data&, const boost::python::api::object&);
87  int axis_offset, int transpose);
88  friend Data condEval(escript::Data& mask, escript::Data& trueval, escript::Data& falseval);
89 };
90 
91 
93 
99 void setEscriptParamInt(const char* name, int value);
100 
106 int getEscriptParamInt(const char* name, int sentinel=0);
107 
113 inline boost::python::list listEscriptParams()
114 {
115  return escriptParams.listEscriptParams();
116 }
117 
118 
119 
120 }
121 #endif
friend Data condEval(escript::Data &mask, escript::Data &trueval, escript::Data &falseval)
boost::python::list listEscriptParams()
Definition: EscriptParams.cpp:214
int getAUTOLAZY()
Definition: EscriptParams.h:66
int temp_direct_solver
Definition: EscriptParams.h:58
int lapack_support
Definition: EscriptParams.h:52
Definition: AbstractContinuousDomain.cpp:24
int amg_disabled
Definition: EscriptParams.h:54
void transpose(const DataTypes::ValueType &in, const DataTypes::ShapeType &inShape, DataTypes::ValueType::size_type inOffset, DataTypes::ValueType &ev, const DataTypes::ShapeType &evShape, DataTypes::ValueType::size_type evOffset, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition: DataMaths.h:394
void setEscriptParamInt(const char *name, int value)
Set the value of a named parameter. See listEscriptParams() (showEscriptParams() in python) for avail...
Definition: EscriptParams.cpp:201
int getLAZY_VERBOSE()
Definition: EscriptParams.h:70
EscriptParams()
Definition: EscriptParams.cpp:36
int has_netcdf
Definition: EscriptParams.h:55
int resolve_collective
Definition: EscriptParams.h:50
int autolazy
Definition: EscriptParams.h:48
int getInt(const char *name, int sentinel=0) const
Definition: EscriptParams.cpp:102
int lazy_str_fmt
Definition: EscriptParams.h:51
int too_many_lines
Definition: EscriptParams.h:47
int getEscriptParamInt(const char *name, int sentinel)
get the value of a named parameter. See listEscriptParams() (showEscriptParams() in python) for avail...
Definition: EscriptParams.cpp:208
int getRESOLVE_COLLECTIVE()
Definition: EscriptParams.h:68
Data represents a collection of datapoints.
Definition: Data.h:68
int too_many_levels
Definition: EscriptParams.h:49
Definition: EscriptParams.h:29
friend Data operator*(const boost::python::api::object &, const escript::Data &)
friend Data C_GeneralTensorProduct(escript::Data &arg_0, escript::Data &arg_1, int axis_offset, int transpose)
Compute a tensor product of two Data objects.
int gmsh_mpi
Definition: EscriptParams.h:57
EscriptParams escriptParams
Definition: EscriptParams.cpp:33
Wraps an expression tree of other DataObjects. The data will be evaluated when required.
Definition: DataLazy.h:102
void setInt(const char *name, int value)
Definition: EscriptParams.cpp:181
int lazy_verbose
Definition: EscriptParams.h:53
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:54
int getTOO_MANY_LINES()
Definition: EscriptParams.h:65
int getTOO_MANY_LEVELS()
Definition: EscriptParams.h:67
int gmsh
Definition: EscriptParams.h:56
int getLAZY_STR_FMT()
Definition: EscriptParams.h:69
friend Data operator+(const boost::python::api::object &, const escript::Data &)
friend Data operator/(const boost::python::api::object &, const escript::Data &)
friend Data operator-(const boost::python::api::object &, const escript::Data &)