/[escript]/branches/trilinos_from_5897/dudley/src/CPPAdapter/MeshAdapterFactory.h
ViewVC logotype

Contents of /branches/trilinos_from_5897/dudley/src/CPPAdapter/MeshAdapterFactory.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6009 - (show annotations)
Wed Mar 2 04:13:26 2016 UTC (3 years, 1 month ago) by caltinay
File MIME type: text/plain
File size: 6639 byte(s)
Much needed sync with trunk...

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 Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
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 #if !defined dudley_MeshAdapterFactory_20040526_H
18 #define dudley_MeshAdapterFactory_20040526_H
19
20 #include "system_dep.h"
21 #include "MeshAdapter.h"
22
23 #include <escript/AbstractContinuousDomain.h>
24
25 #include <boost/python/list.hpp>
26
27 #include <sstream>
28
29 namespace dudley {
30 /**
31 \brief
32 A suite of factory methods for creating various MeshAdapters.
33
34 Description:
35 A suite of factory methods for creating various MeshAdapters.
36 */
37
38 /**
39 \brief
40 recovers mesg from a dump file
41 \param fileName Input - The name of the file.
42 */
43 DUDLEY_DLL_API
44 /* escript::AbstractContinuousDomain* loadMesh(const std::string& fileName);*/
45 escript::Domain_ptr loadMesh(const std::string& fileName);
46 /**
47 \brief
48 Read a mesh from a file. For MPI parallel runs fan out the mesh to multiple processes.
49 \param fileName Input - The name of the file.
50 \param integrationOrder Input - order of the quadrature scheme.
51 If integrationOrder<0 the integration order is selected independently.
52 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
53 If reducedIntegrationOrder<0 the integration order is selected independently.
54 \param optimize Input - switches on the optimization of node labels
55 */
56 DUDLEY_DLL_API
57 // escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
58 escript::Domain_ptr readMesh(const std::string& fileName,
59 int integrationOrder=-1,
60 int reducedIntegrationOrder=-1,
61 int optimize=0);
62 /**
63 \brief
64 Read a gmsh mesh file
65 \param fileName Input - The name of the file.
66 \param numDim Input - spatial dimension
67 \param integrationOrder Input - order of the quadrature scheme.
68 If integrationOrder<0 the integration order is selected independently.
69 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
70 If reducedIntegrationOrder<0 the integration order is selected independently.
71 \param optimize Input - switches on the optimization of node labels
72 */
73 DUDLEY_DLL_API
74 escript::Domain_ptr readGmsh(const std::string& fileName,
75 int numDim,
76 int integrationOrder=-1,
77 int reducedIntegrationOrder=-1,
78 int optimize=0);
79
80
81 /**
82 \brief Python driver for brick()
83 \param args see brick() definition for order of params
84 */
85 DUDLEY_DLL_API
86 escript::Domain_ptr brick_driver(const boost::python::list& args);
87
88 /**
89 \brief Python driver for rectangle()
90 \param args see rectangle() definition for order of params
91 */
92 DUDLEY_DLL_API
93 escript::Domain_ptr rectangle_driver(const boost::python::list& args);
94
95 /**
96 \brief
97 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
98 [0,l0] x [0,l1] x [0,l2].
99
100 \param n0,n1,n2 Input - number of elements in each dimension
101 \param order Input - =1, =-1 or =2 gives the order of shape function (-1= macro elements of order 1)
102 \param l0,l1,l2 Input - length of each side of brick
103 \param integrationOrder Input - order of the quadrature scheme.
104 If integrationOrder<0 the integration order is selected independently.
105 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
106 If reducedIntegrationOrder<0 the integration order is selected independently.
107 \param useElementsOnFace Input - whether or not to use elements on face
108 \param periodic0, periodic1, periodic2 Input - whether or not boundary
109 conditions of the dimension are periodic
110 \param useFullElementOrder
111 \param optimize
112 */
113 DUDLEY_DLL_API
114 escript::Domain_ptr brick(escript::JMPI& mpi_info, double n0=1,double n1=1,double n2=1,int order=1,
115 double l0=1.0,double l1=1.0,double l2=1.0,
116 int periodic0=0,int periodic1=0,
117 int periodic2=0,
118 int integrationOrder=-1,
119 int reducedIntegrationOrder=-1,
120 int useElementsOnFace=0,
121 int useFullElementOrder=0,
122 int optimize=0);
123
124 /**
125 \brief
126 Creates a rectangular mesh with n0 x n1 elements over the brick
127 [0,l0] x [0,l1].
128
129 \param n0,n1 Input - number of elements in each dimension [We only except floats for py transition]
130 \param order Input - =1, =-1 or =2 gives the order of shape function (-1= macro elements of order 1)
131 \param l0,l1 Input - length of each side of brick
132 \param integrationOrder Input - order of the quadrature scheme.
133 If integrationOrder<0 the integration order is selected
134 independently.
135 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
136 If reducedIntegrationOrder<0 the integration order is selected independently.
137 \param periodic0, periodic1 Input - whether or not the boundary
138 conditions of the dimension are periodic
139 \param useElementsOnFace Input - whether or not to use elements on face
140 \param useFullElementOrder
141 \param optimize
142 */
143 DUDLEY_DLL_API
144 escript::Domain_ptr rectangle(escript::JMPI& mpi_info, double n0=1,double n1=1,int order=1,
145 double l0=1.0, double l1=1.0,
146 int periodic0=false,int periodic1=false,
147 int integrationOrder=-1,
148 int reducedIntegrationOrder=-1,
149 int useElementsOnFace=0,
150 int useFullElementOrder=0,
151 int optimize=0);
152
153 // /**
154 // \brief
155 // Merges a list of meshes into one list.
156 // \param meshList Input - The list of meshes.
157 // */
158 // DUDLEY_DLL_API
159 // // escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
160 // escript::Domain_ptr meshMerge(const boost::python::list& meshList);
161
162
163 } // end of namespace
164 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26