sdfr 1.2.1__py3-none-win32.whl → 1.4.0__py3-none-win32.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sdfr/SDF.py +81 -10
- sdfr/_commit_info.py +2 -2
- sdfr/sdfc_shared.dll +0 -0
- {sdfr-1.2.1.dist-info → sdfr-1.4.0.dist-info}/METADATA +1 -1
- sdfr-1.4.0.dist-info/RECORD +11 -0
- {sdfr-1.2.1.dist-info → sdfr-1.4.0.dist-info}/WHEEL +1 -1
- sdfr-1.2.1.dist-info/RECORD +0 -11
- {sdfr-1.2.1.dist-info → sdfr-1.4.0.dist-info}/licenses/LICENSE +0 -0
- {sdfr-1.2.1.dist-info → sdfr-1.4.0.dist-info}/licenses/LICENSE_README.txt +0 -0
sdfr/SDF.py
CHANGED
|
@@ -377,6 +377,7 @@ class BlockList:
|
|
|
377
377
|
block._blocklist = self
|
|
378
378
|
blocktype = block.blocktype
|
|
379
379
|
newblock = None
|
|
380
|
+
newblock_mid = None
|
|
380
381
|
name = get_member_name(block.name)
|
|
381
382
|
if blocktype == SdfBlockType.SDF_BLOCKTYPE_ARRAY:
|
|
382
383
|
newblock = BlockArray(block)
|
|
@@ -413,8 +414,10 @@ class BlockList:
|
|
|
413
414
|
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_DATABLOCK:
|
|
414
415
|
newblock = BlockData(block)
|
|
415
416
|
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_LAGRANGIAN_MESH:
|
|
416
|
-
|
|
417
|
-
|
|
417
|
+
if block.datatype_out != 0:
|
|
418
|
+
newblock = BlockLagrangianMesh(block)
|
|
419
|
+
newblock_mid = block
|
|
420
|
+
meshes.append(newblock)
|
|
418
421
|
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_NAMEVALUE:
|
|
419
422
|
newblock = BlockNameValue(block)
|
|
420
423
|
elif (
|
|
@@ -424,8 +427,10 @@ class BlockList:
|
|
|
424
427
|
newblock = BlockPlainVariable(block)
|
|
425
428
|
mesh_vars.append(newblock)
|
|
426
429
|
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_PLAIN_MESH:
|
|
427
|
-
|
|
428
|
-
|
|
430
|
+
if block.datatype_out != 0:
|
|
431
|
+
newblock = BlockPlainMesh(block)
|
|
432
|
+
newblock_mid = block
|
|
433
|
+
meshes.append(newblock)
|
|
429
434
|
elif (
|
|
430
435
|
blocktype == SdfBlockType.SDF_BLOCKTYPE_POINT_DERIVED
|
|
431
436
|
or blocktype == SdfBlockType.SDF_BLOCKTYPE_POINT_VARIABLE
|
|
@@ -437,6 +442,11 @@ class BlockList:
|
|
|
437
442
|
meshes.append(newblock)
|
|
438
443
|
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_RUN_INFO:
|
|
439
444
|
self.Run_info = get_run_info(block)
|
|
445
|
+
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_STATION:
|
|
446
|
+
sdict = BlockStation(block, name)
|
|
447
|
+
self.__dict__.update({"StationBlocks": sdict})
|
|
448
|
+
self._block_ids.update({block.id.decode(): sdict})
|
|
449
|
+
self._block_names.update({block.name.decode(): sdict})
|
|
440
450
|
else:
|
|
441
451
|
# Block not supported
|
|
442
452
|
# print(name,SdfBlockType(blocktype).name)
|
|
@@ -447,6 +457,22 @@ class BlockList:
|
|
|
447
457
|
self._block_names.update({block.name.decode(): newblock})
|
|
448
458
|
block = block.next
|
|
449
459
|
|
|
460
|
+
if newblock_mid is not None:
|
|
461
|
+
block_mid = newblock_mid
|
|
462
|
+
block_mid._handle = h
|
|
463
|
+
block_mid._blocklist = self
|
|
464
|
+
blocktype = block_mid.blocktype
|
|
465
|
+
name = get_member_name(block_mid.name) + "_mid"
|
|
466
|
+
if blocktype == SdfBlockType.SDF_BLOCKTYPE_LAGRANGIAN_MESH:
|
|
467
|
+
newblock = BlockLagrangianMesh(block_mid, mid=True)
|
|
468
|
+
elif blocktype == SdfBlockType.SDF_BLOCKTYPE_PLAIN_MESH:
|
|
469
|
+
newblock = BlockPlainMesh(block_mid, mid=True)
|
|
470
|
+
self.__dict__[name] = newblock
|
|
471
|
+
nm = block_mid.id.decode() + "_mid"
|
|
472
|
+
self._block_ids.update({nm: newblock})
|
|
473
|
+
nm = block_mid.name.decode() + "_mid"
|
|
474
|
+
self._block_names.update({nm: newblock})
|
|
475
|
+
|
|
450
476
|
for var in mesh_vars:
|
|
451
477
|
gid = var.grid_id
|
|
452
478
|
for mesh in meshes:
|
|
@@ -500,7 +526,7 @@ class Block:
|
|
|
500
526
|
dtype = self._datatype
|
|
501
527
|
if dtype == np.byte:
|
|
502
528
|
dtype = np.dtype("|S1")
|
|
503
|
-
totype = _ct_datatypes[self._contents.
|
|
529
|
+
totype = _ct_datatypes[self._contents.datatype_out]
|
|
504
530
|
cast = ct.cast(data, ct.POINTER(totype))
|
|
505
531
|
buf = buffer_from_memory(cast, blen)
|
|
506
532
|
self._owndata = False
|
|
@@ -598,8 +624,9 @@ class BlockPlainVariable(Block):
|
|
|
598
624
|
class BlockPlainMesh(Block):
|
|
599
625
|
"""Plain mesh block"""
|
|
600
626
|
|
|
601
|
-
def __init__(self, block):
|
|
627
|
+
def __init__(self, block, mid=False):
|
|
602
628
|
super().__init__(block)
|
|
629
|
+
self._mid = mid
|
|
603
630
|
self._data = None
|
|
604
631
|
self._units = tuple(
|
|
605
632
|
[block.dim_units[i].decode() for i in range(block.ndims)]
|
|
@@ -608,6 +635,11 @@ class BlockPlainMesh(Block):
|
|
|
608
635
|
[block.dim_labels[i].decode() for i in range(block.ndims)]
|
|
609
636
|
)
|
|
610
637
|
self._mult = None
|
|
638
|
+
self._bdims = self._dims
|
|
639
|
+
if mid:
|
|
640
|
+
self._id += "_mid"
|
|
641
|
+
self._name += "_mid"
|
|
642
|
+
self._dims = tuple([i - 1 for i in self._dims])
|
|
611
643
|
if bool(block.dim_mults):
|
|
612
644
|
self._mult = tuple(block.dim_mults[: block.ndims])
|
|
613
645
|
if bool(block.extents):
|
|
@@ -620,9 +652,11 @@ class BlockPlainMesh(Block):
|
|
|
620
652
|
clib = self._handle._clib
|
|
621
653
|
clib.sdf_helper_read_data(self._handle, self._contents)
|
|
622
654
|
grids = []
|
|
623
|
-
for i, d in enumerate(self.
|
|
655
|
+
for i, d in enumerate(self._bdims):
|
|
624
656
|
blen = np.dtype(self._datatype).itemsize * d
|
|
625
657
|
array = self._numpy_from_buffer(self._contents.grids[i], blen)
|
|
658
|
+
if self._mid:
|
|
659
|
+
array = 0.5 * (array[1:] + array[:-1])
|
|
626
660
|
grids.append(array)
|
|
627
661
|
self._data = tuple(grids)
|
|
628
662
|
return self._data
|
|
@@ -663,12 +697,20 @@ class BlockLagrangianMesh(BlockPlainMesh):
|
|
|
663
697
|
clib = self._handle._clib
|
|
664
698
|
clib.sdf_helper_read_data(self._handle, self._contents)
|
|
665
699
|
blen = np.dtype(self._datatype).itemsize
|
|
666
|
-
for d in self.
|
|
700
|
+
for d in self._bdims:
|
|
667
701
|
blen *= d
|
|
668
702
|
grids = []
|
|
669
|
-
for i, d in enumerate(self.
|
|
703
|
+
for i, d in enumerate(self._bdims):
|
|
670
704
|
array = self._numpy_from_buffer(self._contents.grids[i], blen)
|
|
671
|
-
array = array.reshape(self.
|
|
705
|
+
array = array.reshape(self._bdims, order="F")
|
|
706
|
+
if self._mid:
|
|
707
|
+
nn = len(self._bdims)
|
|
708
|
+
for j in range(nn):
|
|
709
|
+
s1 = nn * [slice(None)]
|
|
710
|
+
s2 = nn * [slice(None)]
|
|
711
|
+
s1[j] = slice(1, None)
|
|
712
|
+
s2[j] = slice(None, -1)
|
|
713
|
+
array = 0.5 * (array[tuple(s1)] + array[tuple(s2)])
|
|
672
714
|
grids.append(array)
|
|
673
715
|
self._data = tuple(grids)
|
|
674
716
|
return self._data
|
|
@@ -766,6 +808,35 @@ class BlockData(Block):
|
|
|
766
808
|
return self._mimetype
|
|
767
809
|
|
|
768
810
|
|
|
811
|
+
def BlockStation(block, name):
|
|
812
|
+
"""Station block"""
|
|
813
|
+
sdict = dict(
|
|
814
|
+
stations=None,
|
|
815
|
+
step=block.step,
|
|
816
|
+
step_increment=block.step_increment,
|
|
817
|
+
time=block.time,
|
|
818
|
+
time_increment=block.time_increment,
|
|
819
|
+
)
|
|
820
|
+
|
|
821
|
+
tdict = {}
|
|
822
|
+
for i in range(block.nstations):
|
|
823
|
+
varnames = []
|
|
824
|
+
for j in range(block.station_nvars[i]):
|
|
825
|
+
varnames.append(block.material_names[i + j + 1].decode())
|
|
826
|
+
stat = dict(variables=varnames)
|
|
827
|
+
stat.update({"station_move": bool(block.station_move[i])})
|
|
828
|
+
if block.ndims > 0:
|
|
829
|
+
stat.update({"station_x": block.station_x[i]})
|
|
830
|
+
if block.ndims > 1:
|
|
831
|
+
stat.update({"station_y": block.station_y[i]})
|
|
832
|
+
if block.ndims > 2:
|
|
833
|
+
stat.update({"station_z": block.station_z[i]})
|
|
834
|
+
tdict.update({block.station_names[i].decode(): stat})
|
|
835
|
+
sdict.update({"stations": tdict})
|
|
836
|
+
|
|
837
|
+
return {name: sdict}
|
|
838
|
+
|
|
839
|
+
|
|
769
840
|
class BlockStitched(Block):
|
|
770
841
|
"""Stitched block"""
|
|
771
842
|
|
sdfr/_commit_info.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__commit_date__ = "
|
|
2
|
-
__commit_id__ = "
|
|
1
|
+
__commit_date__ = "Tue May 20 13:50:42 2025 +0100"
|
|
2
|
+
__commit_id__ = "f5e130988f5c6f06f9fb34a23cefc953857a3908"
|
sdfr/sdfc_shared.dll
CHANGED
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
sdfr/__init__.py,sha256=vSTzC03qtlxqcn-7dewmUa59NvhaZ-QqBi1svDCDzIo,1153
|
|
2
|
+
sdfr/_commit_info.py,sha256=Y1T_D5xV7pPNpFclUlE2MHliyoyslJdRjgENYFLIdpY,112
|
|
3
|
+
sdfr/loadlib.py,sha256=EMcnZhh68fS72Bjv8QtfDzPbowx1FfaqX4TPhDl-o94,2328
|
|
4
|
+
sdfr/SDF.py,sha256=C-bS8EBSUhBYMmq9HSd1D8PoMnVOKV3rmURFwU4D5tY,31052
|
|
5
|
+
sdfr/sdf_helper.py,sha256=jS4fxmq1y7PeryrPFuB_Lgu5n88-cNggaWMvQy4XqSA,63682
|
|
6
|
+
sdfr/sdfc_shared.dll,sha256=h23N5g-5EuuyEGisbsrb_qhpr6xOoRwsxEEXIx11cWk,11264
|
|
7
|
+
sdfr-1.4.0.dist-info/METADATA,sha256=lkxSLGXDi0cJXyueMbl5CWZelo3inMyLBplq13u0Sco,370
|
|
8
|
+
sdfr-1.4.0.dist-info/WHEEL,sha256=MWx6St2fF6bImwReczHwY9SS3H0iODdNhwcweEl6Zjs,99
|
|
9
|
+
sdfr-1.4.0.dist-info/licenses/LICENSE,sha256=gpLeavs1KxgJFrpL_uVDh0MoDvPfJoZ89A5dSCl4P5U,1652
|
|
10
|
+
sdfr-1.4.0.dist-info/licenses/LICENSE_README.txt,sha256=KlBSoHArwoXbiygx3IJTjtgM7hLNO9o8ZMlZV77nrXs,235
|
|
11
|
+
sdfr-1.4.0.dist-info/RECORD,,
|
sdfr-1.2.1.dist-info/RECORD
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
sdfr/__init__.py,sha256=vSTzC03qtlxqcn-7dewmUa59NvhaZ-QqBi1svDCDzIo,1153
|
|
2
|
-
sdfr/_commit_info.py,sha256=s_1eIAiO2sCAlYEX7FxbqKEyU88Z6yimpVnWN9ovOg0,111
|
|
3
|
-
sdfr/loadlib.py,sha256=EMcnZhh68fS72Bjv8QtfDzPbowx1FfaqX4TPhDl-o94,2328
|
|
4
|
-
sdfr/SDF.py,sha256=aJBqweNSYMBYwRDLY-7y9Niwq73WANstgnc8xKqp9Vc,27997
|
|
5
|
-
sdfr/sdf_helper.py,sha256=jS4fxmq1y7PeryrPFuB_Lgu5n88-cNggaWMvQy4XqSA,63682
|
|
6
|
-
sdfr/sdfc_shared.dll,sha256=ivJxjeRhfCKQiu7EnkF0z2spLpvcPoxyWz_Qrhzz5Zw,11264
|
|
7
|
-
sdfr-1.2.1.dist-info/METADATA,sha256=OJsufcYrnuBoRhFTlSGoxyCFyYWdyn5d-NvWUZU1Fis,370
|
|
8
|
-
sdfr-1.2.1.dist-info/WHEEL,sha256=sbopS3iLV5SsJ2bgci-slWfBGkQn3GDSNSUKv7bIJhM,99
|
|
9
|
-
sdfr-1.2.1.dist-info/licenses/LICENSE,sha256=gpLeavs1KxgJFrpL_uVDh0MoDvPfJoZ89A5dSCl4P5U,1652
|
|
10
|
-
sdfr-1.2.1.dist-info/licenses/LICENSE_README.txt,sha256=KlBSoHArwoXbiygx3IJTjtgM7hLNO9o8ZMlZV77nrXs,235
|
|
11
|
-
sdfr-1.2.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|