pycanha_core.parameters — Parameters and Formulas#

The parameters submodule provides the core parameter storage and formula binding types used by the thermal model.

Parameters#

class Parameters(*args, **kwargs)#

Bases: object

Named parameter store for parametric studies.

Stores values of type bool, int, float, str, or numpy array, keyed by string name. Used with Formulas to propagate parameter changes to the thermal network.

__init__#

Create an empty Parameters store.

add_parameter#

Add a new named parameter with the given value.

contains#

Check whether a parameter with the given name exists.

property data#

Dictionary of all parameter name-value pairs.

get_idx#

Get the internal index of a parameter by name, or None.

get_memory_address#

Memory address (as int) of a parameter value for formula binding.

get_parameter#

Get the current value of a parameter.

get_size_of_parameter#

Get the byte size of a parameter’s stored value.

is_internal_parameter#

Check whether a parameter is marked as internal.

remove_parameter#

Remove a parameter by name.

rename_parameter#

Rename a parameter.

set_parameter#

Update the value of an existing parameter.

size#

Return the number of stored parameters.

Entities#

class EntityType(*values)#

Bases: Enum

Type of thermal entity in the network.

T = 0#
C = 1#
QS = 2#
QA = 3#
QE = 4#
QI = 5#
QR = 6#
GL = 7#
GR = 8#
class Entity#

Bases: object

Reference to a value in the thermal network.

An Entity points to a specific node attribute (T, C, QI, etc.) or coupling value (GL, GR) in a ThermalNetwork. Use the static factory methods (Entity.make, Entity.t, Entity.gl, etc.) or Entity.from_string to create instances.

__init__(*args, **kwargs)#
albedo_heat = <nanobind.nb_func object>#
c = <nanobind.nb_func object>#
capacity = <nanobind.nb_func object>#
conductive = <nanobind.nb_func object>#
earth_ir = <nanobind.nb_func object>#
exists#

Check if the referenced node/coupling exists in the network.

from_internal_symbol = <nanobind.nb_func object>#
from_string = <nanobind.nb_func object>#
get_value#

Get the current value (NaN if invalid).

get_value_pointer#

Memory address of the referenced value for formula binding.

gl = <nanobind.nb_func object>#
gr = <nanobind.nb_func object>#
internal_heat = <nanobind.nb_func object>#
internal_symbol_name#

Internal symbol name for formula preprocessing.

is_same_as#

Check if this entity references the same value as another.

make = <nanobind.nb_func object>#
property node_1#

First node number.

property node_2#

Second node number (-1 for single-node entities).

property node_count#

Number of nodes this entity type references (0, 1, or 2).

other_heat = <nanobind.nb_func object>#
qa = <nanobind.nb_func object>#
qe = <nanobind.nb_func object>#
qi = <nanobind.nb_func object>#
qr = <nanobind.nb_func object>#
qs = <nanobind.nb_func object>#
radiative = <nanobind.nb_func object>#
set_value#

Set the value. Returns True on success, False on failure.

solar_heat = <nanobind.nb_func object>#
string_representation#

Human-readable string, e.g. ‘T1’, ‘GL(1,2)’.

t = <nanobind.nb_func object>#
temperature = <nanobind.nb_func object>#
property token#

Entity type token string (e.g. ‘T’, ‘GL’).

property type#

Entity type (EntityType enum value).

property writable#

Whether the entity’s value can be set.

Formulas#

class Formula#

Bases: object

Abstract base class for formulas that bind parameter values to thermal entities.

__init__(*args, **kwargs)#
apply_compiled_formula#

Evaluate and write using pre-compiled pointers (faster).

apply_formula#

Evaluate and write the formula result to the entity.

calculate_derivatives#

Calculate derivative values with respect to parameter dependencies.

clone#

Create an independent copy of this formula.

compile_formula#

Compile the formula (resolve pointers for fast evaluation).

property entity#

Reference to the target Entity.

get_derivative_values#

Get derivative values for sensitivity analysis, or None.

get_value#

Get the current computed value of the formula.

property parameter_dependencies#

List of parameter names this formula depends on.

class ParameterFormula(*args, **kwargs)#

Bases: Formula

Formula that copies a named parameter value to an entity.

When applied, sets entity value = parameter value.

__init__#

Create a formula linking entity to a named parameter.

apply_compiled_formula#

Evaluate and write using pre-compiled pointers (faster).

apply_formula#

Evaluate and write the parameter value to the entity.

compile_formula#

Compile the formula (resolve pointers for fast evaluation).

get_derivative_values#

Get derivative values for sensitivity analysis, or None.

get_value#

Get the current parameter value.

class ValueFormula(*args, **kwargs)#

Bases: Formula

Formula that assigns a fixed constant value to an entity.

__init__#

Create a value formula for the given entity.

apply_compiled_formula#

Write using pre-compiled pointers (faster).

apply_formula#

Write the constant value to the entity.

compile_formula#

Compile the formula (resolve pointers for fast evaluation).

get_derivative_values#

Get derivative values for sensitivity analysis, or None.

get_value#

Get the stored constant value.

set_value#

Set the constant value to assign.

class ExpressionFormula(*args, **kwargs)#

Bases: Formula

Formula that evaluates a scalar expression of named parameters and/or entity values.

__init__#

Overloaded function.

  1. __init__(self, entity: pycanha_core.pycanha_core.parameters.Entity, parameters: pycanha_core.pycanha_core.parameters.Parameters, expression: str) -> None

Create an expression formula for the given entity.

  1. __init__(self, entity: pycanha_core.pycanha_core.parameters.Entity, parameters: pycanha_core.pycanha_core.parameters.Parameters, expression: str, network: pycanha_core.pycanha_core.tmm.ThermalNetwork) -> None

Create an expression formula with entity references via network.

apply_compiled_formula#

Evaluate the compiled expression and write the result to the entity.

apply_formula#

Evaluate the expression and write the result to the entity.

compile_formula#

Compile the expression for fast repeated evaluation.

property expression#

Original expression string.

get_derivative_values#

Get derivative values for sensitivity analysis, or None.

get_value#

Get the current expression value.

class Formulas(*args, **kwargs)#

Bases: object

Collection of formulas linking parameters to thermal entities. Call apply_formulas() to propagate parameter changes to the network.

__init__#

Overloaded function.

  1. __init__(self) -> None

Create an empty Formulas collection.

  1. __init__(self, network: pycanha_core.pycanha_core.tmm.ThermalNetwork, parameters: pycanha_core.pycanha_core.parameters.Parameters) -> None

Create a Formulas collection with associated network and parameters.

add_formula#

Overloaded function.

  1. add_formula(self, formula: pycanha_core.pycanha_core.parameters.Formula) -> None

Add a formula (by copy) to the collection.

  1. add_formula(self, formula: pycanha_core.pycanha_core.parameters.Formula) -> None

Add a formula (by shared pointer) to the collection.

apply_compiled_formulas#

Apply using pre-compiled pointers (faster, requires compile_formulas()).

apply_formulas#

Apply all formulas, propagating parameter values to the network.

associate#

Associate this collection with a network and parameters store.

calculate_derivatives#

Calculate derivatives for all stored formulas.

compile_formulas#

Compile all formulas for fast application.

create_formula#

Create a formula by auto-detecting its type from the string.

Returns a shared pointer to the created Formula.

create_parameter_formula#

Create and add a ParameterFormula for the entity and parameter name.

property debug_formulas#

Enable debug logging of formula application.

property formulas#

List of all stored Formula objects.

is_compiled_current#

Check whether the compiled state is up to date.

is_validation_current#

Check whether the current validation state is up to date.

lock_parameters_for_execution#

Lock parameters to prevent structural changes during solve.

property parameter_dependencies#

Dict mapping parameter names to lists of dependent formulas.

unlock_parameters#

Unlock parameters after solve completes.

validate_for_execution#

Validate all formulas can be evaluated.