Source code for Muscat.FE.WeakForms.PythonNumericalWeakFrom
[docs]
class PyWeakMonom(object):
def __init__(self):
super().__init__()
self.prefactor = 1
self.prod = []
[docs]
def AddProd(self, term):
self.prod.append(term)
[docs]
def GetNumberOfProds(self):
return len(self.prod)
[docs]
def GetProd(self, n):
return self.prod[n]
[docs]
def hasVariable(self, var):
for m in self:
if m.fieldName == str(var):
return True
return False
def __str__(self):
res = str(self.prefactor)
for i in range(self.GetNumberOfProds()):
res += "*"
res += str(self.GetProd(i))
return res
def __iter__(self):
return iter(self.prod)
[docs]
def copy(self):
import copy
return copy.deepcopy(self)
[docs]
class PyWeakTerm(object):
EnumError = -1
EnumNormal = 0
EnumConstant = 1
EnumUnknownField = 2
EnumTestField = 3
EnumExtraField = 4
EnumExtraIPField = 5
def __init__(self):
super().__init__()
self.fieldName = ""
self.derCoordName = ""
self.derDegree = -1
self.constant = False
self.normal = False
# internal data repr for integration
self.internalType = PyWeakTerm.EnumError
self.spaceIndex_ = None
self.numberingIndex_ = None
self.valuesIndex_ = None
self.modeIndex_ = None
self.derCoordIndex_ = None
def __str__(self):
res = ""
if self.derDegree > 0 and self.normal == 0:
# #res += "d" + self.fieldName + "/" + "d" + str(self.derCoordName)
res += (
"Derivative("
+ str(self.fieldName)
+ ", "
+ str(self.derCoordName)
+ ","
+ str(self.derDegree)
+ ")"
)
else:
res += self.fieldName
return res
[docs]
def copy(self):
import copy
return copy.deepcopy(self)
[docs]
def CheckIntegrity(GUI: bool = False):
return "ok"
if __name__ == "__main__":
print(CheckIntegrity(GUI=True)) # pragma: no cover