Description: "Package with utility functions"

- Home > Modelica

## Buildings.Fluid.Utilities

Package with utility functions

### Information

This package contains utility classes that are used by the package Buildings.Fluid.

Extends from Modelica.Icons.Package (Icon for standard packages).

### Package Content

Name | Description
--- | ---
extendedPolynomial | Polynomial that is linearly extended at user specified values
polynomial | Polynomial, used because OpenModelica 1.4.3 does not expand the sum() into a scalar
Examples | Collection of models that illustrate model use and test models
BaseClasses | Package with base classes for Buildings.Fluid.Utilities

## Buildings.Fluid.Utilities.extendedPolynomial

Polynomial that is linearly extended at user specified values

### Information

For x between the bounds xmin < x < xmax, this function defines a polynomial

y = ∑i=1n ci xi-1

where n > 1 and xmin, xmax are parameters. For x < xmin and x > xmax, the polynomial is replaced by a linear function in such a way that the first derivative is continuous everywhere.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Real | x |  | x value
Real | c[:] |  | Polynomial coefficients
Real | xMin |  | Minimum x value for polynomial
Real | xMax |  | Maximum x value for polynomial

### Outputs

Type | Name | Description
--- | --- | ---
Real | y | y value

### Modelica definition

function extendedPolynomial "Polynomial that is linearly extended at user specified values" annotation(derivative=BaseClasses.der_extendedPolynomial); extends Modelica.Icons.Function; input Real x "x value"; input Real[:] c "Polynomial coefficients"; input Real xMin "Minimum x value for polynomial"; input Real xMax "Maximum x value for polynomial"; output Real y "y value"; protected Integer N = size(c,1) "Number of coefficients"; algorithm if x < xMin then y := c[1]; for i in 2:N loop y := y + xMin^(i - 1)*c[i] + (x - xMin)*(i - 1)*xMin^(i - 2)*c[i]; end for; elseif x < xMax then y := c[1]; for i in 2:N loop y := y + x^(i - 1)*c[i]; end for; else y := c[1]; for i in 2:N loop y := y + xMax^(i - 1)*c[i] + (x - xMax)*(i - 1)*xMax^(i - 2)*c[i]; end for; end if; end extendedPolynomial;

## Buildings.Fluid.Utilities.polynomial

Polynomial, used because OpenModelica 1.4.3 does not expand the sum() into a scalar

### Information

Function that computes

y = ∑i=1n ci xi-1

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Real | c[:] |  | Coefficients
Real | x |  | Independent variable

### Outputs

Type | Name | Description
--- | --- | ---
Real | y | Dependent variable

### Modelica definition

function polynomial "Polynomial, used because OpenModelica 1.4.3 does not expand the sum() into a scalar" extends Modelica.Icons.Function; input Real[:] c "Coefficients"; input Real x "Independent variable"; output Real y "Dependent variable"; algorithm y := c[1]; for i in 2 : size(c,1) loop y := y + x^(i-1) * c[i]; end for; end polynomial;