Line data Source code
1 : #include "cfd/core/field_ops.h"
2 : #include "cfd/core/memory.h"
3 : #include "cfd/solvers/navier_stokes_solver.h"
4 :
5 : #include <math.h>
6 : #include <stdlib.h>
7 :
8 2 : double* calculate_velocity_magnitude(const flow_field* field, size_t nx, size_t ny) {
9 2 : if (!field || !field->u || !field->v) {
10 : return NULL;
11 : }
12 :
13 2 : double* velocity_magnitude = (double*)cfd_malloc(nx * ny * sizeof(double));
14 :
15 20 : for (size_t i = 0; i < nx * ny; i++) {
16 18 : velocity_magnitude[i] = sqrt((field->u[i] * field->u[i]) + (field->v[i] * field->v[i]));
17 : }
18 :
19 : return velocity_magnitude;
20 : }
21 :
22 1 : double* calculate_velocity_magnitude_squared(const flow_field* field, size_t nx, size_t ny) {
23 1 : if (!field || !field->u || !field->v) {
24 : return NULL;
25 : }
26 :
27 1 : double* velocity_magnitude_sq = (double*)cfd_malloc(nx * ny * sizeof(double));
28 :
29 5 : for (size_t i = 0; i < nx * ny; i++) {
30 4 : velocity_magnitude_sq[i] = (field->u[i] * field->u[i]) + (field->v[i] * field->v[i]);
31 : }
32 :
33 : return velocity_magnitude_sq;
34 : }
|