@@ -114,8 +114,9 @@ def processBC(tag, boundaryCondition, kernel):
114
114
return tag , zeroExterior
115
115
116
116
117
- def getFracLapl (mesh , DoFMap , kernel = None , rangedOpParams = {}, ** kwargs ):
117
+ def getFracLapl (DoFMap , kernel = None , rangedOpParams = {}, ** kwargs ):
118
118
119
+ mesh = DoFMap .mesh
119
120
if kernel is None and len (rangedOpParams ) == 0 :
120
121
return DoFMap .assembleStiffness (dm2 = kwargs .get ('dm2' , None ))
121
122
assert kernel is not None or 's' in rangedOpParams , (kernel , rangedOpParams )
@@ -188,7 +189,7 @@ def getFracLapl(mesh, DoFMap, kernel=None, rangedOpParams={}, **kwargs):
188
189
intervalOps = []
189
190
for s in n :
190
191
kernel = getFractionalKernel (mesh .dim , constFractionalOrder (s ), horizon , scaling = scaling , normalized = normalized )
191
- intervalOps .append (delayedFractionalLaplacianOp (mesh , DoFMap , kernel , ** kwargs ))
192
+ intervalOps .append (delayedFractionalLaplacianOp (DoFMap , kernel , ** kwargs ))
192
193
ops .append (intervalOps )
193
194
A = multiIntervalInterpolationOperator (intervals , nodes , ops )
194
195
return A
@@ -263,10 +264,10 @@ def getFracLapl(mesh, DoFMap, kernel=None, rangedOpParams={}, **kwargs):
263
264
if dm2 is not None and matrixFormat .upper () in ('H2' , 'SPARSE' , 'SPARSIFIED' ) and DoFMap .num_boundary_dofs > 0 :
264
265
# currently not implemented
265
266
dm , R_interior , R_bc = DoFMap .getFullDoFMap (dm2 )
266
- A = getFracLapl (mesh , dm , kernel , rangedOpParams = {}, ** kwargs )
267
+ A = getFracLapl (dm , kernel , rangedOpParams = {}, ** kwargs )
267
268
A = R_interior * A * R_bc .transpose ()
268
269
return A
269
- builder = nonlocalBuilder (mesh , DoFMap , kernel , params , zeroExterior = zeroExterior , comm = comm , logging = logging , PLogger = PLogger , dm2 = dm2 )
270
+ builder = nonlocalBuilder (DoFMap , kernel , params , zeroExterior = zeroExterior , comm = comm , logging = logging , PLogger = PLogger , dm2 = dm2 )
270
271
if diagonal :
271
272
with timer ('Assemble diagonal matrix {}, zeroExterior={}' .format (kernel , zeroExterior )):
272
273
A = builder .getDiagonal ()
@@ -343,7 +344,7 @@ def build(self, buildType):
343
344
self .params ['assemblyComm' ] = self .comm
344
345
self .params ['assembleOnRoot' ] = False
345
346
self .params ['forceUnsymmetric' ] = True
346
- self .S = getFracLapl (mesh , DoFMap , ** self .params )
347
+ self .S = getFracLapl (DoFMap , ** self .params )
347
348
self .A = self .S
348
349
# if not s.symmetric:
349
350
# from PyNucleus_base.linear_operators import Dense_LinearOperator
@@ -650,10 +651,9 @@ def construct(self):
650
651
651
652
652
653
class delayedFractionalLaplacianOp (delayedConstructionOperator ):
653
- def __init__ (self , mesh , dm , kernel , ** kwargs ):
654
+ def __init__ (self , dm , kernel , ** kwargs ):
654
655
super ().__init__ (dm .num_dofs ,
655
656
dm .num_dofs )
656
- self .mesh = mesh
657
657
self .dm = dm
658
658
self .kernel = kernel
659
659
self .kwargs = kwargs
@@ -662,7 +662,7 @@ def construct(self):
662
662
from copy import copy
663
663
d = copy (self .kwargs )
664
664
d .update (self .params )
665
- A = getFracLapl (self .mesh , self . dm , self .kernel , ** d )
665
+ A = getFracLapl (self .dm , self .kernel , ** d )
666
666
return A
667
667
668
668
0 commit comments