Funciones
Las siguientes funciones del Editor de expresiones (Expression Editor) permiten la manipulación matemática y lógica de vectores y escalares:
Operadores
Comunes a los vectores y escalares, como la suma y la sustracción
Solo escalares, como las raíces cuadradas y los logaritmos
Solo vectores, como los productos escalares y cruzados
Lógicas
Trigonométricas e hiperbólicas
Otras funciones
Tablas
Operadores
Los operadores permiten la manipulación matemática de vectores y escalares. En la siguiente tabla a, b y c son escalares, y U, V y W son vectores.
Operadores de expresión
Función
Ejemplo
Operadores: escalares y/o vectores
Suma
a = b+c o V = U+W
Sustracción
a = b-c o V = U-W
*
Multiplicación de dos escalares o un escalar y un vector
a = b*c o V = a*U (pero no V = U * W)
Operador: solo escalares
/
División
a = b/c
exp(scalar)
Función exponencial de base e
a = exp(b) eleva e a la potencia de b: a = eb
ln(scalar)
La función logarítmica natural para e
a = ln(b) devuelve el logaritmo natural de b
sqrt(scalar)
función de raíz cuadrada
a = sqrt(b)
^
función exponencial
a = b^c eleva b a la potencia de c: a = bc
Operador: solo vectores
&
producto escalar de vector
a = V&U (a = |V| |U| cos (angle))
^
producto cruzado de vector
V=U^W (|V| = |U| |W| x sin (angle) , se aplica la regla de dextrogiro.
len(vector)
devuelve la longitud del vector V
a = len(V)
normalize(vector)
se devuelve un vector de unidad normalizado V/|V|
V = normalize(U)
rotate(vector,angle, direction,center)
Se devuelve un vector rotado basado en el ángulo de rotación, el RHR, el eje de rotación y un centro de rotación opcional (si no se ha definido ningún centro, el valor por defecto es 0, 0, 0).
Vrot = rotate(V,alpha,U,W), donde V es el vector que se va a girar, alpha es el ángulo en radianes y U es el eje de rotación. Se aplica la regla de dextrogiro. W es un punto central opcional definido como vector.
Lógicas
Las funciones lógicas permiten la inclusión de sentencias lógicas.
Operadores de expresión
Función
Ejemplo
true
lógica verdadera
false
lógica falsa
<
menor que
>
mayor que
==
Igual en comparación lógica
a = (b==3) ? 1 : 2
o
o lógico
y
y lógico
!
negación lógica
!< no menor que
a = expresión ? b: c
a = b si la expresión es verdadera;
a = c si la expresión es falsa
a = (b>3) ? 1:2 = = > (si b es mayor que 3, a = 1; en caso contrario, = 2)
Trigonométricas e hiperbólicas
Las funciones trigonométricas e hiperbólicas permiten incluir las funciones correspondientes en las sentencias matemáticas.
Expresiones transcendentales
Función
Trigonométrica
sin(radians)
función de seno
cos(radians)
función de coseno
cot(radians)
función de cotangente
tan(radians)
función de tangente
asin ()
función de seno inversa, se devuelve un valor en rad
acos ()
función de coseno inversa, se devuelve un valor en rad
acot ()
función de cotangente inversa, se devuelve un valor en rad
atan ()
función de tangente inversa, se devuelve un valor en rad
atan2(y,x)
función de tangente inversa de dos variables, (-pi, pi), se devuelve un valor en rad
Hiperbólica
sinh ()
función de seno hiperbólica
cosh ()
función de coseno hiperbólica
coth ()
función de cotangente hiperbólica
tanh ()
función de tangente hiperbólica
asinh ()
función de seno hiperbólica inversa
acosh ()
función de coseno hiperbólica inversa
acoth ()
función de cotangente hiperbólica inversa
atanh ()
función de tangente hiperbólica inversa
Funciones relacionadas con la visualización
Las funciones relacionadas con la visualización hacen referencia al panel de visualización. Permiten realizar lo siguiente:
Crear una variable nueva con todas las funciones de una variable derivada. Las funciones incluyen la capacidad de mostrar dicha función en entidades geométricas, tales como límites e isosuperficies.
Acceder a variables en puntos de supervisión.
Definir variables de usuario para trazados XY.
Variable definida por el usuario para la visualización 3D
display.varname: permite definir variables de usuario, tales como contornos, isosuperficies y vectores, para gráficos 3D. La nueva variable aparece en el panel de propiedades, en Variable de la ficha Vista (View).
#display.varname: dispname [unit]: (opcional) permite definir un nombre nuevo con su unidad para una variable de visualización definida por el usuario.
Ejemplo:
display.pref = flow.P - 101325
#display.pref: presión nanométrica [Pa]
Cuando se utilizan estas expresiones, la entidad de presión nanométrica aparece debajo de los valores de la propiedad Variable, tal como se muestra a continuación.
Variables en puntos de supervisión
Se puede acceder a las variables de celda locales en cualquier punto de supervisión con el siguiente formato:
module[.subname].var@probe.name
Coordenadas de punto:
probe.coord@probe_name
Ejemplo:
inletP = flow.P@probe."Point01"+101325
Variable definida por el usuario para el trazado XY
plot.varname: permite definir una variable de usuario que se puede utilizar en trazados XY. La nueva variable común se añade como valor para la propiedad Variable en el panel de propiedades.
#plot.varname: dispname [unit]: (opcional) permite definir un nuevo nombre con la unidad para una variable definida por el usuario.
Ejemplo:
plot.head = (flow.pt@outlet - flow.pt@inlet)/998/9.8
#plot.head: altura de presión [m]
* 
No añada ningún espacio delante del símbolo de dos puntos al definir un nuevo nombre y unidad de variable de visualización o trazado.
Las unidades por defecto de las variables de visualización y trazado aparecen entre corchetes. Por ejemplo, la unidad por defecto Pa aparece para la variable de presión. Si una unidad se define correctamente, aparece en la pantalla. En este ejemplo, cuando se cambia la unidad final que aparece, también se convierten sus valores. Si la unidad no se define correctamente, el software la desestima.
Otras funciones
Operadores de expresión
Función
Ejemplo
abs(x)
función de valor absoluto
max(x,y)
función máxima
a = max(b,c) ==> a= b if b >c o a=c if c>=b
min(x,y)
función mínima
a = min(b,c) ==> a= b si b <c o a=c si c<=b
mod(x,y)
función de módulo
a = mod(c,b) ==> a = el resto de c dividido entre b
sgn(x)
se devuelve un señalizador (-1, 0 o 1) que indica el signo
a= sgn(b) ==> a = -1 si b<0 a = 0 si b=0 a = 1 si b>0
step(x)
la función de paso devuelve 0 o 1, según el valor relativo a cero
a= step(b) ==> a = 0 si b<0 a = 1 si b>=0
Tablas
La función de tabla permite la inclusión de datos de ficheros de tabla externos que se encuentran ubicados en el mismo directorio que el fichero de proyecto (*.spro).
Expresiones de tabla
Función
table(filename,x)
Interpolaciones de una tabla 1D
table(filename, x ,y)
Interpolaciones de una tabla 2D
Ejemplo:
Uso de tablas:
# Extracción de información de tablas
p = table("inlet_pressure.txt",time)
density = table("R134a_density.txt", temp,pre)
Formato de tabla: 1D (nombre de fichero, x). Permite acceder a una tabla de datos 1D ubicada en el mismo directorio que el fichero de proyecto (*.spro).
Tabla 1D para el formato de distribución 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/>
Tabla 1D para el formato de distribución no 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/>
En el formato, el valor de outside = “flat” or outside = "extrapolation" bajo la etiqueta de tabla indica cómo se determina un valor cuando la entrada x, y está fuera del rango.
Formato de tabla: 2-D (nombre de fichero, x). Permite acceder a una tabla de datos 2D que se encuentra en el mismo directorio que el fichero de proyecto (*.spro).
Formato de la tabla 2D para distribución 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 de la tabla 2D para distribución no 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>
En el formato de outside = “flat” or outside = "extrapolation" la etiqueta de tabla indica cómo determinar un valor cuando la entrada x, y está fuera del rango.
* 
Para añadir un comentario, coloque un signo de almohadilla "#" delante del texto. No inserte comentarios antes de la línea xml o línea 1.