Commit ede794e9 authored by Felipe Bordeu's avatar Felipe Bordeu
Browse files

(Native Transfer) Better default method

parent fcf31a3c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -28,7 +28,9 @@ cdef class NativeTransfer:
    def SetVerbose(self, verbose:bool):
        self.cpp_object.SetVerbose(verbose)

    def SetTransferMethod(self, method):
    def SetTransferMethod(self, method:str ):
        if method is None:
            method = "Interp/Clamp"
        self.cpp_object.SetTransferMethod(method.encode())

    def GetTransferMethod(self):
+6 −2
Original line number Diff line number Diff line
@@ -105,17 +105,21 @@ def CopyFieldsFromOriginalMeshToTargetMesh(inMesh: UnstructuredMesh, outMesh: Un
def GetFieldTransferOp(inputField: FEField, targetPoints: ArrayLike, method: Union[str,None]=None, verbose:bool=False, elementFilter: Optional[ElementFilter]=None)-> Tuple[np.ndarray,np.ndarray]:
    try:
        return GetFieldTransferOpCpp(inputField, targetPoints, method, verbose=verbose, elementFilter=elementFilter)
    except :
    except ImportError:
        print("Error in the cpp version GetFieldTransferOp. Using Python (slow) version ")
        return GetFieldTransferOpPython(inputField, targetPoints, method, verbose=verbose, elementFilter=elementFilter)
    except:
        raise

def GetFieldTransferOpCpp(inputField: FEField, targetPoints: ArrayLike, method: Union[str,None]=None, verbose:bool=False, elementFilter: Optional[ElementFilter]=None)-> Tuple[np.ndarray,np.ndarray]:
    from BasicTools.Containers.NativeTransfer import NativeTransfer
    nt = NativeTransfer()
    nt.SetVerbose(verbose)
    nt.SetSourceFEField(inputField,elementFilter)
    nt.SetTargetPoints(targetPoints)
    if method is None:
        method = "Interp/Clamp"
    nt.SetTransferMethod(method)
    nt.SetSourceFEField(inputField,elementFilter)
    nt.Compute()
    op = nt.GetOperator()
    status = nt.GetStatus()