|
162 | 162 | from typing import Any, Optional, List, Dict, Union |
163 | 163 |
|
164 | 164 | import pandas as pd |
165 | | -from jpype.types import JDouble |
166 | 165 | from jpype.types import * |
167 | 166 |
|
168 | 167 | from neqsim import jneqsim |
|
174 | 173 | _YAML_SUFFIXES = {".yaml", ".yml"} |
175 | 174 |
|
176 | 175 |
|
| 176 | +def _as_float_list(values) -> list[float]: |
| 177 | + if values is None: |
| 178 | + return [] |
| 179 | + if hasattr(values, "tolist"): |
| 180 | + values = values.tolist() |
| 181 | + return [float(v) for v in list(values)] |
| 182 | + |
| 183 | + |
| 184 | +def _as_float_matrix(values) -> list[list[float]]: |
| 185 | + if values is None: |
| 186 | + return [] |
| 187 | + if hasattr(values, "tolist"): |
| 188 | + values = values.tolist() |
| 189 | + return [[float(v) for v in row] for row in list(values)] |
| 190 | + |
| 191 | + |
177 | 192 | def _resolve_path_in_cwd( |
178 | 193 | user_path: str, |
179 | 194 | *, |
@@ -4372,35 +4387,37 @@ def compressor( |
4372 | 4387 |
|
4373 | 4388 | def compressorChart(compressor, curveConditions, speed, flow, head, polyEff): |
4374 | 4389 | compressor.getCompressorChart().setCurves( |
4375 | | - JDouble[:](curveConditions), |
4376 | | - JDouble[:](speed), |
4377 | | - JDouble[:][:](flow), |
4378 | | - JDouble[:][:](head), |
4379 | | - JDouble[:][:](polyEff), |
| 4390 | + _as_float_list(curveConditions), |
| 4391 | + _as_float_list(speed), |
| 4392 | + _as_float_matrix(flow), |
| 4393 | + _as_float_matrix(head), |
| 4394 | + _as_float_matrix(polyEff), |
4380 | 4395 | ) |
4381 | 4396 |
|
4382 | 4397 |
|
4383 | 4398 | def pumpChart(pump, curveConditions, speed, flow, head, polyEff): |
4384 | 4399 | pump.getPumpChart().setCurves( |
4385 | | - JDouble[:](curveConditions), |
4386 | | - JDouble[:](speed), |
4387 | | - JDouble[:][:](flow), |
4388 | | - JDouble[:][:](head), |
4389 | | - JDouble[:][:](polyEff), |
| 4400 | + _as_float_list(curveConditions), |
| 4401 | + _as_float_list(speed), |
| 4402 | + _as_float_matrix(flow), |
| 4403 | + _as_float_matrix(head), |
| 4404 | + _as_float_matrix(polyEff), |
4390 | 4405 | ) |
4391 | 4406 |
|
4392 | 4407 |
|
4393 | 4408 | def compressorSurgeCurve(compressor, curveConditions, surgeflow, surgehead): |
4394 | 4409 | compressor.getCompressorChart().getSurgeCurve().setCurve( |
4395 | | - JDouble[:](curveConditions), JDouble[:](surgeflow), JDouble[:](surgehead) |
| 4410 | + _as_float_list(curveConditions), |
| 4411 | + _as_float_list(surgeflow), |
| 4412 | + _as_float_list(surgehead), |
4396 | 4413 | ) |
4397 | 4414 |
|
4398 | 4415 |
|
4399 | 4416 | def compressorStoneWallCurve(compressor, curveConditions, stoneWallflow, stoneWallHead): |
4400 | 4417 | compressor.getCompressorChart().getStoneWallCurve().setCurve( |
4401 | | - JDouble[:](curveConditions), |
4402 | | - JDouble[:](stoneWallflow), |
4403 | | - JDouble[:](stoneWallHead), |
| 4418 | + _as_float_list(curveConditions), |
| 4419 | + _as_float_list(stoneWallflow), |
| 4420 | + _as_float_list(stoneWallHead), |
4404 | 4421 | ) |
4405 | 4422 |
|
4406 | 4423 |
|
@@ -4534,7 +4551,7 @@ def splitter( |
4534 | 4551 | spl = jneqsim.process.equipment.splitter.Splitter(name, teststream) |
4535 | 4552 | if splitfactors is not None and len(splitfactors) > 0: |
4536 | 4553 | spl.setSplitNumber(len(splitfactors)) |
4537 | | - spl.setSplitFactors(JDouble[:](splitfactors)) |
| 4554 | + spl.setSplitFactors(_as_float_list(splitfactors)) |
4538 | 4555 | _add_to_process(spl, process) |
4539 | 4556 | return spl |
4540 | 4557 |
|
|
0 commit comments