kernel_hydro.c 1.67 KB
 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ``````/******************************************************************************* * This file is part of SWIFT. * Copyright (c) 2015 Pedro Gonnet (pedro.gonnet@durham.ac.uk), * Matthieu Schaller (matthieu.schaller@durham.ac.uk) * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . * ******************************************************************************/ `````` Matthieu Schaller committed Aug 23, 2020 21 22 ``````#include "kernel_hydro.h" `````` 23 24 25 26 27 28 29 30 ``````#include #include /** * @brief Test the SPH kernel function by dumping it in the interval [0,1]. * * @param N number of intervals in [0,1]. */ `````` Matthieu Schaller committed Mar 29, 2016 31 ``````void hydro_kernel_dump(int N) { `````` 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 `````` int k; float x, w, dw_dx; float x4[4] = {0.0f, 0.0f, 0.0f, 0.0f}; float w4[4] = {0.0f, 0.0f, 0.0f, 0.0f}; // float dw_dx4[4] __attribute__ ((aligned (16))); for (k = 0; k <= N; k++) { x = ((float)k) / N; x4[3] = x4[2]; x4[2] = x4[1]; x4[1] = x4[0]; x4[0] = x; kernel_deval(x, &w, &dw_dx); // kernel_deval_vec( (vector *)x4 , (vector *)w4 , (vector *)dw_dx4 ); printf(" %e %e %e %e %e %e %e\n", x, w, dw_dx, w4[0], w4[1], w4[2], w4[3]); } }``````