Source code for Mordicus.Core.Containers.FieldHandlers.FieldHandlerBase

# coding: utf-8

[docs]class FieldHandlerBase(object): """ Class containing a FieldHandlerBase, with an internal storage hidden to all its children classes Attributes ---------- __storage : typeToDefine """ def __init__(self): self.__storage = None
[docs] def SetInternalStorage(self, __storage): """ Sets the internal storage Parameters ---------- __storage : typeToDefine """ if self.__storage is not None: print( "Internal storage already set. Replacing it anyway." ) # pragma: no cover self.__storage = __storage
[docs] def GetInternalStorage(self): """ Returns ------- typeToDefine internal storage """ if self.__storage is None: raise AttributeError("Please set internal storage") # pragma: no cover return self.__storage
[docs] def ConvertToLocalField(self, structure, vector): """ Parameters ---------- structure : SolutionStructure Structure instance as defined by mordicus datamodel vector : nparray numpy array of solution to convert Returns ------- localFieldType field in the local Type """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def ConvertFromLocalField(self, field): """ Parameters ---------- field : localFieldType field in the local Type Returns ------- np.array: numpy array of field values """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def SymetricGradient(self, field, solutionStructureGauss, solutionStructureNode): """ Parameters ---------- field : localFieldType local field to derive solutionStructureGauss : SolutionStructure solution structure of the result solutionStructureNode : SolutionStructure solutionStructure of the field to derive Returns ------- field : localFieldType """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def DoublContractedProduct(self, field1, field2): """ Parameters ---------- field1 : localFieldType first symmetric 3x3 tensor s field2 : localFieldType second symmetric 3x3 tensor e Returns ------- s : e, i.e. s(1)*e(1) + s(2)*e(2) + s(3)*e(3) + 2*s(4)*e(4) + 2*s(5)*e(5) + 2*s(6)*s(6) """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def Integral(self, field, componentNumber): """ Parameters ---------- field : localFieldType field to integrate over its whole domain Omega componentNumber : int number of the component number to integrate Returns ------- double : integral over Omega of field(componentNumber) """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def GaussPointsCoordinates(self, solutionStructureGauss): """ Get the Gauss point coordinate a family of solutions relies on Arguments --------- solutionStructureGauss a solution structure with discretization on Gauss points (any number of components) Returns: ------- ndarray numpy array of Gauss points coordinates for the given solutionStructureGauss """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
[docs] def GetVolume(self, solutionStructureGauss): """ Compute volume getting Gauss points from a sample field Arguments --------- solutionStructureGauss a solution structure with discretization on Gauss points (any number of components) Returns ------- double volume of the domain the family of solutions is defined on """ raise NotImplementedError("This is a virtual method, intended to be overriden") # pragma: no cover
def __str__(self): res = "I am a FieldHandlerBase, try instanciating a particular field handler instead" return res
if __name__ == "__main__":# pragma: no cover from Mordicus import RunTestFile RunTestFile(__file__)