Funzioni
Le funzioni di Editor espressioni (Expression Editor) riportate di seguito consentono la manipolazione matematica e logica di vettori e scalari.
Operatori
Comuni a vettori e scalari, quali addizione e sottrazione
Solo per scalari, quali radici quadrate e logaritmi
Solo per vettori, quali prodotti scalari e incrociati
Funzioni logiche
Funzioni trigonometriche e iperboliche
Altre funzioni
Tabelle
Operatori
Gli operatori consentono la manipolazione matematica sia dei vettori che degli scalari. Nella tabella seguente, a, b e c sono scalari, mentre U, V e W sono vettori.
Operatori nelle espressioni
Funzione
Esempio
Operatori: per scalari e/o vettori
Addizione
a = b+c o V = U+W
Sottrazione
a = b-c o V = U-W
*
Moltiplicazione di due scalari oppure di uno scalare e un vettore
a = b*c oppure V = a*U (ma non V = U * W)
Operatore: solo per scalari
/
Divisione
a = b/c
exp(scalare)
Funzione esponenziale in base e
a= exp(b) eleva e alla potenza di b: a= eb
ln(scalare)
Funzione di logaritmo naturale per e
a= ln(b) restituisce il logaritmo naturale di b
sqrt(scalare)
Funzione di radice quadrata
a = sqrt(b)
^
Funzione esponenziale
a= b^c eleva b alla potenza di c: a= bc
Operatore: solo per vettori
&
Prodotto scalare di vettori
a = V&U (a = |V| |U| cos (angolo))
^
Prodotto incrociato di vettori
V=U^W (|V| = |U| |W| x sin (angolo) ), con applicazione della regola della mano destra
len(vettore)
Restituisce la lunghezza del vettore V
a = len(V)
normalize(vettore)
Restituisce un vettore di unità normalizzato V/|V|
V = normalize(U)
rotate(vettore,angolo,direzione,centro)
Restituisce un vettore ruotato in base all'angolo di rotazione, alla regola della mano destra, all'asse di rotazione e a un centro di rotazione facoltativo. Se non è definito un centro, il valore di default è 0,0,0.
Vrot = rotate(V,alpha,U,W) dove V è il vettore da ruotare, alpha è l'angolo in radianti e U è l'asse di rotazione. Viene applicata la regola della mano destra. W è un punto centrale facoltativo definito come vettore.
Funzioni logiche
Le funzioni logiche consentono di includere istruzioni logiche.
Operatori nelle espressioni
Funzione
Esempio
true
true logico
false
false logico
<
minore di
>
maggiore di
==
Uguale nel confronto logico
a = (b==3) ? 1 : 2
oppure
or logico
e
and logico
!
negazione logica
!< non minore di
a = espressione ? b : c
a = b se l'espressione è true;
a = c se l'espressione è false
a = (b>3) ? 1 : 2 ==> (se b è maggiore di 3, a = 1; in caso contrario, a = 2)
Funzioni trigonometriche e iperboliche
Le funzioni trigonometriche e iperboliche consentono di includere le funzioni corrispondenti nelle istruzioni matematiche.
Espressioni trascendenti
Funzione
Trigonometrica
sin(radianti)
Funzione di seno
cos(radianti)
Funzione di coseno
cot(radianti)
Funzione di cotangente
tan(radianti)
Funzione di tangente
asin ()
Funzione inversa di seno; restituisce il valore in rad
acos ()
Funzione inversa di coseno; restituisce il valore in rad
acot()
Funzione inversa di cotangente; restituisce il valore in rad
atan ()
Funzione inversa di tangente; restituisce il valore in rad
atan2(y,x)
Funzione inversa di tangente a due variabili (-pi, pi); restituisce il valore in rad
Iperbolica
sinh ()
Funzione di seno iperbolico
cosh ()
Funzione di coseno iperbolico
coth()
Funzione di cotangente iperbolica
tanh ()
Funzione di tangente iperbolica
asinh()
Funzione inversa di seno iperbolico
acosh()
Funzione inversa di coseno iperbolico
acoth()
Funzione inversa di cotangente iperbolica
atanh()
Funzione inversa di tangente iperbolica
Funzioni correlate alla visualizzazione
Le funzioni correlate alla visualizzazione fanno riferimento al panello di visualizzazione e consentono di eseguire le operazioni indicate di seguito.
Attivare la creazione di una nuova variabile con tutte le feature di una variabile derivata. Le feature includono la possibilità di visualizzare la funzione su entità geometriche, ad esempio limiti e isosuperfici.
Accedere alle variabili nei punti di monitoraggio.
Definire le variabili utente per i grafici XY.
Variabile definita dall'utente per la visualizzazione 3D
display.varname - Definisce le variabili dell'utente, ad esempio i contorni, le isosuperfici e i vettori per i grafici 3D. La nuova variabile viene visualizzata nel pannello Proprietà (Properties) alla voce Variabile (Variable) nella scheda Vista (View).
#display.varname: dispname [unit] - (facoltativo) Definisce un nuovo nome con l'unità per una variabile di visualizzazione definita dall'utente.
Esempio:
display.pref = flow.P - 101325
#display.pref: Pressione manometro [Pa]
Quando si utilizzano queste espressioni, l'entità Pressione manometro (Gauge Pressure) viene visualizzata sotto i valori della proprietà Variabile (Variable), come illustrato di seguito.
Variabili nei punti di monitoraggio
È possibile accedere alle variabili di celle locali in qualsiasi punto di monitoraggio utilizzando il seguente formato:
module[.subname].var@probe.name
Coordinate di punto:
probe.coord@probe_name
Esempio:
inletP = flow.P@probe."Point01"+101325
Variabile definita dall'utente per un grafico XY
plot.varname - Definisce una variabile dell'utente che è possibile utilizzare nei grafici XY. La nuova variabile comune viene aggiunta come valore per la proprietà Variabile (Variable) nel pannello Proprietà (Properties).
#plot.varname: dispname [unit] - (facoltativo) Definisce un nuovo nome con l'unità per una variabile definita dall'utente.
Esempio:
plot.head = (flow.pt@outlet - flow.pt@inlet)/998/9.8
#plot.head: Testa di pressione [m]
* 
Non aggiungere uno spazio prima dei due punti quando si definisce un nuovo nome con l'unità per la variabile di un grafico o di visualizzazione.
Le unità di default per le variabili di grafici e di visualizzazione vengono visualizzate tra parentesi quadre. Ad esempio, per la variabile di pressione viene visualizzata l'unità di default Pa. Se si definisce correttamente un'unità, l'unità viene visualizzata sullo schermo. In questo esempio, quando si modifica l'unità finale visualizzata, vengono convertiti anche i relativi valori. Se l'unità non viene definita correttamente, il software la ignora.
Altre funzioni
Operatori nelle espressioni
Funzione
Esempio
abs(x)
Funzione di valore assoluto
max(x,y)
Funzione di massimo
a = max(b,c) ==> a= b se b >c oppure a=c se c>=b
min(x,y)
Funzione di minimo
a = min(b,c) ==> a= b se b <c oppure a=c se c<=b
mod(x,y)
Funzione di modulo
a = mod(c,b) ==> a = resto di c diviso per b
sgn(x)
Restituisce un marcatore (-1, 0 o 1) che indica il segno.
a= sgn(b) ==> a = -1 se b<0 a = 0 se b=0 a = 1 se b>0
step(x)
Restituisce 0 o 1 a seconda del valore rispetto a zero.
a= step(b) ==> a = 0 se b<0 a = 1 se b>=0
Tabelle
La funzione table consente di includere dati da file di tabella esterni che si trovano nella stessa directory del file di progetto (*.spro).
Espressioni per le tabelle
Funzione
table(nomefile,x)
Esegue l'interpolazione da una tabella 1D.
table(nomefile, x, y)
Esegue l'interpolazione da una tabella 2D.
Esempio:
Utilizzo delle tabelle
# Estrazione di informazioni dalle tabelle
p = table("inlet_pressure.txt",time)
density = table("R134a_density.txt",temp,pre)
Formato tabella: 1D (nomefile,x) - Consente di accedere a una tabella dati 1D che si trova nella stessa directory del file di progetto (*.spro).
Formato della tabella 1D per la distribuzione uniforme
<?xml version="1.0" encoding="ISO-8859-1"?>
<table size="n" min="xmin" max="xmax" outside="flat | extrapolation">
# comments (x assumed to have uniform distribution)
v1
v2
...
vn
</table/>
Formato della tabella 1D per la distribuzione non uniforme
<?xml version="1.0" encoding="ISO-8859-1"?>
<table size="n" outside="flat | extrapolation">
# You can add comments by putting the hashmark “#” in front .. but do not insert comments before the xml line (line 1)
x1 v1
x2 v2
xn vn
</table/>
In questo formato, outside = “flat” or outside = "extrapolation" nel tag della tabella determina il modo in cui un valore viene determinato quando l'input x, y è fuori intervallo.
Formato tabella: 2D (nomefile,x) - Consente di accedere a una tabella dati 2D che si trova nella stessa directory del file di progetto (*.spro).
Formato della tabella 2D per la distribuzione uniforme
<?xml version="1.0" encoding="ISO-8859-1"?>
<table size="nx my" min="xmin ymin" max="xmax ymax" outside="flat | extrapolation">
# comment
# values table (x and y assumed to have uniform distribution
v(x1,y1) v(x2,y1) … v(xn,y1)
v(x1,y2) v(x2,y2) … v(xn,y2)
...
v(x1,ym) v(x2,ym) … v(xn,ym)
</table>
Formato della tabella 2D per la distribuzione non uniforme
<?xml version="1.0" encoding="ISO-8859-1"?>
<table size="nx my" outside ="flat | extrapolation">
# x and y variable ranges
x1 x2 … xn
y1 y2 … ym
# values table
v(x1,y1) v(x2,y1) … v(xn,y1)
v(x1,y2) v(x2,y2) … v(xn,y2)
...
v(x1,ym) v(x2,ym) … v(xn,ym)
</table>
In questo formato, outside = “flat” or outside = "extrapolation" nel tag della tabella indica come determinare un valore quando l'input x, y è fuori intervallo.
* 
Per aggiungere un commento, inserite un cancelletto "#" prima del testo. Non inserite commenti prima della riga xml o riga 1.