Changelog#
Docstrings and documentation, as well as type hints, can be changed in every version without being mentioned in the version changelog.
Unpublished#
Added#
Changed#
Deprecated#
Removed#
Fixed#
0.8.0 (2026-06-19)#
This version removes the possibility to calculate variable inputs (boundary conditions or heat sources) using the kwargs_functions. Instead the inputs can now be make time variable using symbols, just like for a variable system. This most likely also improves performance.
As a result, every input implementing just a new way of calculating these kwargs_functions is deleted (e.g. ExteriorTemperatureInput).
All changes justify a major version change, but the poor test coverage of currently around 50 % don’t.
Added#
SymbolicEvaluator and ArraySymbolicEvaluator
SolveIVPHandler.solve_settings attribute
RCObjects.capacities property returning __nodes
RCNetwork.skip_infinity_check attribute
RCNetwork.resistors_filtered_equivalent
RCNetwork.time_dependent_input_symbols
RCNetwork.variable_input_vector_symbols
Tests für symbolic classes (SymbolicEvaluator and subclasses)
Changed#
Capacitor.symbols, values, values_without_capacity and values_without_capacity now don’t return the symbol/value for the internal heat source anymore
SparseSymbolicEvaluator is now subclass of SymbolicEvaluator
BoundaryCondition.is_mass_flow_start moved to FlowBoundaryCondition
InternalHeatSource.__init__ gets the settings object to pass it to Input parent class.
InhomogeneousSystemHandler is passed the variable time_dependent_function_input if a time dependent input vector exists.
RCNetwork.no_infinity now works more reliably but can take a while depending on the system. Skip it with the new RCNetwork attribute skip_infinity_check
Rename get_symbols() to property system_symbols
Rename get_values() to property system_values
Rename get_time_dependent_symbols() to property time_dependent_system_symbols
RCNetwork.input_vector returns the vector with shape (-1,1) instead flat
RCNetwork.determine_max_step returns None if no mass_flow_node was found instead of 1
RCNetwork.solve_network gets parameter time_dependent_tuple_input
rename RCNetwork.remap_time_dependent_function to remap_symbol_function and make wanted order variable
Simulation and all methods got the time_dependent_tuple_input attribute/parameter as well
Update Facade and SimpleWall models with other BoundaryConditions. This is not tested. Both models needs more updates.
Update tests.
Removed#
Input.__init__, static, initial_value.setter, calculate_static, calculate_dynamic and get_kwargs_functions
BoundaryCondition.calculate_static
InternalHeatSource.calculate_static
Radiation.get_kwargs_functions, Radiation.calculate_static_functions, Radiation.calculate_dynamic_functions, Radiation.calculate_static, Radiation.calculate_dynamic
All other calculate_kwargs methods…
InhomogeneousSystemHandler._update_input_vector_threads, _update_input_vector_processes and _update_input_vector
function sky_temp_according_to_swinbank
function sin_function
a lot of old Input classes: * InteriorBoundaryCondition * InteriorBoundaryConditionGeometric * InteriorBoundaryConditionCell * ExteriorTemperatureInputMixin * ExteriorBoundaryCondition * ExteriorBoundaryConditionGeometric * ExteriorBoundaryConditionCell * ExteriorInletFlow * ExteriorInletFlowGeometric * ExteriorInletFlowCell * ExteriorOutletFlow * ExteriorOutletFlowGeometric * ExteriorOutletFlowCell
RCNetwork.objects_with_identical_symbols
Fixed#
0.7.1 (2026-06-11)#
This is an important bug fix of the physical calculations. If possible, do not use any older version of PyRC if you use InternalHeatSource in Capacitors/Nodes.
Fixed#
Fixes critical bug that leads to not matching values and symbols when Capacitors had an InternalHeatSource.
0.7.0 (2026-06-08)#
Jump from 0.5.0 not to 0.5.1 because the previous pypi-package used the numbers and poisoned the package. So it is impossible to upload a new version of these. Therefore we jump to directly to 0.7.0
Fixed#
RCNetwork.hash works again.
0.5.0 (2026-06-08)#
Added#
HeatRadiation resistor to add Radiation between two Capacitors/Nodes if you know view factors, areas and emission coefficients. It could also have been implemented as an InternalHeatSource, but this way it wouldn’t have shown up in the system matrix and this influences system theory studies. Mind the fact that it automatically connects to the passed capacitors (no manual connection needed).
Fixed#
Docstring now refers correct if a value has an initial value instead of been optional.
Color txt files are now included in the package, which makes color_cells_by_attribute usable without own colormaps.
0.4.0 (2026-06-03)#
Added#
Symbol matrices are now build much faster for networks with hundreds or more capacitors.
Tests for classes Geometric, Cell, Material, Solid, Fluid, CompositeMaterialFluid, CompositeMaterialSolid
Cell.face_points() to get the four vertices points of a cell face in a defined direction (x, -x, y, …)
HeatRadiation (Resistor class) that can be used for radiative heat transfer between two areas/capacitors if view factors and area sizes are known.
Changed#
time-dependent values are now mapped to free symbols automatically (fixes #26). RCNetwork.solve_network now gets the parameter
time_dependent_tupleinstead oftime_dependent_functionwith an iterable containing the symbols in the order the function returns them and the function:time_dependent_tuple = (symbols_iterable, time_dependent_function)Rename PerformanceTest to PerformanceCheck and update at few lines.
Geometry.position now returns a copy of the vector (is not writeable anymore).
Removed some modules/files from coverage (validation scripts, test scripts, models (example RCNetworks))
Removed#
sympy_sparse_matrix_to_latex because it wasn’t used anyway
Fixed#
remove test code in Simulation.run()
Simulation.run() parameter
name_add_onnow initially is “” instead of NoneFix bug in Geometry class that couldn’t be created when fixed_z or fixed_xy was True
0.3.1 (2026-05-29)#
Fixed#
fix circular import in inputs module
0.3.0 (2026-05-29)#
Added#
LinePlot.add_points()
Changed#
The coordinate system of the Viewer class is now colored using RGB colors (x-axis red, y-axis green, z-axis blue). This improves the coordination within the system.
InternalHeatSource now works with Capacitors, too, instead of Nodes only. Fixes #18
The power value for InternalHeatSource can now be set directly, not only using area/volume specific parameters.
initial figure height (see PlotMixin) is now 90 mm instead of 9
Fixed#
LinePlot.plot() now correctly adds each plotted lines to self.lines.
Resistor classes used warnings.info(), which doesn’t exist. Fixed to warnings.warn()
0.2.0 (2026-05-07)#
Stationary networks can be solved analytically using the solve_stationary() method. This can be done either
symbolically or with numeric values. If numeric values are used, the result is saved in the RCSolution object of
the network, and several different solutions can be concatenated using the time_step parameter of the method. This
makes it easy to parameterise the boundary conditions and compare them, or build quasi-dynamic simulations as is
often done when PyRC is not an option.
Added#
make.py to build documentary
example wall heat conduction
new material
CopperRCNetwork can now be solved analytically
pyrc.core.solver.stationary and test for the function in it
scipy-stubs as developer dependency
Removed#
build_new.bat and build.info (build files for documentation)
Fixed#
Resistor.connect()Every BoundaryCondition that inherits from Geometric can be connected without manually passing a direction. This is the only reason to use a Geometric/Cell BoundaryCondition: not to have to.Wrong heat capacity value for material
Metal
0.1.0 (2026-04-13)#
Initial release.