/[escript]/trunk/finley/py_src/factorywrappers.py
ViewVC logotype

Contents of /trunk/finley/py_src/factorywrappers.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7027 - (show annotations)
Fri Aug 7 05:26:26 2020 UTC (2 years, 7 months ago) by uqaeller
File MIME type: text/x-python
File size: 4172 byte(s)
Merged in most of Mark's work
1
2 ##############################################################################
3 #
4 # Copyright (c) 2011-2018 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 # Development from 2019 by School of Earth and Environmental Sciences
15 #
16 ##############################################################################
17
18 from __future__ import print_function, division
19
20 __copyright__="""Copyright (c) 2011-2018 by The University of Queensland
21 http://www.uq.edu.au
22 Primary Business: Queensland, Australia"""
23 __license__="""Licensed under the Apache License, version 2.0
24 http://www.apache.org/licenses/LICENSE-2.0"""
25 __url__="https://launchpad.net/escript-finley"
26
27
28 from .finleycpp import __Brick_driver, __Rectangle_driver, __ReadMesh_driver, __ReadGmsh_driver
29
30
31 def ReadMesh(filename, integrationOrder=-1, reducedIntegrationOrder=-1, optimize=True, **kwargs):
32 points=[]
33 tags=[]
34 if 'diracPoints' in kwargs:
35 points=kwargs['diracPoints']
36 if 'diracTags' in kwargs:
37 tags=kwargs['diracTags']
38 args=[filename, integrationOrder, reducedIntegrationOrder, optimize, points, tags];
39 if 'escriptworld' in kwargs:
40 args+=[kwargs['escriptworld']]
41 else:
42 args+=[None]
43 return __ReadMesh_driver(args)
44
45 ReadMesh.__doc__=__ReadMesh_driver.__doc__
46
47 def ReadGmsh(fileName, numDim, integrationOrder=-1, reducedIntegrationOrder=-1, optimize=True,
48 useMacroElements=False, **kwargs):
49 points=[]
50 tags=[]
51 if 'diracPoints' in kwargs:
52 points=kwargs['diracPoints']
53 if 'diracTags' in kwargs:
54 tags=kwargs['diracTags']
55 args=[fileName, numDim, integrationOrder, reducedIntegrationOrder, optimize,
56 useMacroElements, points, tags];
57 if 'escriptworld' in kwargs:
58 args+=[kwargs['escriptworld']]
59 else:
60 args+=[None]
61 return __ReadGmsh_driver(args)
62
63 ReadGmsh.__doc__=__ReadGmsh_driver.__doc__
64
65
66 def Rectangle(n0=1, n1=1, order=1, l0=1.0, l1=1.0, periodic0=False, periodic1=False, integrationOrder=-1,
67 reducedIntegrationOrder=-1, useElementsOnFace=None, useFullElementOrder=0, optimize=0, **kwargs):
68 points=[]
69 tags=[]
70 if 'diracPoints' in kwargs:
71 points=kwargs['diracPoints']
72 if 'diracTags' in kwargs:
73 tags=kwargs['diracTags']
74 faceon=useElementsOnFace
75 if useElementsOnFace is None: #We want to use 1 as the default, but only where it makes sense
76 if useFullElementOrder or order==-1:
77 faceon=0 #Don't use it
78 else:
79 faceon=1
80 args=[n0, n1, order, l0, l1, periodic0, periodic1, integrationOrder,
81 reducedIntegrationOrder, faceon, useFullElementOrder, optimize, points, tags];
82 if 'escriptworld' in kwargs:
83 args+=[kwargs['escriptworld']]
84 else:
85 args+=[None]
86 return __Rectangle_driver(args)
87
88 Rectangle.__doc__=__Rectangle_driver.__doc__
89
90 def Brick(n0=1, n1=1, n2=1, order=1, l0=1.0, l1=1.0, l2=1.0, periodic0=0, periodic1=0, periodic2=0,
91 integrationOrder=-1, reducedIntegrationOrder=-1, useElementsOnFace=1, useFullElementOrder=0,
92 optimize=0, **kwargs):
93 points=[]
94 tags=[]
95 if 'diracPoints' in kwargs:
96 points=kwargs['diracPoints']
97 if 'diracTags' in kwargs:
98 tags=kwargs['diracTags']
99 faceon=useElementsOnFace
100 if useElementsOnFace is None: #We want to use 1 as the default, but only where it makes sense
101 if useFullElementOrder or order==-1:
102 faceon=0 #Don't use it
103 else:
104 faceon=1
105 args=[n0, n1, n2, order, l0, l1, l2, periodic0, periodic1, periodic2,
106 integrationOrder, reducedIntegrationOrder, faceon, useFullElementOrder,
107 optimize, points, tags];
108 if 'escriptworld' in kwargs:
109 args+=[kwargs['escriptworld']]
110 else:
111 args+=[None]
112 return __Brick_driver(args)
113
114 Brick.__doc__=__Brick_driver.__doc__

  ViewVC Help
Powered by ViewVC 1.1.26