前端进度条性能优化、仿真结束后后处理优化;后端C代码生成流程优化:先识别来源,再按照已知未知量需求排序,最后局部求解
This commit is contained in:
1 parent
0dcb465d84
commit
91bd9fb252
77 files changed
+11223
-551
No files matched your search
@@ -24,6 +24,7 @@ from app.simulation.core.metadata import (
|
||||
)
|
||||
from app.simulation.core.medium import GasMedium, IdealGasMedium
|
||||
from app.simulation.core.ports import PortDefinition, PortVariableDefinition
|
||||
from app.simulation.core.port_computation import PortComputation
|
||||
|
||||
|
||||
ParameterSpec = ParameterDefinition
|
||||
@@ -877,8 +878,18 @@ def validate_component_model_class(
|
||||
f"Component '{model_type}' RESULT_VARIABLES must be a tuple."
|
||||
)
|
||||
|
||||
port_by_name = {port.name: port for port in ports if isinstance(port, PortDefinition)}
|
||||
for port in ports:
|
||||
_validate_port(port, model_type=model_type)
|
||||
contract = port.computation
|
||||
if contract is not None:
|
||||
if port.domain != 'pneumatic' or not isinstance(contract, PortComputation):
|
||||
raise ValueError(f"Component '{model_type}' has an invalid pneumatic computation contract.")
|
||||
if contract.reference_port:
|
||||
reference = port_by_name.get(contract.reference_port)
|
||||
if (reference is None or reference.computation is None
|
||||
or not {'p', 'T'}.issubset(reference.computation.inputs)):
|
||||
raise ValueError(f"Component '{model_type}.{port.name}' must alias a pressure/temperature input port.")
|
||||
for parameter in parameters:
|
||||
_validate_parameter(parameter, model_type=model_type)
|
||||
for variable in result_variables:
|
||||
|
||||
Reference in new issue
Block a user