Skip to main content

Vector fields

🌐 Vector Field​

Gradient — āˆ‡f=(āˆ‚fāˆ‚x,ā€‰āˆ‚fāˆ‚y,ā€‰āˆ‚fāˆ‚z)\nabla f = \left(\frac{\partial f}{\partial x},\, \frac{\partial f}{\partial y},\, \frac{\partial f}{\partial z}\right)

Func<Vector, double> f = p => Math.Pow(p.x, 2) * Math.Pow(p.y, 3);
var grad = f.Gradient((1, -2, 0));

Laplacian — āˆ‡2f=āˆ‚2fāˆ‚x2+āˆ‚2fāˆ‚y2+āˆ‚2fāˆ‚z2\nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} + \frac{\partial^2 f}{\partial z^2}

Func<Vector, double> f = p => p.x * p.x + p.y * p.y + p.z * p.z;
double laplacian = f.Laplacian((1, 2, 3)); // āˆ‚Ā²f/āˆ‚x² + āˆ‚Ā²f/āˆ‚y² + āˆ‚Ā²f/āˆ‚z²

Divergence — āˆ‡ā‹…F=āˆ‚Fxāˆ‚x+āˆ‚Fyāˆ‚y+āˆ‚Fzāˆ‚z\nabla \cdot \mathbf{F} = \frac{\partial F_x}{\partial x} + \frac{\partial F_y}{\partial y} + \frac{\partial F_z}{\partial z}

var field = new VectorField(p => Math.Sin(p.x * p.y),
p => Math.Cos(p.x * p.y),
p => Math.Exp(p.z));

double div = field.Divergence((1, 2, 2));

Curl — āˆ‡Ć—F\nabla \times \mathbf{F}

var field = new VectorField(p => p.y, p => -p.x, p => 0);
var curl = field.Curl((1, 4, 2));