MCPcopy Create free account
hub / github.com/boutproject/BOUT-dev / Field

Class Field

src/field/gen_fieldops.py:77–174  ·  view source on GitHub ↗

Abstracts over BoutReals and Field2D/3D/Perps Provides some helper functions for writing function signatures and passing data

Source from the content-addressed store, hash-verified

75
76
77class Field(object):
78 """Abstracts over BoutReals and Field2D/3D/Perps
79
80 Provides some helper functions for writing function signatures and
81 passing data
82
83 """
84
85 def __init__(
86 self,
87 field_type,
88 dimensions,
89 name=None,
90 index_var=None,
91 jz_var="jz",
92 mixed_base_ind_var="base_ind",
93 ):
94 # C++ type of the field, e.g. Field3D
95 self.field_type = field_type
96 # array: dimensions of the field
97 self.dimensions = dimensions
98 # name of this field
99 self.name = name
100 # Name of the indexing variable
101 self.index_var = index_var
102 # Name of jz variable
103 self.jz_var = jz_var
104 self.mixed_base_ind_var = mixed_base_ind_var
105 # Note region_type isn't actually used currently but
106 # may be useful in future.
107 if self.field_type == "Field3D":
108 self.region_type = "3D"
109 elif self.field_type == "Field2D":
110 self.region_type = "2D"
111 else:
112 self.region_type = "_INVALID_"
113
114 @property
115 def passByReference(self):
116 """Returns "Type& name", except if field_type is BoutReal,
117 in which case just returns "Type name"
118
119 """
120 return "{self.field_type}{ref} {self.name}".format(
121 self=self, ref="&" if self.field_type != "BoutReal" else ""
122 )
123
124 @property
125 def index(self):
126 """Returns "[{index_var}]", except if field_type is BoutReal,
127 in which case just returns ""
128
129 """
130 if self.field_type == "BoutReal":
131 return "{self.name}".format(self=self)
132 else:
133 return "{self.name}[{self.index_var}]".format(self=self)
134

Callers 1

gen_fieldops.pyFile · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected