Vertex value function

A vertex value function f_{vertexvalue}: \mathcal{D} \times \mathbb{R}^d \rightarrow \mathcal{D} \times \mathbb{R}^q is a particular field function that lets invariant the mesh of a field and defined by a function h : \mathbb{R}^n \times \mathbb{R}^d  \rightarrow \mathbb{R}^q such that:

\begin{aligned} f_{vertexvalue}(\underline{t}, \underline{x})=(\underline{t}, h(\underline{t},\underline{x}))\end{aligned}

Let’s note that the input dimension of f_{vertexvalue} still design the dimension of \underline{x} : d. Its output dimension is equal to q.

The creation of the VertexValueFunction object requires the function h and the integer n: the dimension of the vertices of the mesh \mathcal{M}.

This example illustrates the creation of a field from the function h:\mathbb{R}\times\mathbb{R}^2 such as:

\begin{aligned}
   h(\underline{t}, \underline{x})=(t+x_1^2+x_2^2)
\end{aligned}

from __future__ import print_function
import openturns as ot
import openturns.viewer as viewer
from matplotlib import pylab as plt
import math as m
ot.Log.Show(ot.Log.NONE)

Create a mesh

N = 100
mesh = ot.RegularGrid(0.0, 1.0, N)

Create the function that acts the values of the mesh

h = ot.SymbolicFunction(['t', 'x1', 'x2'],  ['t+x1^2+x2^2'])

Create the field function

f = ot.VertexValueFunction(h, mesh)

Evaluate f

inF = ot.Normal(2).getSample(N)
outF = f(inF)

# print input/output at first 10 mesh nodes
txy = mesh.getVertices()
txy.stack(inF)
txy.stack(outF)
txy[:10]
tX0X1y0
000.93871230.37370191.020834
11-0.450642-0.028800251.203908
22-0.52632260.50036292.527378
33-1.7942960.65345516.646503
440.257082-0.59853284.424333
551.538375-2.04034911.52962
66-0.3003127-0.36965856.226835
770.4155438-0.060833297.176377
881.205391-1.45275511.56346
99-1.157649-0.987786411.31587


Total running time of the script: ( 0 minutes 0.002 seconds)

Gallery generated by Sphinx-Gallery