diff --git a/maintainer/walberla_kernels/generate_lb_kernels.py b/maintainer/walberla_kernels/generate_lb_kernels.py index f1f43ca499..00748882fa 100644 --- a/maintainer/walberla_kernels/generate_lb_kernels.py +++ b/maintainer/walberla_kernels/generate_lb_kernels.py @@ -33,7 +33,7 @@ import lbmpy.enums import lbmpy_walberla -import lbmpy_espresso +import lbmpy_walberla.additional_data_handler import lees_edwards import relaxation_rates @@ -184,17 +184,17 @@ def paramlist(parameters, keys): ) # boundary conditions - ubb_dynamic = lbmpy_espresso.UBB( - lambda *args: None, dim=3, data_type=config.data_type.default_factory()) - ubb_data_handler = lbmpy_espresso.BounceBackSlipVelocityUBB( - method.stencil, ubb_dynamic) - + ubb = lbmpy.boundaries.boundaryconditions.UBB( + lambda *args: None, dim=3, data_type=config.data_type.default_factory(), adapt_velocity_to_force=True) + ubb_data_handler = lbmpy_walberla.additional_data_handler.default_additional_data_handler( + ubb, method, fields["pdfs"], target=target) for _, target_suffix in paramlist(parameters, ("GPU", "CPU")): lbmpy_walberla.generate_boundary( - ctx, f"Dynamic_UBB_{precision_suffix}{target_suffix}", ubb_dynamic, + ctx, f"Dynamic_UBB_{precision_suffix}{target_suffix}", ubb, method, additional_data_handler=ubb_data_handler, streaming_pattern="pull", target=target) + # replace Walberla-specific real_t by float/double. with open(f"Dynamic_UBB_{precision_suffix}{target_suffix}.h", "r+") as f: content = f.read() f.seek(0) diff --git a/maintainer/walberla_kernels/lbmpy_espresso.py b/maintainer/walberla_kernels/lbmpy_espresso.py deleted file mode 100644 index 5055fac308..0000000000 --- a/maintainer/walberla_kernels/lbmpy_espresso.py +++ /dev/null @@ -1,81 +0,0 @@ -# -# Copyright (C) 2021-2023 The ESPResSo project -# -# This file is part of ESPResSo. -# -# ESPResSo is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# ESPResSo 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 General Public License -# along with this program. If not, see . -# - -import pystencils as ps - -import lbmpy.advanced_streaming.indexing -import lbmpy.boundaries - -import lbmpy_walberla.additional_data_handler - - -class BounceBackSlipVelocityUBB( - lbmpy_walberla.additional_data_handler.UBBAdditionalDataHandler): - ''' - Dynamic UBB that implements the bounce-back method with slip velocity. - ''' - - def data_initialisation(self, direction): - ''' - Modified ``indexVector`` initialiser. The "classical" dynamic UBB - uses the velocity callback as a velocity flow profile generator. - Here we use that callback as a bounce-back slip velocity generator. - This way, the dynamic UBB can be used to implement a LB boundary. - ''' - code = super().data_initialisation(direction) - dirVec = self.stencil_info[direction][1] - token = ' = elementInitaliser(Cell(it.x(){}, it.y(){}, it.z(){}),' - old_initialiser = token.format('', '', '') - assert old_initialiser in code - new_initialiser = token.format( - '+' + str(dirVec[0]), - '+' + str(dirVec[1]), - '+' + str(dirVec[2])).replace('+-', '-') - return code.replace(old_initialiser, new_initialiser) - - -class UBB(lbmpy.boundaries.UBB): - ''' - Velocity bounce back boundary condition, enforcing specified velocity at - obstacle. This is a patched version of ``lbmpy.boundaries.UBB``, which - currently doesn't support the bounce back scheme we need. - ''' - - def __call__(self, f_out, f_in, dir_symbol, - inv_dir, lb_method, index_field): - ''' - Modify the assignments such that the source and target pdfs are swapped. - ''' - assignments = super().__call__( - f_out, f_in, dir_symbol, inv_dir, lb_method, index_field) - - assert len(assignments) > 0 - - out = [] - if len(assignments) > 1: - out.extend(assignments[:-1]) - - neighbor_offset = lbmpy.advanced_streaming.indexing.NeighbourOffsetArrays.neighbour_offset( - dir_symbol, lb_method.stencil) - - assignment = assignments[-1] - assert assignment.lhs.field == f_in - out.append(ps.Assignment(assignment.lhs.get_shifted(*neighbor_offset), - assignment.rhs - f_out(dir_symbol) + f_in(dir_symbol))) - return out diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.cpp deleted file mode 100644 index 3a01a1833c..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.cpp +++ /dev/null @@ -1,1712 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file AdvectiveFluxKernel_double_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "AdvectiveFluxKernel_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_5255e1c780a944d646f270232511968b { -static FUNC_PREFIX void advectivefluxkernel_double_precision_advectivefluxkernel_double_precision(double *RESTRICT const _data_j, double *RESTRICT const _data_rho, double *RESTRICT const _data_u, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2, int64_t const _stride_u_0, int64_t const _stride_u_1, int64_t const _stride_u_2, int64_t const _stride_u_3) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[0] && 0.0 > _data_u_21_32_11[0] && 0.0 < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_31_10[0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[0] && 0.0 < _data_u_21_30_10[0]) ? (1) : (0)))) * _data_rho_21_10[0] * _data_u_21_30_10[0] * _data_u_21_32_10[0] + _data_j_20_36_10[_stride_j_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_21_32_1m1[0] && 0.0 < _data_u_21_30_1m1[0] && 0.0 < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[0] && 0.0 > _data_u_21_32_11[0] && 0.0 < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_21_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_21_32_1m1[0] && 0.0 < _data_u_21_30_1m1[0] && 0.0 < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_32_11[0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[0] && 0.0 < _data_u_20_30_11[0]) ? (1) : (0)))) * _data_rho_20_11[0] * _data_u_20_30_11[0] * _data_u_20_31_11[0] + _data_j_20_34_10[_stride_j_0]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_2m1_31_11[0] && 0.0 < _data_u_2m1_30_11[0] && 0.0 < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[0] && 0.0 > _data_u_21_32_11[0] && 0.0 < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_20_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - _data_j_20_30_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_31_10[0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_10[0]) ? (1) : (0)))) * _data_rho_20_10[0] * _data_u_20_30_10[0] + (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] + _data_j_20_30_10[_stride_j_0]; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_32_1m1[0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[0] && 0.0 < _data_u_20_31_1m1[0]) ? (1) : (0)))) * _data_rho_20_1m1[0] * _data_u_20_30_1m1[0] * _data_u_20_31_1m1[0] + _data_j_20_33_10[_stride_j_0]; - double *RESTRICT _data_u_20_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_31; - _data_j_20_34_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_32_11[0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[0] && 0.0 < _data_u_20_30_11[0]) ? (1) : (0)))) * _data_rho_20_11[0] * _data_u_20_30_11[0] * _data_u_20_31_11[0] + _data_j_20_34_10[_stride_j_0]; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_31_10[0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[0] && 0.0 < _data_u_2m1_32_10[0]) ? (1) : (0)))) * _data_rho_2m1_10[0] * _data_u_2m1_30_10[0] * _data_u_2m1_32_10[0] + _data_j_20_35_10[_stride_j_0]; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - _data_j_20_36_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_31_10[0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[0] && 0.0 < _data_u_21_30_10[0]) ? (1) : (0)))) * _data_rho_21_10[0] * _data_u_21_30_10[0] * _data_u_21_32_10[0] + _data_j_20_36_10[_stride_j_0]; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_39_10[_stride_j_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[0] && 0.0 < _data_u_2m1_31_1m1[0] && 0.0 < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_21_32_1m1[0] && 0.0 < _data_u_21_30_1m1[0] && 0.0 < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - _data_j_20_311_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_2m1_31_11[0] && 0.0 < _data_u_2m1_30_11[0] && 0.0 < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[0] && 0.0 > _data_u_21_32_11[0] && 0.0 < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_30_1m1[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0] * _data_u_20_31_1m1[_stride_u_0] + _data_j_20_31_10[_stride_j_0]; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0] * _data_u_2m1_32_10[_stride_u_0] + _data_j_20_32_10[_stride_j_0]; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_10[_stride_u_0 * ctr_0 - _stride_u_0] + (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] + _data_j_20_30_10[_stride_j_0 * ctr_0]; - _data_j_20_31_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0] + _data_j_20_31_10[_stride_j_0 * ctr_0]; - _data_j_20_32_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0] + _data_j_20_32_10[_stride_j_0 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_20_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_21_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0 * ((double)(((0.0 > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_30_1m1[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0] * _data_u_20_31_1m1[_stride_u_0] + _data_j_20_31_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0 * fabs(_data_u_20_32_1m1[0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[0] && 0.0 < _data_u_20_31_1m1[0]) ? (1) : (0)))) * _data_rho_20_1m1[0] * _data_u_20_30_1m1[0] * _data_u_20_31_1m1[0] + _data_j_20_33_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[0] && 0.0 < _data_u_2m1_31_1m1[0] && 0.0 < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_21_32_1m1[0] && 0.0 < _data_u_21_30_1m1[0] && 0.0 < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0] + _data_j_20_31_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_20_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - double *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - double *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - double *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_2m1_31_11[0] && 0.0 < _data_u_2m1_30_11[0] && 0.0 < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_10[_stride_u_0]) + 1.0) * (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0] * _data_u_2m1_32_10[_stride_u_0] + _data_j_20_32_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_31_10[0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[0] && 0.0 < _data_u_2m1_32_10[0]) ? (1) : (0)))) * _data_rho_2m1_10[0] * _data_u_2m1_30_10[0] * _data_u_2m1_32_10[0] + _data_j_20_35_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[0] && 0.0 < _data_u_2m1_31_1m1[0] && 0.0 < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0] && 0.0 < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((double)(((0.0 > _data_u_2m1_31_11[0] && 0.0 < _data_u_2m1_30_11[0] && 0.0 < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_10[_stride_u_0 * ctr_0]) + 1.0) * (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0] + _data_j_20_32_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0 < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0 * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0) * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0 * fabs(_data_u_2m1_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((double)(((0.0 > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[0] && 0.0 < _data_u_2m1_31_1m1[0] && 0.0 < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0] && 0.0 > _data_u_20_31_10[_stride_u_0] && 0.0 > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0 * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0) * ((double)(((0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0 * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0) * -1.0 * ((double)(((0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0 > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - double *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - double *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - double *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - double *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - double *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - double *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - double *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - double *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - double *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - double *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0 * ((double)(((0.0 < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0 < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0 * ((double)(((0.0 > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0 > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } -} -} // namespace internal_5255e1c780a944d646f270232511968b - -void AdvectiveFluxKernel_double_precision::run(IBlock *block) { - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - auto u = block->getData>(uID); - - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(u->nrOfGhostLayers())); - double *RESTRICT const _data_u = u->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - const int64_t _stride_u_0 = int64_t(u->xStride()); - const int64_t _stride_u_1 = int64_t(u->yStride()); - const int64_t _stride_u_2 = int64_t(u->zStride()); - const int64_t _stride_u_3 = int64_t(1 * int64_t(u->fStride())); - internal_5255e1c780a944d646f270232511968b::advectivefluxkernel_double_precision_advectivefluxkernel_double_precision(_data_j, _data_rho, _data_u, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2, _stride_u_0, _stride_u_1, _stride_u_2, _stride_u_3); -} - -void AdvectiveFluxKernel_double_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - auto u = block->getData>(uID); - - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(u->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(u->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(u->nrOfGhostLayers())); - double *RESTRICT const _data_u = u->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - const int64_t _stride_u_0 = int64_t(u->xStride()); - const int64_t _stride_u_1 = int64_t(u->yStride()); - const int64_t _stride_u_2 = int64_t(u->zStride()); - const int64_t _stride_u_3 = int64_t(1 * int64_t(u->fStride())); - internal_5255e1c780a944d646f270232511968b::advectivefluxkernel_double_precision_advectivefluxkernel_double_precision(_data_j, _data_rho, _data_u, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2, _stride_u_0, _stride_u_1, _stride_u_2, _stride_u_3); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.h deleted file mode 100644 index 03e301d9f3..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_double_precision.h +++ /dev/null @@ -1,104 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file AdvectiveFluxKernel_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class AdvectiveFluxKernel_double_precision { -public: - AdvectiveFluxKernel_double_precision(BlockDataID jID_, BlockDataID rhoID_, - BlockDataID uID_) - : jID(jID_), rhoID(rhoID_), uID(uID_){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; - BlockDataID uID; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.cpp deleted file mode 100644 index ce4022ea13..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.cpp +++ /dev/null @@ -1,1712 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file AdvectiveFluxKernel_single_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "AdvectiveFluxKernel_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_47df4b171f276b8c3a55fc08d45e245e { -static FUNC_PREFIX void advectivefluxkernel_single_precision_advectivefluxkernel_single_precision(float *RESTRICT const _data_j, float *RESTRICT const _data_rho, float *RESTRICT const _data_u, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2, int64_t const _stride_u_0, int64_t const _stride_u_1, int64_t const _stride_u_2, int64_t const _stride_u_3) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[0] && 0.0f > _data_u_21_32_11[0] && 0.0f < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_31_10[0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[0] && 0.0f < _data_u_21_30_10[0]) ? (1) : (0)))) * _data_rho_21_10[0] * _data_u_21_30_10[0] * _data_u_21_32_10[0] + _data_j_20_36_10[_stride_j_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_21_32_1m1[0] && 0.0f < _data_u_21_30_1m1[0] && 0.0f < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[0] && 0.0f > _data_u_21_32_11[0] && 0.0f < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_21_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_21_32_1m1[0] && 0.0f < _data_u_21_30_1m1[0] && 0.0f < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_32_11[0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[0] && 0.0f < _data_u_20_30_11[0]) ? (1) : (0)))) * _data_rho_20_11[0] * _data_u_20_30_11[0] * _data_u_20_31_11[0] + _data_j_20_34_10[_stride_j_0]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_2m1_31_11[0] && 0.0f < _data_u_2m1_30_11[0] && 0.0f < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[0] && 0.0f > _data_u_21_32_11[0] && 0.0f < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_11 = _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_11 = _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_11 = _stride_u_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_20_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - _data_j_20_30_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_31_10[0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_10[0]) ? (1) : (0)))) * _data_rho_20_10[0] * _data_u_20_30_10[0] + (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] + _data_j_20_30_10[_stride_j_0]; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_32_1m1[0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[0] && 0.0f < _data_u_20_31_1m1[0]) ? (1) : (0)))) * _data_rho_20_1m1[0] * _data_u_20_30_1m1[0] * _data_u_20_31_1m1[0] + _data_j_20_33_10[_stride_j_0]; - float *RESTRICT _data_u_20_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_20_31; - _data_j_20_34_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_32_11[0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[0] && 0.0f < _data_u_20_30_11[0]) ? (1) : (0)))) * _data_rho_20_11[0] * _data_u_20_30_11[0] * _data_u_20_31_11[0] + _data_j_20_34_10[_stride_j_0]; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_31_10[0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[0] && 0.0f < _data_u_2m1_32_10[0]) ? (1) : (0)))) * _data_rho_2m1_10[0] * _data_u_2m1_30_10[0] * _data_u_2m1_32_10[0] + _data_j_20_35_10[_stride_j_0]; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_10 = _stride_u_1 * ctr_1 + _data_u_21_31; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_10 = _stride_u_1 * ctr_1 + _data_u_21_30; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_10 = _stride_u_1 * ctr_1 + _data_u_21_32; - _data_j_20_36_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_31_10[0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[0] && 0.0f < _data_u_21_30_10[0]) ? (1) : (0)))) * _data_rho_21_10[0] * _data_u_21_30_10[0] * _data_u_21_32_10[0] + _data_j_20_36_10[_stride_j_0]; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_39_10[_stride_j_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[0] && 0.0f < _data_u_2m1_31_1m1[0] && 0.0f < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_21_32_1m1[0] && 0.0f < _data_u_21_30_1m1[0] && 0.0f < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - _data_j_20_311_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_2m1_31_11[0] && 0.0f < _data_u_2m1_30_11[0] && 0.0f < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_21_32; - _data_j_20_312_10[_stride_j_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[0] && 0.0f > _data_u_21_32_11[0] && 0.0f < _data_u_21_30_11[0]) ? (1) : (0)))) * _data_rho_21_11[0] * _data_u_21_30_11[0] * _data_u_21_31_11[0] * _data_u_21_32_11[0] + _data_j_20_312_10[_stride_j_0]; - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_30_1m1[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0] * _data_u_20_31_1m1[_stride_u_0] + _data_j_20_31_10[_stride_j_0]; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0] * _data_u_2m1_32_10[_stride_u_0] + _data_j_20_32_10[_stride_j_0]; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_10[_stride_u_0 * ctr_0 - _stride_u_0] + (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] + _data_j_20_30_10[_stride_j_0 * ctr_0]; - _data_j_20_31_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0] + _data_j_20_31_10[_stride_j_0 * ctr_0]; - _data_j_20_32_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0] + _data_j_20_32_10[_stride_j_0 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_20_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_21_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] - 1.0f * ((float)(((0.0f > _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f > _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)]; - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_30_1m1[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0] * _data_u_20_31_1m1[_stride_u_0] + _data_j_20_31_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] + (-1.0f * fabs(_data_u_20_32_1m1[0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[0] && 0.0f < _data_u_20_31_1m1[0]) ? (1) : (0)))) * _data_rho_20_1m1[0] * _data_u_20_30_1m1[0] * _data_u_20_31_1m1[0] + _data_j_20_33_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0] * _data_u_21_31_1m1[_stride_u_0] * _data_u_21_32_1m1[_stride_u_0] + _data_j_20_38_10[_stride_j_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[0] && 0.0f < _data_u_2m1_31_1m1[0] && 0.0f < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f < _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_21_32_1m1[0] && 0.0f < _data_u_21_30_1m1[0] && 0.0f < _data_u_21_31_1m1[0]) ? (1) : (0)))) * _data_rho_21_1m1[0] * _data_u_21_30_1m1[0] * _data_u_21_31_1m1[0] * _data_u_21_32_1m1[0] + _data_j_20_310_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_31_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0] + _data_j_20_31_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_38_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_21_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_32; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_u_20_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_20_31; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_20_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_20_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_20_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * ctr_2 - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * ctr_2; - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * ctr_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_u_21_30 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2; - float *RESTRICT _data_u_21_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_30; - float *RESTRICT _data_u_21_31 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_21_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_31; - float *RESTRICT _data_u_21_32 = _data_u + _stride_u_2 * ctr_2 + _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_21_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_21_32; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_21_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_21_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_2m1_31_11[0] && 0.0f < _data_u_2m1_30_11[0] && 0.0f < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_10[_stride_u_0]) + 1.0f) * (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0] * _data_u_2m1_32_10[_stride_u_0] + _data_j_20_32_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_31_10[0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[0] && 0.0f < _data_u_2m1_32_10[0]) ? (1) : (0)))) * _data_rho_2m1_10[0] * _data_u_2m1_30_10[0] * _data_u_2m1_32_10[0] + _data_j_20_35_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[0] && 0.0f < _data_u_2m1_31_1m1[0] && 0.0f < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0] && 0.0f < _data_u_20_31_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + ((float)(((0.0f > _data_u_2m1_31_11[0] && 0.0f < _data_u_2m1_30_11[0] && 0.0f < _data_u_2m1_32_11[0]) ? (1) : (0)))) * _data_rho_2m1_11[0] * _data_u_2m1_30_11[0] * _data_u_2m1_31_11[0] * _data_u_2m1_32_11[0] + _data_j_20_311_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_32_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_10[_stride_u_0 * ctr_0]) + 1.0f) * (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0] + _data_j_20_32_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * ctr_0 - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * ctr_0] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0] && 0.0f < _data_u_20_31_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * ctr_0 - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_10 = _stride_u_1 * ctr_1 + _data_u_2m1_31; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_10 = _stride_u_1 * ctr_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_10 = _stride_u_1 * ctr_1 + _data_u_2m1_32; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = (-1.0f * fabs(_data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) + 1.0f) * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + (-1.0f * fabs(_data_u_2m1_31_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_10[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * ctr_1 - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_11 = _stride_u_1 * ctr_1 + _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * ctr_1 + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * ctr_1 + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * ctr_1 + _data_u_20_32; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f < _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + ((float)(((0.0f > _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_11[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] + _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0] * _data_u_2m1_31_1m1[_stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0] + _data_j_20_37_10[_stride_j_0]; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[0] && 0.0f < _data_u_2m1_31_1m1[0] && 0.0f < _data_u_2m1_32_1m1[0]) ? (1) : (0)))) * _data_rho_2m1_1m1[0] * _data_u_2m1_30_1m1[0] * _data_u_2m1_31_1m1[0] * _data_u_2m1_32_1m1[0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0] && 0.0f > _data_u_20_31_10[_stride_u_0] && 0.0f > _data_u_20_32_10[_stride_u_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0] * _data_u_20_30_10[_stride_u_0] * _data_u_20_31_10[_stride_u_0] * _data_u_20_32_10[_stride_u_0] + _data_j_20_39_10[_stride_j_0]; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - _data_j_20_37_10[_stride_j_0 * ctr_0] = (-1.0f * fabs(_data_u_20_30_10[_stride_u_0 * ctr_0]) + 1.0f) * ((float)(((0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + (-1.0f * fabs(_data_u_2m1_30_1m1[_stride_u_0 * ctr_0]) + 1.0f) * -1.0f * ((float)(((0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0] + _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * ctr_0] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * ctr_0 - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * ctr_0 - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_31_10[_stride_u_0 * ctr_0] && 0.0f > _data_u_20_32_10[_stride_u_0 * ctr_0]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * ctr_0] * _data_u_20_30_10[_stride_u_0 * ctr_0] * _data_u_20_31_10[_stride_u_0 * ctr_0] * _data_u_20_32_10[_stride_u_0 * ctr_0] + _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_u_2m1_30 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2; - float *RESTRICT _data_u_2m1_30_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_30; - float *RESTRICT _data_u_2m1_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + _stride_u_3; - float *RESTRICT _data_u_2m1_31_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_31; - float *RESTRICT _data_u_2m1_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) - _stride_u_2 + 2 * _stride_u_3; - float *RESTRICT _data_u_2m1_32_1m1 = _stride_u_1 * (_size_j_1 - 1) - _stride_u_1 + _data_u_2m1_32; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_u_20_30 = _data_u + _stride_u_2 * (_size_j_2 - 1); - float *RESTRICT _data_u_20_30_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_30; - float *RESTRICT _data_u_20_31 = _data_u + _stride_u_2 * (_size_j_2 - 1) + _stride_u_3; - float *RESTRICT _data_u_20_31_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_31; - float *RESTRICT _data_u_20_32 = _data_u + _stride_u_2 * (_size_j_2 - 1) + 2 * _stride_u_3; - float *RESTRICT _data_u_20_32_10 = _stride_u_1 * (_size_j_1 - 1) + _data_u_20_32; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = -1.0f * ((float)(((0.0f < _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] && 0.0f < _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0]) ? (1) : (0)))) * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] * _data_u_2m1_30_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_31_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] * _data_u_2m1_32_1m1[_stride_u_0 * (_size_j_0 - 1) - _stride_u_0] - 1.0f * ((float)(((0.0f > _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] && 0.0f > _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)]) ? (1) : (0)))) * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] * _data_u_20_30_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_31_10[_stride_u_0 * (_size_j_0 - 1)] * _data_u_20_32_10[_stride_u_0 * (_size_j_0 - 1)] + _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)]; - } - } - } - } -} -} // namespace internal_47df4b171f276b8c3a55fc08d45e245e - -void AdvectiveFluxKernel_single_precision::run(IBlock *block) { - auto rho = block->getData>(rhoID); - auto u = block->getData>(uID); - auto j = block->getData>(jID); - - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(u->nrOfGhostLayers())); - float *RESTRICT const _data_u = u->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - const int64_t _stride_u_0 = int64_t(u->xStride()); - const int64_t _stride_u_1 = int64_t(u->yStride()); - const int64_t _stride_u_2 = int64_t(u->zStride()); - const int64_t _stride_u_3 = int64_t(1 * int64_t(u->fStride())); - internal_47df4b171f276b8c3a55fc08d45e245e::advectivefluxkernel_single_precision_advectivefluxkernel_single_precision(_data_j, _data_rho, _data_u, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2, _stride_u_0, _stride_u_1, _stride_u_2, _stride_u_3); -} - -void AdvectiveFluxKernel_single_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto rho = block->getData>(rhoID); - auto u = block->getData>(uID); - auto j = block->getData>(jID); - - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(u->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(u->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(u->nrOfGhostLayers())); - float *RESTRICT const _data_u = u->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - const int64_t _stride_u_0 = int64_t(u->xStride()); - const int64_t _stride_u_1 = int64_t(u->yStride()); - const int64_t _stride_u_2 = int64_t(u->zStride()); - const int64_t _stride_u_3 = int64_t(1 * int64_t(u->fStride())); - internal_47df4b171f276b8c3a55fc08d45e245e::advectivefluxkernel_single_precision_advectivefluxkernel_single_precision(_data_j, _data_rho, _data_u, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2, _stride_u_0, _stride_u_1, _stride_u_2, _stride_u_3); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.h deleted file mode 100644 index 438d1846f8..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/AdvectiveFluxKernel_single_precision.h +++ /dev/null @@ -1,104 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file AdvectiveFluxKernel_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class AdvectiveFluxKernel_single_precision { -public: - AdvectiveFluxKernel_single_precision(BlockDataID jID_, BlockDataID rhoID_, - BlockDataID uID_) - : jID(jID_), rhoID(rhoID_), uID(uID_){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; - BlockDataID uID; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.cpp deleted file mode 100644 index 02a254c0d7..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.cpp +++ /dev/null @@ -1,179 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file ContinuityKernel_double_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "ContinuityKernel_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_5c5e903f8ea7925cf790d7c2318b2c56 { -static FUNC_PREFIX void continuitykernel_double_precision_continuitykernel_double_precision(double *RESTRICT const _data_j, double *RESTRICT _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2) { - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_2m1_36 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_2m1_310 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_2m1_38 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_2m1_312 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_21_35 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_21_39 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_21_37 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_21_311 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_21_32 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_2m1_36_10 = _stride_j_1 * ctr_1 + _data_j_2m1_36; - double *RESTRICT _data_j_2m1_310_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_310; - double *RESTRICT _data_j_2m1_38_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_38; - double *RESTRICT _data_j_2m1_312_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_2m1_312; - double *RESTRICT _data_j_20_33_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_33; - double *RESTRICT _data_j_20_31_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_31; - double *RESTRICT _data_j_20_34_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_20_34; - double *RESTRICT _data_j_21_35_10 = _stride_j_1 * ctr_1 + _data_j_21_35; - double *RESTRICT _data_j_21_39_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_39; - double *RESTRICT _data_j_21_37_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_37; - double *RESTRICT _data_j_21_311_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_21_311; - double *RESTRICT _data_j_21_32_10 = _stride_j_1 * ctr_1 + _data_j_21_32; - for (int64_t ctr_0 = 1; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_rho_20_10[_stride_rho_0 * ctr_0] = -1.0 * _data_j_20_30_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_312_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_31_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_32_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_34_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_36_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_38_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_39_10[_stride_j_0 * ctr_0] + _data_j_20_30_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_31_11[_stride_j_0 * ctr_0] + _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_32_10[_stride_j_0 * ctr_0] + _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_37_11[_stride_j_0 * ctr_0] + _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_38_11[_stride_j_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]; - } - } - } -} -} // namespace internal_5c5e903f8ea7925cf790d7c2318b2c56 - -void ContinuityKernel_double_precision::run(IBlock *block) { - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_5c5e903f8ea7925cf790d7c2318b2c56::continuitykernel_double_precision_continuitykernel_double_precision(_data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -void ContinuityKernel_double_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_5c5e903f8ea7925cf790d7c2318b2c56::continuitykernel_double_precision_continuitykernel_double_precision(_data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.h deleted file mode 100644 index eb229bafa4..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_double_precision.h +++ /dev/null @@ -1,102 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file ContinuityKernel_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class ContinuityKernel_double_precision { -public: - ContinuityKernel_double_precision(BlockDataID jID_, BlockDataID rhoID_) - : jID(jID_), rhoID(rhoID_){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.cpp deleted file mode 100644 index dc57515ba6..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.cpp +++ /dev/null @@ -1,179 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file ContinuityKernel_single_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "ContinuityKernel_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_990034b4e4dd57d2802b4bcb5f716e46 { -static FUNC_PREFIX void continuitykernel_single_precision_continuitykernel_single_precision(float *RESTRICT const _data_j, float *RESTRICT _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2) { - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_2m1_36 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_2m1_310 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_2m1_38 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_2m1_312 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_21_35 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_21_39 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_21_37 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_21_311 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_21_32 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_2m1_36_10 = _stride_j_1 * ctr_1 + _data_j_2m1_36; - float *RESTRICT _data_j_2m1_310_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_310; - float *RESTRICT _data_j_2m1_38_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_38; - float *RESTRICT _data_j_2m1_312_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_2m1_312; - float *RESTRICT _data_j_20_33_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_33; - float *RESTRICT _data_j_20_31_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_31; - float *RESTRICT _data_j_20_34_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_20_34; - float *RESTRICT _data_j_21_35_10 = _stride_j_1 * ctr_1 + _data_j_21_35; - float *RESTRICT _data_j_21_39_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_39; - float *RESTRICT _data_j_21_37_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_37; - float *RESTRICT _data_j_21_311_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_21_311; - float *RESTRICT _data_j_21_32_10 = _stride_j_1 * ctr_1 + _data_j_21_32; - for (int64_t ctr_0 = 1; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_rho_20_10[_stride_rho_0 * ctr_0] = -1.0f * _data_j_20_30_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_312_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_31_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_32_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_34_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_36_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_38_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_39_10[_stride_j_0 * ctr_0] + _data_j_20_30_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_31_11[_stride_j_0 * ctr_0] + _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_32_10[_stride_j_0 * ctr_0] + _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_37_11[_stride_j_0 * ctr_0] + _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_38_11[_stride_j_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]; - } - } - } -} -} // namespace internal_990034b4e4dd57d2802b4bcb5f716e46 - -void ContinuityKernel_single_precision::run(IBlock *block) { - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_990034b4e4dd57d2802b4bcb5f716e46::continuitykernel_single_precision_continuitykernel_single_precision(_data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -void ContinuityKernel_single_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_990034b4e4dd57d2802b4bcb5f716e46::continuitykernel_single_precision_continuitykernel_single_precision(_data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.h deleted file mode 100644 index c9ee9fd392..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/ContinuityKernel_single_precision.h +++ /dev/null @@ -1,102 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file ContinuityKernel_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class ContinuityKernel_single_precision { -public: - ContinuityKernel_single_precision(BlockDataID jID_, BlockDataID rhoID_) - : jID(jID_), rhoID(rhoID_){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.cpp deleted file mode 100644 index aa5f103811..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.cpp +++ /dev/null @@ -1,1484 +0,0 @@ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include "DensityPackInfo_double_precision.h" -#include "core/DataTypes.h" -#include "core/cell/CellInterval.h" -#include "stencil/Directions.h" - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -namespace walberla { -namespace pystencils { - -using walberla::cell::CellInterval; -using walberla::stencil::Direction; - -namespace internal_pack_BSW { -static FUNC_PREFIX void pack_BSW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BSW - -namespace internal_pack_SW { -static FUNC_PREFIX void pack_SW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_SW - -namespace internal_pack_TSW { -static FUNC_PREFIX void pack_TSW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TSW - -namespace internal_pack_BW { -static FUNC_PREFIX void pack_BW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BW - -namespace internal_pack_W { -static FUNC_PREFIX void pack_W(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 3] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 4] = _data_j_20_30_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 5] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 6] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 7] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 8] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_W - -namespace internal_pack_TW { -static FUNC_PREFIX void pack_TW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TW - -namespace internal_pack_BNW { -static FUNC_PREFIX void pack_BNW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BNW - -namespace internal_pack_NW { -static FUNC_PREFIX void pack_NW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_NW - -namespace internal_pack_TNW { -static FUNC_PREFIX void pack_TNW(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TNW - -namespace internal_pack_BS { -static FUNC_PREFIX void pack_BS(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BS - -namespace internal_pack_S { -static FUNC_PREFIX void pack_S(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 3] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 4] = _data_j_20_31_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 5] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_S - -namespace internal_pack_TS { -static FUNC_PREFIX void pack_TS(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TS - -namespace internal_pack_B { -static FUNC_PREFIX void pack_B(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 1] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 2] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 3] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 4] = _data_j_20_32_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_B - -namespace internal_pack_T { -static FUNC_PREFIX void pack_T(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 1] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 3] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_T - -namespace internal_pack_BN { -static FUNC_PREFIX void pack_BN(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BN - -namespace internal_pack_N { -static FUNC_PREFIX void pack_N(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_N - -namespace internal_pack_TN { -static FUNC_PREFIX void pack_TN(double *RESTRICT _data_buffer, double *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TN - -namespace internal_unpack_BSW { -static FUNC_PREFIX void unpack_BSW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BSW - -namespace internal_unpack_SW { -static FUNC_PREFIX void unpack_SW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_SW - -namespace internal_unpack_TSW { -static FUNC_PREFIX void unpack_TSW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TSW - -namespace internal_unpack_BW { -static FUNC_PREFIX void unpack_BW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_BW - -namespace internal_unpack_W { -static FUNC_PREFIX void unpack_W(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 2]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 3]; - _data_j_20_30_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 4]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 5]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 6]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 7]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 8]; - } - } - } -} -} // namespace internal_unpack_W - -namespace internal_unpack_TW { -static FUNC_PREFIX void unpack_TW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_TW - -namespace internal_unpack_BNW { -static FUNC_PREFIX void unpack_BNW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BNW - -namespace internal_unpack_NW { -static FUNC_PREFIX void unpack_NW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_NW - -namespace internal_unpack_TNW { -static FUNC_PREFIX void unpack_TNW(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TNW - -namespace internal_unpack_BS { -static FUNC_PREFIX void unpack_BS(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1]; - } - } - } -} -} // namespace internal_unpack_BS - -namespace internal_unpack_S { -static FUNC_PREFIX void unpack_S(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 2]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 3]; - _data_j_20_31_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 4]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 5]; - } - } - } -} -} // namespace internal_unpack_S - -namespace internal_unpack_TS { -static FUNC_PREFIX void unpack_TS(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1]; - } - } - } -} -} // namespace internal_unpack_TS - -namespace internal_unpack_B { -static FUNC_PREFIX void unpack_B(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 1]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 2]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 3]; - _data_j_20_32_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 4]; - } - } - } -} -} // namespace internal_unpack_B - -namespace internal_unpack_T { -static FUNC_PREFIX void unpack_T(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 2]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 3]; - } - } - } -} -} // namespace internal_unpack_T - -namespace internal_unpack_BN { -static FUNC_PREFIX void unpack_BN(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BN - -namespace internal_unpack_N { -static FUNC_PREFIX void unpack_N(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_N - -namespace internal_unpack_TN { -static FUNC_PREFIX void unpack_TN(double *RESTRICT const _data_buffer, double *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TN - -void DensityPackInfo_double_precision::pack(Direction dir, unsigned char *byte_buffer, IBlock *block) const { - double *buffer = reinterpret_cast(byte_buffer); - - auto j = block->getData>(jID); - - CellInterval ci; - j->getSliceBeforeGhostLayer(dir, ci, 1, false); - - switch (dir) { - case stencil::BSW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BSW::pack_BSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::SW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_SW::pack_SW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TSW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TSW::pack_TSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BW::pack_BW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::W: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_W::pack_W(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TW::pack_TW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BNW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BNW::pack_BNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::NW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_NW::pack_NW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TNW: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TNW::pack_TNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BS: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BS::pack_BS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::S: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_S::pack_S(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TS: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TS::pack_TS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::B: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_B::pack_B(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::T: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_T::pack_T(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BN: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BN::pack_BN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::N: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_N::pack_N(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TN: { - double *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TN::pack_TN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - default: - WALBERLA_ASSERT(false); - } -} - -void DensityPackInfo_double_precision::unpack(Direction dir, unsigned char *byte_buffer, IBlock *block) const { - double *buffer = reinterpret_cast(byte_buffer); - - auto j = block->getData>(jID); - - CellInterval ci; - j->getGhostRegion(dir, ci, 1, false); - auto communciationDirection = stencil::inverseDir[dir]; - - switch (communciationDirection) { - case stencil::BSW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BSW::unpack_BSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::SW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_SW::unpack_SW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TSW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TSW::unpack_TSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BW::unpack_BW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::W: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_W::unpack_W(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TW::unpack_TW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BNW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BNW::unpack_BNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::NW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_NW::unpack_NW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TNW: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TNW::unpack_TNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BS: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BS::unpack_BS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::S: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_S::unpack_S(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TS: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TS::unpack_TS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::B: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_B::unpack_B(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::T: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_T::unpack_T(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BN: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BN::unpack_BN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::N: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_N::unpack_N(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TN: { - double *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - double *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TN::unpack_TN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - default: - WALBERLA_ASSERT(false); - } -} - -uint_t DensityPackInfo_double_precision::size(stencil::Direction dir, const IBlock *block) const { - auto j = block->getData>(jID); - - CellInterval ci; - j->getGhostRegion(dir, ci, 1, false); - - uint_t elementsPerCell = 0; - - switch (dir) { - case stencil::BSW: - elementsPerCell = 1; - break; - - case stencil::SW: - elementsPerCell = 3; - break; - - case stencil::TSW: - elementsPerCell = 1; - break; - - case stencil::BW: - elementsPerCell = 3; - break; - - case stencil::W: - elementsPerCell = 9; - break; - - case stencil::TW: - elementsPerCell = 3; - break; - - case stencil::BNW: - elementsPerCell = 1; - break; - - case stencil::NW: - elementsPerCell = 3; - break; - - case stencil::TNW: - elementsPerCell = 1; - break; - - case stencil::BS: - elementsPerCell = 2; - break; - - case stencil::S: - elementsPerCell = 6; - break; - - case stencil::TS: - elementsPerCell = 2; - break; - - case stencil::B: - elementsPerCell = 5; - break; - - case stencil::T: - elementsPerCell = 4; - break; - - case stencil::BN: - elementsPerCell = 1; - break; - - case stencil::N: - elementsPerCell = 3; - break; - - case stencil::TN: - elementsPerCell = 1; - break; - - default: - elementsPerCell = 0; - } - return ci.numCells() * elementsPerCell * sizeof(double); -} - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.h deleted file mode 100644 index f875e7de9d..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_double_precision.h +++ /dev/null @@ -1,67 +0,0 @@ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "communication/UniformPackInfo.h" -#include "core/DataTypes.h" -#include "core/cell/CellInterval.h" -#include "domain_decomposition/IBlock.h" -#include "field/GhostLayerField.h" -#include "stencil/Directions.h" - -#define FUNC_PREFIX - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class DensityPackInfo_double_precision - : public ::walberla::communication::UniformPackInfo { -public: - DensityPackInfo_double_precision(BlockDataID jID_) : jID(jID_){}; - virtual ~DensityPackInfo_double_precision() {} - - bool constantDataExchange() const { return true; } - bool threadsafeReceiving() const { return true; } - - void unpackData(IBlock *receiver, stencil::Direction dir, - mpi::RecvBuffer &buffer) { - const auto dataSize = size(dir, receiver); - unpack(dir, buffer.skip(dataSize), receiver); - } - - void communicateLocal(const IBlock *sender, IBlock *receiver, - stencil::Direction dir) { - // TODO: optimize by generating kernel for this case - mpi::SendBuffer sBuffer; - packData(sender, dir, sBuffer); - mpi::RecvBuffer rBuffer(sBuffer); - unpackData(receiver, stencil::inverseDir[dir], rBuffer); - } - - void packDataImpl(const IBlock *sender, stencil::Direction dir, - mpi::SendBuffer &outBuffer) const { - const auto dataSize = size(dir, sender); - pack(dir, outBuffer.forward(dataSize), const_cast(sender)); - } - - void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block) const; - void unpack(stencil::Direction dir, unsigned char *buffer, - IBlock *block) const; - uint_t size(stencil::Direction dir, const IBlock *block) const; - -private: - BlockDataID jID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.cpp deleted file mode 100644 index 54cca32eec..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.cpp +++ /dev/null @@ -1,1484 +0,0 @@ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include "DensityPackInfo_single_precision.h" -#include "core/DataTypes.h" -#include "core/cell/CellInterval.h" -#include "stencil/Directions.h" - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -namespace walberla { -namespace pystencils { - -using walberla::cell::CellInterval; -using walberla::stencil::Direction; - -namespace internal_pack_BSW { -static FUNC_PREFIX void pack_BSW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BSW - -namespace internal_pack_SW { -static FUNC_PREFIX void pack_SW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_SW - -namespace internal_pack_TSW { -static FUNC_PREFIX void pack_TSW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TSW - -namespace internal_pack_BW { -static FUNC_PREFIX void pack_BW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BW - -namespace internal_pack_W { -static FUNC_PREFIX void pack_W(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 3] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 4] = _data_j_20_30_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 5] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 6] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 7] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 8] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_W - -namespace internal_pack_TW { -static FUNC_PREFIX void pack_TW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TW - -namespace internal_pack_BNW { -static FUNC_PREFIX void pack_BNW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BNW - -namespace internal_pack_NW { -static FUNC_PREFIX void pack_NW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_NW - -namespace internal_pack_TNW { -static FUNC_PREFIX void pack_TNW(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TNW - -namespace internal_pack_BS { -static FUNC_PREFIX void pack_BS(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BS - -namespace internal_pack_S { -static FUNC_PREFIX void pack_S(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 1] = _data_j_20_33_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 2] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 3] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 4] = _data_j_20_31_10[_stride_j_0 * ctr_0]; - _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 5] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_S - -namespace internal_pack_TS { -static FUNC_PREFIX void pack_TS(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TS - -namespace internal_pack_B { -static FUNC_PREFIX void pack_B(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0] = _data_j_20_39_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 1] = _data_j_20_35_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 2] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 3] = _data_j_20_37_10[_stride_j_0 * ctr_0]; - _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 4] = _data_j_20_32_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_B - -namespace internal_pack_T { -static FUNC_PREFIX void pack_T(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0] = _data_j_20_310_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 1] = _data_j_20_36_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 3] = _data_j_20_38_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_T - -namespace internal_pack_BN { -static FUNC_PREFIX void pack_BN(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_BN - -namespace internal_pack_N { -static FUNC_PREFIX void pack_N(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0] = _data_j_20_311_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1] = _data_j_20_34_10[_stride_j_0 * ctr_0]; - _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_N - -namespace internal_pack_TN { -static FUNC_PREFIX void pack_TN(float *RESTRICT _data_buffer, float *RESTRICT const _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0] = _data_j_20_312_10[_stride_j_0 * ctr_0]; - } - } - } -} -} // namespace internal_pack_TN - -namespace internal_unpack_BSW { -static FUNC_PREFIX void unpack_BSW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BSW - -namespace internal_unpack_SW { -static FUNC_PREFIX void unpack_SW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_SW - -namespace internal_unpack_TSW { -static FUNC_PREFIX void unpack_TSW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TSW - -namespace internal_unpack_BW { -static FUNC_PREFIX void unpack_BW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_BW - -namespace internal_unpack_W { -static FUNC_PREFIX void unpack_W(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 2]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 3]; - _data_j_20_30_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 4]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 5]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 6]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 7]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[9 * _size_j_0 * _size_j_1 * ctr_2 + 9 * _size_j_0 * ctr_1 + 9 * ctr_0 + 8]; - } - } - } -} -} // namespace internal_unpack_W - -namespace internal_unpack_TW { -static FUNC_PREFIX void unpack_TW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_TW - -namespace internal_unpack_BNW { -static FUNC_PREFIX void unpack_BNW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BNW - -namespace internal_unpack_NW { -static FUNC_PREFIX void unpack_NW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_NW - -namespace internal_unpack_TNW { -static FUNC_PREFIX void unpack_TNW(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TNW - -namespace internal_unpack_BS { -static FUNC_PREFIX void unpack_BS(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1]; - } - } - } -} -} // namespace internal_unpack_BS - -namespace internal_unpack_S { -static FUNC_PREFIX void unpack_S(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0]; - _data_j_20_33_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 1]; - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 2]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 3]; - _data_j_20_31_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 4]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[6 * _size_j_0 * _size_j_1 * ctr_2 + 6 * _size_j_0 * ctr_1 + 6 * ctr_0 + 5]; - } - } - } -} -} // namespace internal_unpack_S - -namespace internal_unpack_TS { -static FUNC_PREFIX void unpack_TS(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[2 * _size_j_0 * _size_j_1 * ctr_2 + 2 * _size_j_0 * ctr_1 + 2 * ctr_0 + 1]; - } - } - } -} -} // namespace internal_unpack_TS - -namespace internal_unpack_B { -static FUNC_PREFIX void unpack_B(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_39_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0]; - _data_j_20_35_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 1]; - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 2]; - _data_j_20_37_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 3]; - _data_j_20_32_10[_stride_j_0 * ctr_0] = _data_buffer[5 * _size_j_0 * _size_j_1 * ctr_2 + 5 * _size_j_0 * ctr_1 + 5 * ctr_0 + 4]; - } - } - } -} -} // namespace internal_unpack_B - -namespace internal_unpack_T { -static FUNC_PREFIX void unpack_T(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_310_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0]; - _data_j_20_36_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 2]; - _data_j_20_38_10[_stride_j_0 * ctr_0] = _data_buffer[4 * _size_j_0 * _size_j_1 * ctr_2 + 4 * _size_j_0 * ctr_1 + 4 * ctr_0 + 3]; - } - } - } -} -} // namespace internal_unpack_T - -namespace internal_unpack_BN { -static FUNC_PREFIX void unpack_BN(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_BN - -namespace internal_unpack_N { -static FUNC_PREFIX void unpack_N(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_311_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0]; - _data_j_20_34_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 1]; - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[3 * _size_j_0 * _size_j_1 * ctr_2 + 3 * _size_j_0 * ctr_1 + 3 * ctr_0 + 2]; - } - } - } -} -} // namespace internal_unpack_N - -namespace internal_unpack_TN { -static FUNC_PREFIX void unpack_TN(float *RESTRICT const _data_buffer, float *RESTRICT _data_j, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3) { - for (int64_t ctr_2 = 0; ctr_2 < _size_j_2; ctr_2 += 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_j_1; ctr_1 += 1) { - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - for (int64_t ctr_0 = 0; ctr_0 < _size_j_0; ctr_0 += 1) { - _data_j_20_312_10[_stride_j_0 * ctr_0] = _data_buffer[_size_j_0 * _size_j_1 * ctr_2 + _size_j_0 * ctr_1 + ctr_0]; - } - } - } -} -} // namespace internal_unpack_TN - -void DensityPackInfo_single_precision::pack(Direction dir, unsigned char *byte_buffer, IBlock *block) const { - float *buffer = reinterpret_cast(byte_buffer); - - auto j = block->getData>(jID); - - CellInterval ci; - j->getSliceBeforeGhostLayer(dir, ci, 1, false); - - switch (dir) { - case stencil::BSW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BSW::pack_BSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::SW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_SW::pack_SW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TSW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TSW::pack_TSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BW::pack_BW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::W: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_W::pack_W(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TW::pack_TW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BNW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BNW::pack_BNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::NW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_NW::pack_NW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TNW: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TNW::pack_TNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BS: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BS::pack_BS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::S: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_S::pack_S(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TS: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TS::pack_TS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::B: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_B::pack_B(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::T: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_T::pack_T(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BN: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_BN::pack_BN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::N: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_N::pack_N(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TN: { - float *RESTRICT _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_pack_TN::pack_TN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - default: - WALBERLA_ASSERT(false); - } -} - -void DensityPackInfo_single_precision::unpack(Direction dir, unsigned char *byte_buffer, IBlock *block) const { - float *buffer = reinterpret_cast(byte_buffer); - - auto j = block->getData>(jID); - - CellInterval ci; - j->getGhostRegion(dir, ci, 1, false); - auto communciationDirection = stencil::inverseDir[dir]; - - switch (communciationDirection) { - case stencil::BSW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BSW::unpack_BSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::SW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_SW::unpack_SW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TSW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TSW::unpack_TSW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BW::unpack_BW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::W: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_W::unpack_W(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TW::unpack_TW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BNW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BNW::unpack_BNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::NW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_NW::unpack_NW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TNW: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TNW::unpack_TNW(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BS: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BS::unpack_BS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::S: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_S::unpack_S(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TS: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TS::unpack_TS(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::B: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_B::unpack_B(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::T: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_T::unpack_T(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::BN: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_BN::unpack_BN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::N: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_N::unpack_N(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - case stencil::TN: { - float *RESTRICT const _data_buffer = buffer; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(j->nrOfGhostLayers())); - float *RESTRICT _data_j = j->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_unpack_TN::unpack_TN(_data_buffer, _data_j, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3); - break; - } - - default: - WALBERLA_ASSERT(false); - } -} - -uint_t DensityPackInfo_single_precision::size(stencil::Direction dir, const IBlock *block) const { - auto j = block->getData>(jID); - - CellInterval ci; - j->getGhostRegion(dir, ci, 1, false); - - uint_t elementsPerCell = 0; - - switch (dir) { - case stencil::BSW: - elementsPerCell = 1; - break; - - case stencil::SW: - elementsPerCell = 3; - break; - - case stencil::TSW: - elementsPerCell = 1; - break; - - case stencil::BW: - elementsPerCell = 3; - break; - - case stencil::W: - elementsPerCell = 9; - break; - - case stencil::TW: - elementsPerCell = 3; - break; - - case stencil::BNW: - elementsPerCell = 1; - break; - - case stencil::NW: - elementsPerCell = 3; - break; - - case stencil::TNW: - elementsPerCell = 1; - break; - - case stencil::BS: - elementsPerCell = 2; - break; - - case stencil::S: - elementsPerCell = 6; - break; - - case stencil::TS: - elementsPerCell = 2; - break; - - case stencil::B: - elementsPerCell = 5; - break; - - case stencil::T: - elementsPerCell = 4; - break; - - case stencil::BN: - elementsPerCell = 1; - break; - - case stencil::N: - elementsPerCell = 3; - break; - - case stencil::TN: - elementsPerCell = 1; - break; - - default: - elementsPerCell = 0; - } - return ci.numCells() * elementsPerCell * sizeof(float); -} - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.h deleted file mode 100644 index d003d764c5..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DensityPackInfo_single_precision.h +++ /dev/null @@ -1,67 +0,0 @@ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "communication/UniformPackInfo.h" -#include "core/DataTypes.h" -#include "core/cell/CellInterval.h" -#include "domain_decomposition/IBlock.h" -#include "field/GhostLayerField.h" -#include "stencil/Directions.h" - -#define FUNC_PREFIX - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class DensityPackInfo_single_precision - : public ::walberla::communication::UniformPackInfo { -public: - DensityPackInfo_single_precision(BlockDataID jID_) : jID(jID_){}; - virtual ~DensityPackInfo_single_precision() {} - - bool constantDataExchange() const { return true; } - bool threadsafeReceiving() const { return true; } - - void unpackData(IBlock *receiver, stencil::Direction dir, - mpi::RecvBuffer &buffer) { - const auto dataSize = size(dir, receiver); - unpack(dir, buffer.skip(dataSize), receiver); - } - - void communicateLocal(const IBlock *sender, IBlock *receiver, - stencil::Direction dir) { - // TODO: optimize by generating kernel for this case - mpi::SendBuffer sBuffer; - packData(sender, dir, sBuffer); - mpi::RecvBuffer rBuffer(sBuffer); - unpackData(receiver, stencil::inverseDir[dir], rBuffer); - } - - void packDataImpl(const IBlock *sender, stencil::Direction dir, - mpi::SendBuffer &outBuffer) const { - const auto dataSize = size(dir, sender); - pack(dir, outBuffer.forward(dataSize), const_cast(sender)); - } - - void pack(stencil::Direction dir, unsigned char *buffer, IBlock *block) const; - void unpack(stencil::Direction dir, unsigned char *buffer, - IBlock *block) const; - uint_t size(stencil::Direction dir, const IBlock *block) const; - -private: - BlockDataID jID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.cpp deleted file mode 100644 index 11fa0bfa36..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.cpp +++ /dev/null @@ -1,1200 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernelWithElectrostatic_double_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "DiffusiveFluxKernelWithElectrostatic_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_32fac7f834b08f4a768ccef85dadf7a1 { -static FUNC_PREFIX void diffusivefluxkernelwithelectrostatic_double_precision_diffusivefluxkernelwithelectrostatic_double_precision(double D, double *RESTRICT const _data_j, double *RESTRICT const _data_phi, double *RESTRICT const _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_phi_0, int64_t const _stride_phi_1, int64_t const _stride_phi_2, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2, double f_ext_0, double f_ext_1, double f_ext_2, double kT, double z) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_21_11[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_11[0] + kT * -2.0 * _data_rho_21_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_21_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_21_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0 * _data_phi_21_10[0] - 1.0 * _data_phi_21_10[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0 * _data_rho_21_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_21_11[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_11[0] + kT * -2.0 * _data_rho_21_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_21_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0 * _data_rho_21_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_11[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_11[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0 * _data_phi_20_11[0] - 1.0 * _data_phi_20_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[0] + kT * -2.0 * _data_rho_2m1_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_21_11[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_11[0] + kT * -2.0 * _data_rho_21_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_21_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_30_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * -1.0 + kT * (-1.0 * _data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0])) * 0.081462038946841925 * ((1.0) / (kT)); - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - _data_j_20_33_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_1m1[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0 * _data_phi_20_1m1[0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - double *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_phi_20_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_20; - _data_j_20_34_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_11[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_11[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0 * _data_phi_20_11[0] - 1.0 * _data_phi_20_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[0] + _data_phi_2m1_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_2m1_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_36_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_21_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0 * _data_phi_21_10[0] - 1.0 * _data_phi_21_10[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[0] + kT * -2.0 * _data_rho_2m1_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0 * _data_rho_21_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[0] + kT * -2.0 * _data_rho_2m1_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_21_11[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_11[0] + kT * -2.0 * _data_rho_21_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_11[0] * _data_rho_21_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0]) * -1.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 2.0 + z * (-1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0])) * 0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0])) * -0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * -1.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0])) * 0.081462038946841925 * ((1.0) / (kT)); - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0]) * -1.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0 + z * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0])) * 0.081462038946841925 * ((1.0) / (kT)); - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0])) * -0.081462038946841925 * ((1.0) / (kT)); - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * -1.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)]) * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)])) * 0.081462038946841925 * ((1.0) / (kT)); - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0]) * -1.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 2.0 + z * (-1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0])) * 0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_1m1[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0 * _data_phi_20_1m1[0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[0] + kT * -2.0 * _data_rho_2m1_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0 * _data_rho_21_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0]) * -1.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0 + z * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0])) * 0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0 + kT * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - double *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[0] + kT * -2.0 * _data_rho_2m1_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0])) * -0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[0] + _data_phi_2m1_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0 * _data_phi_20_10[0] - 1.0 * _data_phi_2m1_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[0] + kT * -2.0 * _data_rho_2m1_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[0] + kT * -2.0 * _data_rho_2m1_11[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) * 2.0 + z * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0])) * -0.081462038946841925 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0 * _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0 * _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[0] + kT * -2.0 * _data_rho_2m1_1m1[0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0 * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0 + kT * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0 + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0 * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0) * -0.028801180074297286 * ((1.0) / (kT)); - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - double *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - double *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - double *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0 * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496 * ((1.0) / (kT)); - } - } - } - } -} -} // namespace internal_32fac7f834b08f4a768ccef85dadf7a1 - -void DiffusiveFluxKernelWithElectrostatic_double_precision::run(IBlock *block) { - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - auto phi = block->getData>(phiID); - - auto &D = this->D_; - auto &f_ext_1 = this->f_ext_1_; - auto &f_ext_2 = this->f_ext_2_; - auto &f_ext_0 = this->f_ext_0_; - auto &z = this->z_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(phi->nrOfGhostLayers())); - double *RESTRICT const _data_phi = phi->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_phi_0 = int64_t(phi->xStride()); - const int64_t _stride_phi_1 = int64_t(phi->yStride()); - const int64_t _stride_phi_2 = int64_t(phi->zStride()); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_32fac7f834b08f4a768ccef85dadf7a1::diffusivefluxkernelwithelectrostatic_double_precision_diffusivefluxkernelwithelectrostatic_double_precision(D, _data_j, _data_phi, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_phi_0, _stride_phi_1, _stride_phi_2, _stride_rho_0, _stride_rho_1, _stride_rho_2, f_ext_0, f_ext_1, f_ext_2, kT, z); -} - -void DiffusiveFluxKernelWithElectrostatic_double_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - auto phi = block->getData>(phiID); - - auto &D = this->D_; - auto &f_ext_1 = this->f_ext_1_; - auto &f_ext_2 = this->f_ext_2_; - auto &f_ext_0 = this->f_ext_0_; - auto &z = this->z_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(phi->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(phi->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(phi->nrOfGhostLayers())); - double *RESTRICT const _data_phi = phi->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_phi_0 = int64_t(phi->xStride()); - const int64_t _stride_phi_1 = int64_t(phi->yStride()); - const int64_t _stride_phi_2 = int64_t(phi->zStride()); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_32fac7f834b08f4a768ccef85dadf7a1::diffusivefluxkernelwithelectrostatic_double_precision_diffusivefluxkernelwithelectrostatic_double_precision(D, _data_j, _data_phi, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_phi_0, _stride_phi_1, _stride_phi_2, _stride_rho_0, _stride_rho_1, _stride_rho_2, f_ext_0, f_ext_1, f_ext_2, kT, z); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.h deleted file mode 100644 index b2c0ef39d5..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_double_precision.h +++ /dev/null @@ -1,114 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernelWithElectrostatic_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class DiffusiveFluxKernelWithElectrostatic_double_precision { -public: - DiffusiveFluxKernelWithElectrostatic_double_precision( - BlockDataID jID_, BlockDataID phiID_, BlockDataID rhoID_, double D, - double f_ext_0, double f_ext_1, double f_ext_2, double kT, double z) - : jID(jID_), phiID(phiID_), rhoID(rhoID_), D_(D), f_ext_0_(f_ext_0), - f_ext_1_(f_ext_1), f_ext_2_(f_ext_2), kT_(kT), z_(z){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function getSweep( - const shared_ptr - &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr - &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID phiID; - BlockDataID rhoID; - double D_; - double f_ext_0_; - double f_ext_1_; - double f_ext_2_; - double kT_; - double z_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.cpp deleted file mode 100644 index 7017b597a3..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.cpp +++ /dev/null @@ -1,1218 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernelWithElectrostatic_single_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "DiffusiveFluxKernelWithElectrostatic_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_823ab2463d465630661d5edc8f90930c { -static FUNC_PREFIX void diffusivefluxkernelwithelectrostatic_single_precision_diffusivefluxkernelwithelectrostatic_single_precision(float D, float *RESTRICT const _data_j, float *RESTRICT const _data_phi, float *RESTRICT const _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_phi_0, int64_t const _stride_phi_1, int64_t const _stride_phi_2, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2, float f_ext_0, float f_ext_1, float f_ext_2, float kT, float z) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_11[0] + _data_phi_21_11[_stride_phi_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_11[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_11[_stride_phi_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * ctr_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0f * _data_rho_21_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_11[0] + _data_phi_21_11[_stride_phi_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_11[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_11[_stride_phi_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * ctr_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0f * _data_rho_21_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_11[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_11[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_20_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[0] + kT * -2.0f * _data_rho_2m1_11[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_11[0] + _data_phi_21_11[_stride_phi_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_11[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_11[_stride_phi_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * ctr_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _data_phi_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _data_phi_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_30_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * -1.0f + kT * (-1.0f * _data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - _data_j_20_33_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_1m1[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0f * _data_phi_20_1m1[0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_phi_20_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_20; - _data_j_20_34_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_11[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_11[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_20_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[0] + _data_phi_2m1_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_2m1_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_36_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_10[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[0] + kT * -2.0f * _data_rho_2m1_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0f * _data_rho_21_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[0] + kT * -2.0f * _data_rho_2m1_11[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_21; - _data_j_20_312_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_21_10[_stride_phi_0] + _data_phi_20_11[0] + _data_phi_21_11[_stride_phi_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_20_11[0] - 1.0f * _data_phi_21_10[0] + _data_phi_20_11[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_11[0]) * (-1.0f * _data_phi_21_10[0] - 1.0f * _data_phi_21_11[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_11[_stride_phi_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0]) * -1.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 2.0f + z * (-1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0])) * -0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * ctr_1 + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * -1.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0]) * -1.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0f + z * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0])) * -0.081462038946841925f * ((1.0f) / (kT)); - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] + _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * ctr_0]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * ctr_0])) * 0.02351606505734748f * ((1.0f) / (kT)); - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * -1.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)]) * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)])) * 0.081462038946841925f * ((1.0f) / (kT)); - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_21_11[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_11[_stride_phi_0 * (_size_j_0 - 1)])) * 0.02351606505734748f * ((1.0f) / (kT)); - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0]) * -1.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 2.0f + z * (-1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[_stride_rho_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_1m1[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_20_1m1[0]) * (-1.0f * _data_phi_20_1m1[0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_20_10[0] + _data_phi_20_10[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_21_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_21_1m1[_stride_rho_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_20_1m1[_stride_phi_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[0] + kT * -2.0f * _data_rho_2m1_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * _data_rho_21_1m1[0] + kT * -2.0f * _data_rho_21_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_21_1m1[0] * _data_rho_21_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_21_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0]) * -1.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 2.0f + z * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0])) * 0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_21_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_21; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * -2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_21_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_21_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_21_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_20_1m1[_stride_phi_0 * ctr_0])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * -2.0f + kT * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)])) * 0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * ctr_2 - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * ctr_2; - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_phi_21 = _data_phi + _stride_phi_2 * ctr_2 + _stride_phi_2; - float *RESTRICT _data_phi_21_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_21; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_21_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[0] + kT * -2.0f * _data_rho_2m1_11[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[_stride_rho_0])) * -0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[0] + _data_phi_2m1_10[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_10[0]) * (-1.0f * _data_phi_20_10[0] - 1.0f * _data_phi_2m1_10[0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[0] + kT * -2.0f * _data_rho_2m1_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * _data_rho_2m1_11[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[0] + kT * -2.0f * _data_rho_2m1_11[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_11[0] * _data_rho_2m1_11[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_11[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0]) * 2.0f + z * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0])) * -0.081462038946841925f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0 - _stride_phi_0] - 1.0f * _data_phi_2m1_10[_stride_phi_0 * ctr_0 - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * ctr_1 + _data_phi_2m1; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) + z * (_data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] - 1.0f * _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] + _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] + _data_phi_2m1_10[_stride_phi_0 * (_size_j_0 - 1)]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * ctr_1 - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * ctr_1 + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_11 = _stride_phi_1 * ctr_1 + _stride_phi_1 + _data_phi_2m1; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_11[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0] + _data_phi_2m1_1m1[_stride_phi_0]) + z * (_data_rho_20_10[_stride_rho_0] + _data_rho_2m1_1m1[_stride_rho_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0] + _data_phi_20_10[_stride_phi_0] + _data_phi_2m1_10[_stride_phi_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[0] + kT * -2.0f * _data_rho_2m1_1m1[0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_20_10[_stride_rho_0] + z * -1.0f * _data_phi_2m1_1m1[0] * _data_rho_2m1_1m1[0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_20_10[_stride_rho_0] + z * _data_phi_20_10[_stride_phi_0] * _data_rho_2m1_1m1[0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_phi_20_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_2m1; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (f_ext_1 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + f_ext_2 * z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 2.0f + kT * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * 4.0f + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_10[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_1m1[_stride_phi_0 * ctr_0]) + z * (_data_rho_20_10[_stride_rho_0 * ctr_0] + _data_rho_2m1_1m1[_stride_rho_0 * ctr_0]) * (-1.0f * _data_phi_20_1m1[_stride_phi_0 * ctr_0] - 1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0] + _data_phi_20_10[_stride_phi_0 * ctr_0] + _data_phi_2m1_10[_stride_phi_0 * ctr_0]) * -1.0f) * -0.028801180074297286f * ((1.0f) / (kT)); - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * ctr_0 - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_20_10[_stride_rho_0 * ctr_0] + z * _data_phi_20_10[_stride_phi_0 * ctr_0] * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_phi_20 = _data_phi + _stride_phi_2 * (_size_j_2 - 1); - float *RESTRICT _data_phi_20_10 = _stride_phi_1 * (_size_j_1 - 1) + _data_phi_20; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - float *RESTRICT _data_phi_2m1 = _data_phi + _stride_phi_2 * (_size_j_2 - 1) - _stride_phi_2; - float *RESTRICT _data_phi_2m1_1m1 = _stride_phi_1 * (_size_j_1 - 1) - _stride_phi_1 + _data_phi_2m1; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (f_ext_0 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_0 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_1 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_1 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + f_ext_2 * z * -1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + f_ext_2 * z * -1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * -2.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + kT * 2.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * -1.0f * _data_phi_2m1_1m1[_stride_phi_0 * (_size_j_0 - 1) - _stride_phi_0] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)] + z * _data_phi_20_10[_stride_phi_0 * (_size_j_0 - 1)] * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0]) * 0.04703213011469496f * ((1.0f) / (kT)); - } - } - } - } -} -} // namespace internal_823ab2463d465630661d5edc8f90930c - -void DiffusiveFluxKernelWithElectrostatic_single_precision::run(IBlock *block) { - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - auto phi = block->getData>(phiID); - - auto &f_ext_0 = this->f_ext_0_; - auto &f_ext_1 = this->f_ext_1_; - auto &D = this->D_; - auto &z = this->z_; - auto &kT = this->kT_; - auto &f_ext_2 = this->f_ext_2_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(phi->nrOfGhostLayers())); - float *RESTRICT const _data_phi = phi->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_phi_0 = int64_t(phi->xStride()); - const int64_t _stride_phi_1 = int64_t(phi->yStride()); - const int64_t _stride_phi_2 = int64_t(phi->zStride()); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_823ab2463d465630661d5edc8f90930c::diffusivefluxkernelwithelectrostatic_single_precision_diffusivefluxkernelwithelectrostatic_single_precision(D, _data_j, _data_phi, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_phi_0, _stride_phi_1, _stride_phi_2, _stride_rho_0, _stride_rho_1, _stride_rho_2, f_ext_0, f_ext_1, f_ext_2, kT, z); -} - -void DiffusiveFluxKernelWithElectrostatic_single_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - auto phi = block->getData>(phiID); - - auto &f_ext_0 = this->f_ext_0_; - auto &f_ext_1 = this->f_ext_1_; - auto &D = this->D_; - auto &z = this->z_; - auto &kT = this->kT_; - auto &f_ext_2 = this->f_ext_2_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(phi->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(phi->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(phi->nrOfGhostLayers())); - float *RESTRICT const _data_phi = phi->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_phi_0 = int64_t(phi->xStride()); - const int64_t _stride_phi_1 = int64_t(phi->yStride()); - const int64_t _stride_phi_2 = int64_t(phi->zStride()); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_823ab2463d465630661d5edc8f90930c::diffusivefluxkernelwithelectrostatic_single_precision_diffusivefluxkernelwithelectrostatic_single_precision(D, _data_j, _data_phi, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_phi_0, _stride_phi_1, _stride_phi_2, _stride_rho_0, _stride_rho_1, _stride_rho_2, f_ext_0, f_ext_1, f_ext_2, kT, z); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.h deleted file mode 100644 index 6939f94a2e..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernelWithElectrostatic_single_precision.h +++ /dev/null @@ -1,114 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernelWithElectrostatic_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class DiffusiveFluxKernelWithElectrostatic_single_precision { -public: - DiffusiveFluxKernelWithElectrostatic_single_precision( - BlockDataID jID_, BlockDataID phiID_, BlockDataID rhoID_, float D, - float f_ext_0, float f_ext_1, float f_ext_2, float kT, float z) - : jID(jID_), phiID(phiID_), rhoID(rhoID_), D_(D), f_ext_0_(f_ext_0), - f_ext_1_(f_ext_1), f_ext_2_(f_ext_2), kT_(kT), z_(z){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function getSweep( - const shared_ptr - &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr - &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID phiID; - BlockDataID rhoID; - float D_; - float f_ext_0_; - float f_ext_1_; - float f_ext_2_; - float kT_; - float z_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.cpp deleted file mode 100644 index 4f986fe73a..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.cpp +++ /dev/null @@ -1,873 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernel_double_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "DiffusiveFluxKernel_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_e5e04d1215f19faa51f3c55db6d456a2 { -static FUNC_PREFIX void diffusivefluxkernel_double_precision_diffusivefluxkernel_double_precision(double D, double *RESTRICT const _data_j, double *RESTRICT const _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0 * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0] = D * (-1.0 * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0 * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0] = D * (-1.0 * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0 * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_34_10 = _data_j_20_34; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_312_10 = _data_j_20_312; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_30_10[_stride_j_0] = D * (-1.0 * _data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - _data_j_20_33_10[_stride_j_0] = D * (-1.0 * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - double *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - _data_j_20_34_10[_stride_j_0] = D * (-1.0 * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - _data_j_20_35_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - _data_j_20_36_10[_stride_j_0] = D * (-1.0 * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - _data_j_20_39_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - _data_j_20_310_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - _data_j_20_311_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - double *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - _data_j_20_312_10[_stride_j_0] = D * (-1.0 * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.16292407789368385; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0] = D * (-1.0 * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0 * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - double *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - double *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0 * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992; - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - double *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - double *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - double *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - double *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0 * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992; - } - } - } - } -} -} // namespace internal_e5e04d1215f19faa51f3c55db6d456a2 - -void DiffusiveFluxKernel_double_precision::run(IBlock *block) { - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - - auto &D = this->D_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_e5e04d1215f19faa51f3c55db6d456a2::diffusivefluxkernel_double_precision_diffusivefluxkernel_double_precision(D, _data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -void DiffusiveFluxKernel_double_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto j = block->getData>(jID); - auto rho = block->getData>(rhoID); - - auto &D = this->D_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - double *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_e5e04d1215f19faa51f3c55db6d456a2::diffusivefluxkernel_double_precision_diffusivefluxkernel_double_precision(D, _data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.h deleted file mode 100644 index 785ce74ea3..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_double_precision.h +++ /dev/null @@ -1,104 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernel_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class DiffusiveFluxKernel_double_precision { -public: - DiffusiveFluxKernel_double_precision(BlockDataID jID_, BlockDataID rhoID_, - double D) - : jID(jID_), rhoID(rhoID_), D_(D){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; - double D_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.cpp deleted file mode 100644 index 47183223aa..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.cpp +++ /dev/null @@ -1,873 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernel_single_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "DiffusiveFluxKernel_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_2fab63cfdbacde4ac630f257442231a8 { -static FUNC_PREFIX void diffusivefluxkernel_single_precision_diffusivefluxkernel_single_precision(float D, float *RESTRICT const _data_j, float *RESTRICT const _data_rho, int64_t const _size_j_0, int64_t const _size_j_1, int64_t const _size_j_2, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, int64_t const _stride_rho_0, int64_t const _stride_rho_1, int64_t const _stride_rho_2) { - { - { - { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - if (0 < _size_j_1 - 1 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0] = D * (-1.0f * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - { - if (ctr_1 > 0 && 0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_36 = _data_j + 6 * _stride_j_3; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - if (0 < _size_j_2 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - if (_size_j_1 - 1 > 0 && 0 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - for (int64_t ctr_2 = 1; ctr_2 < _size_j_2 - 1; ctr_2 += 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - { - { - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0] = D * (-1.0f * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0] = D * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - { - if (ctr_2 > 0 && 0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_34_10 = _data_j_20_34; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - if (0 < _size_j_1 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_312_10 = _data_j_20_312; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - { - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_30_10[_stride_j_0] = D * (-1.0f * _data_rho_20_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385f; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - _data_j_20_33_10[_stride_j_0] = D * (-1.0f * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - float *RESTRICT _data_rho_20_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_20; - _data_j_20_34_10[_stride_j_0] = D * (-1.0f * _data_rho_20_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - _data_j_20_35_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_10 = _stride_rho_1 * ctr_1 + _data_rho_21; - _data_j_20_36_10[_stride_j_0] = D * (-1.0f * _data_rho_21_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - _data_j_20_39_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - _data_j_20_310_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - _data_j_20_311_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - float *RESTRICT _data_rho_21_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_21; - _data_j_20_312_10[_stride_j_0] = D * (-1.0f * _data_rho_21_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - { - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385f; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385f; - } - if (ctr_1 > 0 && ctr_2 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - _data_j_20_30_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385f; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385f; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385f; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_34_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_36_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - _data_j_20_312_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - _data_j_20_30_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.16292407789368385f; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - _data_j_20_34_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_20_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - _data_j_20_36_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - _data_j_20_312_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - { - } - } - } - { - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_31_10[_stride_j_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0] = D * (-1.0f * _data_rho_20_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0] = D * (-1.0f * _data_rho_21_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_31; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_31_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_38; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_38_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - { - if (ctr_2 > 0 && _size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_33; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_20; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_33_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_20_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - } - if (ctr_2 > 0 && _size_j_1 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * ctr_2 - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - if (_size_j_1 - 1 > 0 && ctr_2 < _size_j_2 - 1) { - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_310; - float *RESTRICT _data_rho_21 = _data_rho + _stride_rho_2 * ctr_2 + _stride_rho_2; - float *RESTRICT _data_rho_21_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_21; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * ctr_2; - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_310_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_21_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - } - } - { - { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - if (_size_j_2 - 1 > 0 && 0 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - for (int64_t ctr_1 = 1; ctr_1 < _size_j_1 - 1; ctr_1 += 1) { - { - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.16292407789368385f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_10[0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_11[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 2 * _stride_j_3; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_32_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.16292407789368385f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - { - if (ctr_1 > 0 && _size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 5 * _stride_j_3; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_10 = _stride_rho_1 * ctr_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_35_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_10[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.11520472029718914f; - } - if (ctr_1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * ctr_1 - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - if (_size_j_2 - 1 > 0 && ctr_1 < _size_j_1 - 1) { - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 11 * _stride_j_3; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_11 = _stride_rho_1 * ctr_1 + _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * ctr_1 + _data_rho_20; - _data_j_20_311_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_11[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - } - { - { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && 1 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0] + _data_rho_20_10[_stride_rho_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0] = D * (-1.0f * _data_rho_2m1_1m1[0] + _data_rho_20_10[_stride_rho_0]) * 0.09406426022938992f; - } - } - for (int64_t ctr_0 = 2; ctr_0 < _size_j_0 - 1; ctr_0 += 1) { - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0 && ctr_0 < _size_j_0 - 1) { - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 7 * _stride_j_3; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_37; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_37_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.11520472029718914f; - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * ctr_0] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * ctr_0 - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * ctr_0]) * 0.09406426022938992f; - } - } - if (_size_j_1 - 1 > 0 && _size_j_2 - 1 > 0) { - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * (_size_j_2 - 1) + 9 * _stride_j_3; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * (_size_j_1 - 1) + _data_j_20_39; - float *RESTRICT _data_rho_2m1 = _data_rho + _stride_rho_2 * (_size_j_2 - 1) - _stride_rho_2; - float *RESTRICT _data_rho_2m1_1m1 = _stride_rho_1 * (_size_j_1 - 1) - _stride_rho_1 + _data_rho_2m1; - float *RESTRICT _data_rho_20 = _data_rho + _stride_rho_2 * (_size_j_2 - 1); - float *RESTRICT _data_rho_20_10 = _stride_rho_1 * (_size_j_1 - 1) + _data_rho_20; - _data_j_20_39_10[_stride_j_0 * (_size_j_0 - 1)] = D * (-1.0f * _data_rho_2m1_1m1[_stride_rho_0 * (_size_j_0 - 1) - _stride_rho_0] + _data_rho_20_10[_stride_rho_0 * (_size_j_0 - 1)]) * 0.09406426022938992f; - } - } - } - } -} -} // namespace internal_2fab63cfdbacde4ac630f257442231a8 - -void DiffusiveFluxKernel_single_precision::run(IBlock *block) { - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - - auto &D = this->D_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(j->xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(j->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(j->ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(j->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(j->zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(j->zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_2fab63cfdbacde4ac630f257442231a8::diffusivefluxkernel_single_precision_diffusivefluxkernel_single_precision(D, _data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -void DiffusiveFluxKernel_single_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto rho = block->getData>(rhoID); - auto j = block->getData>(jID); - - auto &D = this->D_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(rho->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(rho->nrOfGhostLayers())); - float *RESTRICT const _data_rho = rho->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(j->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_j_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_j_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(j->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_j_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - const int64_t _stride_rho_0 = int64_t(rho->xStride()); - const int64_t _stride_rho_1 = int64_t(rho->yStride()); - const int64_t _stride_rho_2 = int64_t(rho->zStride()); - internal_2fab63cfdbacde4ac630f257442231a8::diffusivefluxkernel_single_precision_diffusivefluxkernel_single_precision(D, _data_j, _data_rho, _size_j_0, _size_j_1, _size_j_2, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, _stride_rho_0, _stride_rho_1, _stride_rho_2); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.h deleted file mode 100644 index 5bf67efc0c..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/DiffusiveFluxKernel_single_precision.h +++ /dev/null @@ -1,104 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file DiffusiveFluxKernel_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class DiffusiveFluxKernel_single_precision { -public: - DiffusiveFluxKernel_single_precision(BlockDataID jID_, BlockDataID rhoID_, - float D) - : jID(jID_), rhoID(rhoID_), D_(D){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID jID; - BlockDataID rhoID; - float D_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.cpp deleted file mode 100644 index 8d5d53b2e1..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.cpp +++ /dev/null @@ -1,110 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dirichlet_double_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "Dirichlet_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace pystencils { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_74da74b67a122b7887d3d21c7ea5f414 { -static FUNC_PREFIX void dirichlet_double_precision_boundary_Dirichlet_double_precision(double *RESTRICT _data_field, uint8_t *RESTRICT const _data_indexVector, int64_t const _stride_field_0, int64_t const _stride_field_1, int64_t const _stride_field_2, int32_t indexVectorSize) { - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[24 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[24 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[24 * ctr_0 + 8])); - - const int32_t cx[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1}; - const int32_t cy[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - const int32_t cz[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1}; - const int32_t invdir[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13, 26, 25, 24, 23, 22, 21, 20, 19}; - - const int32_t dir = *((int32_t *)(&_data_indexVector[24 * ctr_0 + 12])); - _data_field[_stride_field_0 * x + _stride_field_1 * y + _stride_field_2 * z] = *((double *)(&_data_indexVector[24 * ctr_0 + 16])); - } -} -} // namespace internal_74da74b67a122b7887d3d21c7ea5f414 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void Dirichlet_double_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto field = block->getData>(fieldID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(field->nrOfGhostLayers())); - double *RESTRICT _data_field = field->dataAt(0, 0, 0, 0); - const int64_t _stride_field_0 = int64_t(field->xStride()); - const int64_t _stride_field_1 = int64_t(field->yStride()); - const int64_t _stride_field_2 = int64_t(field->zStride()); - internal_74da74b67a122b7887d3d21c7ea5f414::dirichlet_double_precision_boundary_Dirichlet_double_precision(_data_field, _data_indexVector, _stride_field_0, _stride_field_1, _stride_field_2, indexVectorSize); -} - -void Dirichlet_double_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void Dirichlet_double_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void Dirichlet_double_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace pystencils -} // namespace walberla diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.h deleted file mode 100644 index 84c5d39aa8..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_double_precision.h +++ /dev/null @@ -1,190 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dirichlet_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class Dirichlet_double_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - double value; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), value() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(value, o.value); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - Dirichlet_double_precision( - const shared_ptr &blocks, BlockDataID fieldID_, - std::function &, IBlock &)> - &dirichletCallback) - : elementInitaliser(dirichletCallback), fieldID(fieldID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_Dirichlet_double_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - auto flagWithGLayers = flagField->xyzSizeWithGhostLayer(); - for (auto it = flagField->beginWithGhostLayerXYZ(); it != flagField->end(); - ++it) { - - if (!isFlagSet(it, boundaryFlag)) - continue; - if (flagWithGLayers.contains(it.x() + cell_idx_c(0), - it.y() + cell_idx_c(0), - it.z() + cell_idx_c(0)) && - isFlagSet(it.neighbor(0, 0, 0, 0), domainFlag)) { - - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - double InitialisatonAdditionalData = - elementInitaliser(Cell(it.x(), it.y(), it.z()), blocks, *block); - element.value = InitialisatonAdditionalData; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function &, - IBlock &)> - elementInitaliser; - -public: - BlockDataID fieldID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.cpp deleted file mode 100644 index d7c9409230..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.cpp +++ /dev/null @@ -1,110 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dirichlet_single_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "Dirichlet_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace pystencils { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_43f4eae176e72ad2d9db0f0468064c30 { -static FUNC_PREFIX void dirichlet_single_precision_boundary_Dirichlet_single_precision(float *RESTRICT _data_field, uint8_t *RESTRICT const _data_indexVector, int64_t const _stride_field_0, int64_t const _stride_field_1, int64_t const _stride_field_2, int32_t indexVectorSize) { - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[20 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[20 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[20 * ctr_0 + 8])); - - const int32_t cx[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1}; - const int32_t cy[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - const int32_t cz[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1}; - const int32_t invdir[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13, 26, 25, 24, 23, 22, 21, 20, 19}; - - const int32_t dir = *((int32_t *)(&_data_indexVector[20 * ctr_0 + 12])); - _data_field[_stride_field_0 * x + _stride_field_1 * y + _stride_field_2 * z] = *((float *)(&_data_indexVector[20 * ctr_0 + 16])); - } -} -} // namespace internal_43f4eae176e72ad2d9db0f0468064c30 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void Dirichlet_single_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto field = block->getData>(fieldID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(field->nrOfGhostLayers())); - float *RESTRICT _data_field = field->dataAt(0, 0, 0, 0); - const int64_t _stride_field_0 = int64_t(field->xStride()); - const int64_t _stride_field_1 = int64_t(field->yStride()); - const int64_t _stride_field_2 = int64_t(field->zStride()); - internal_43f4eae176e72ad2d9db0f0468064c30::dirichlet_single_precision_boundary_Dirichlet_single_precision(_data_field, _data_indexVector, _stride_field_0, _stride_field_1, _stride_field_2, indexVectorSize); -} - -void Dirichlet_single_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void Dirichlet_single_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void Dirichlet_single_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace pystencils -} // namespace walberla diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.h deleted file mode 100644 index 58e99d9140..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/Dirichlet_single_precision.h +++ /dev/null @@ -1,190 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dirichlet_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class Dirichlet_single_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - float value; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), value() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(value, o.value); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - Dirichlet_single_precision( - const shared_ptr &blocks, BlockDataID fieldID_, - std::function &, IBlock &)> - &dirichletCallback) - : elementInitaliser(dirichletCallback), fieldID(fieldID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_Dirichlet_single_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - auto flagWithGLayers = flagField->xyzSizeWithGhostLayer(); - for (auto it = flagField->beginWithGhostLayerXYZ(); it != flagField->end(); - ++it) { - - if (!isFlagSet(it, boundaryFlag)) - continue; - if (flagWithGLayers.contains(it.x() + cell_idx_c(0), - it.y() + cell_idx_c(0), - it.z() + cell_idx_c(0)) && - isFlagSet(it.neighbor(0, 0, 0, 0), domainFlag)) { - - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - float InitialisatonAdditionalData = - elementInitaliser(Cell(it.x(), it.y(), it.z()), blocks, *block); - element.value = InitialisatonAdditionalData; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function &, - IBlock &)> - elementInitaliser; - -public: - BlockDataID fieldID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.cpp deleted file mode 100644 index 0309d1adc2..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.cpp +++ /dev/null @@ -1,213 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FixedFlux_double_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "FixedFlux_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace pystencils { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_bdec58bfeb737088cd218660bd069d85 { -static FUNC_PREFIX void fixedflux_double_precision_boundary_FixedFlux_double_precision(double *RESTRICT const _data_flux, uint8_t *RESTRICT const _data_indexVector, int64_t const _stride_flux_0, int64_t const _stride_flux_1, int64_t const _stride_flux_2, int64_t const _stride_flux_3, int32_t indexVectorSize) { - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[40 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 8])); - - const int32_t cx[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1}; - const int32_t cy[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - const int32_t cz[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1}; - const int32_t invdir[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13, 26, 25, 24, 23, 22, 21, 20, 19}; - - const int32_t dir = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 12])); - if (((dir) == (26))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 9 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (25))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 12 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (24))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 11 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (23))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 10 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (22))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 10 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (21))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 11 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (20))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 12 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (19))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 9 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (18))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z - _stride_flux_2 + 6 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (17))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 5 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (16))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 7 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (15))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 8 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (14))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_2 + 5 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (13))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 6 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (12))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 8 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (11))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 7 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (10))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z + 4 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (9))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 3 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (8))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + 3 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) - 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (7))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 4 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (6))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 2 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (5))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_2 + 2 * _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 32])); - } else { - if (((dir) == (4))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])); - } else { - if (((dir) == (3))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 16])); - } else { - if (((dir) == (2))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } else { - if (((dir) == (1))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_3] = -0.1111111111111111 * *((double *)(&_data_indexVector[40 * ctr_0 + 24])); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} -} // namespace internal_bdec58bfeb737088cd218660bd069d85 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void FixedFlux_double_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto flux = block->getData>(fluxID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(flux->nrOfGhostLayers())); - double *RESTRICT const _data_flux = flux->dataAt(0, 0, 0, 0); - const int64_t _stride_flux_0 = int64_t(flux->xStride()); - const int64_t _stride_flux_1 = int64_t(flux->yStride()); - const int64_t _stride_flux_2 = int64_t(flux->zStride()); - const int64_t _stride_flux_3 = int64_t(1 * int64_t(flux->fStride())); - internal_bdec58bfeb737088cd218660bd069d85::fixedflux_double_precision_boundary_FixedFlux_double_precision(_data_flux, _data_indexVector, _stride_flux_0, _stride_flux_1, _stride_flux_2, _stride_flux_3, indexVectorSize); -} - -void FixedFlux_double_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void FixedFlux_double_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void FixedFlux_double_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace pystencils -} // namespace walberla diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.h deleted file mode 100644 index 17ebc8c1db..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_double_precision.h +++ /dev/null @@ -1,737 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FixedFlux_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class FixedFlux_double_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - double flux_0; - double flux_1; - double flux_2; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), flux_0(), flux_1(), flux_2() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(flux_0, o.flux_0) && floatIsEqual(flux_1, o.flux_1) && - floatIsEqual(flux_2, o.flux_2); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - FixedFlux_double_precision( - const shared_ptr &blocks, BlockDataID fluxID_, - std::function(const Cell &, - const shared_ptr &, - IBlock &)> &fluxCallback) - : elementInitaliser(fluxCallback), fluxID(fluxID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_FixedFlux_double_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 1); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 2); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 3); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 4); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 5); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 6); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 7); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 8); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 9); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 10); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 11); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 12); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 13); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 14); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 15); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 16); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 17); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 18); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 19); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 20); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 21); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 22); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 23); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 24); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 25); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 26); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function( - const Cell &, const shared_ptr &, IBlock &)> - elementInitaliser; - -public: - BlockDataID fluxID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.cpp deleted file mode 100644 index aa7eb71daf..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.cpp +++ /dev/null @@ -1,213 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FixedFlux_single_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "FixedFlux_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace pystencils { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_11b127eed0b5044a0a655e8444f26034 { -static FUNC_PREFIX void fixedflux_single_precision_boundary_FixedFlux_single_precision(float *RESTRICT const _data_flux, uint8_t *RESTRICT const _data_indexVector, int64_t const _stride_flux_0, int64_t const _stride_flux_1, int64_t const _stride_flux_2, int64_t const _stride_flux_3, int32_t indexVectorSize) { - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[28 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 8])); - - const int32_t cx[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1}; - const int32_t cy[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, 1, -1, -1}; - const int32_t cz[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 1, -1, -1, -1, -1}; - const int32_t invdir[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13, 26, 25, 24, 23, 22, 21, 20, 19}; - - const int32_t dir = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 12])); - if (((dir) == (26))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 9 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (25))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 12 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (24))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 11 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (23))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 10 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (22))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 10 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (21))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 11 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (20))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 12 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (19))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 9 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (18))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z - _stride_flux_2 + 6 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (17))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 5 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (16))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 7 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (15))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z - _stride_flux_2 + 8 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (14))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_2 + 5 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (13))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 6 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (12))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 8 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (11))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_2 + 7 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (10))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y - _stride_flux_1 + _stride_flux_2 * z + 4 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (9))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 3 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (8))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + 3 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) - 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (7))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 4 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (6))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + 2 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (5))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_2 + 2 * _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 24])); - } else { - if (((dir) == (4))) { - _data_flux[_stride_flux_0 * x + _stride_flux_0 + _stride_flux_1 * y + _stride_flux_2 * z] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])); - } else { - if (((dir) == (3))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 16])); - } else { - if (((dir) == (2))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_2 * z + _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } else { - if (((dir) == (1))) { - _data_flux[_stride_flux_0 * x + _stride_flux_1 * y + _stride_flux_1 + _stride_flux_2 * z + _stride_flux_3] = -0.1111111111111111f * *((float *)(&_data_indexVector[28 * ctr_0 + 20])); - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } - } -} -} // namespace internal_11b127eed0b5044a0a655e8444f26034 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void FixedFlux_single_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto flux = block->getData>(fluxID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(flux->nrOfGhostLayers())); - float *RESTRICT const _data_flux = flux->dataAt(0, 0, 0, 0); - const int64_t _stride_flux_0 = int64_t(flux->xStride()); - const int64_t _stride_flux_1 = int64_t(flux->yStride()); - const int64_t _stride_flux_2 = int64_t(flux->zStride()); - const int64_t _stride_flux_3 = int64_t(1 * int64_t(flux->fStride())); - internal_11b127eed0b5044a0a655e8444f26034::fixedflux_single_precision_boundary_FixedFlux_single_precision(_data_flux, _data_indexVector, _stride_flux_0, _stride_flux_1, _stride_flux_2, _stride_flux_3, indexVectorSize); -} - -void FixedFlux_single_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void FixedFlux_single_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void FixedFlux_single_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace pystencils -} // namespace walberla diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.h deleted file mode 100644 index f9fd0286b7..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FixedFlux_single_precision.h +++ /dev/null @@ -1,737 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FixedFlux_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace pystencils { - -class FixedFlux_single_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - float flux_0; - float flux_1; - float flux_2; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), flux_0(), flux_1(), flux_2() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(flux_0, o.flux_0) && floatIsEqual(flux_1, o.flux_1) && - floatIsEqual(flux_2, o.flux_2); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - FixedFlux_single_precision( - const shared_ptr &blocks, BlockDataID fluxID_, - std::function(const Cell &, - const shared_ptr &, - IBlock &)> &fluxCallback) - : elementInitaliser(fluxCallback), fluxID(fluxID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_FixedFlux_single_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 1); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 2); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 3); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 4); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 5); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 6); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 7); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 8); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 9); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 10); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + 0), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 11); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 12); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 13); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 14); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 15); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 16); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 17); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 18); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 19); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 20); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 21); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 22); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + 1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 23); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 24); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + 1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 25); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 26); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + -1, it.y() + -1, it.z() + -1), blocks, *block); - element.flux_0 = InitialisatonAdditionalData[0]; - element.flux_1 = InitialisatonAdditionalData[1]; - element.flux_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function( - const Cell &, const shared_ptr &, IBlock &)> - elementInitaliser; - -public: - BlockDataID fluxID; -}; - -} // namespace pystencils -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.cpp deleted file mode 100644 index b091542d1b..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.cpp +++ /dev/null @@ -1,191 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FrictionCouplingKernel_double_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "FrictionCouplingKernel_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_828cb3fbc90c26a23ae54639862a1401 { -static FUNC_PREFIX void frictioncouplingkernel_double_precision_frictioncouplingkernel_double_precision(double D, double *RESTRICT _data_f, double *RESTRICT const _data_j, int64_t const _size_f_0, int64_t const _size_f_1, int64_t const _size_f_2, int64_t const _stride_f_0, int64_t const _stride_f_1, int64_t const _stride_f_2, int64_t const _stride_f_3, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, double kT) { - for (int64_t ctr_2 = 1; ctr_2 < _size_f_2 - 1; ctr_2 += 1) { - double *RESTRICT _data_f_20_30 = _data_f + _stride_f_2 * ctr_2; - double *RESTRICT _data_j_2m1_36 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_2m1_310 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_2m1_312 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - double *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - double *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - double *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - double *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - double *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - double *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - double *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_21_35 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 5 * _stride_j_3; - double *RESTRICT _data_j_21_39 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 9 * _stride_j_3; - double *RESTRICT _data_j_21_311 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 11 * _stride_j_3; - double *RESTRICT _data_f_20_31 = _data_f + _stride_f_2 * ctr_2 + _stride_f_3; - double *RESTRICT _data_j_2m1_38 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - double *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - double *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - double *RESTRICT _data_j_21_37 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 7 * _stride_j_3; - double *RESTRICT _data_f_20_32 = _data_f + _stride_f_2 * ctr_2 + 2 * _stride_f_3; - double *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - double *RESTRICT _data_j_21_32 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 1; ctr_1 < _size_f_1 - 1; ctr_1 += 1) { - double *RESTRICT _data_f_20_30_10 = _stride_f_1 * ctr_1 + _data_f_20_30; - double *RESTRICT _data_j_2m1_36_10 = _stride_j_1 * ctr_1 + _data_j_2m1_36; - double *RESTRICT _data_j_2m1_310_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_310; - double *RESTRICT _data_j_2m1_312_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_2m1_312; - double *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - double *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - double *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - double *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - double *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - double *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - double *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - double *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - double *RESTRICT _data_j_20_33_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_33; - double *RESTRICT _data_j_20_34_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_20_34; - double *RESTRICT _data_j_21_35_10 = _stride_j_1 * ctr_1 + _data_j_21_35; - double *RESTRICT _data_j_21_39_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_39; - double *RESTRICT _data_j_21_311_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_21_311; - double *RESTRICT _data_f_20_31_10 = _stride_f_1 * ctr_1 + _data_f_20_31; - double *RESTRICT _data_j_2m1_38_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_38; - double *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - double *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - double *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - double *RESTRICT _data_j_20_31_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_31; - double *RESTRICT _data_j_21_37_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_37; - double *RESTRICT _data_f_20_32_10 = _stride_f_1 * ctr_1 + _data_f_20_32; - double *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - double *RESTRICT _data_j_21_32_10 = _stride_j_1 * ctr_1 + _data_j_21_32; - for (int64_t ctr_0 = 1; ctr_0 < _size_f_0 - 1; ctr_0 += 1) { - _data_f_20_30_10[_stride_f_0 * ctr_0] = kT * (-1.0 * _data_j_20_30_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_20_30_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_312_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_20_34_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_36_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0]) * 0.5 * ((1.0) / (D)); - _data_f_20_31_10[_stride_f_0 * ctr_0] = kT * (-1.0 * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_31_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_31_11[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_38_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_37_11[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_2m1_38_11[_stride_j_0 * ctr_0] + _data_j_20_311_10[_stride_j_0 * ctr_0] + _data_j_20_312_10[_stride_j_0 * ctr_0] + _data_j_20_34_10[_stride_j_0 * ctr_0] + _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0]) * 0.5 * ((1.0) / (D)); - _data_f_20_32_10[_stride_f_0 * ctr_0] = kT * (-1.0 * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_32_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_21_32_10[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0 * _data_j_21_37_11[_stride_j_0 * ctr_0] - 1.0 * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_310_10[_stride_j_0 * ctr_0] + _data_j_20_312_10[_stride_j_0 * ctr_0] + _data_j_20_36_10[_stride_j_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0] + _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_38_11[_stride_j_0 * ctr_0]) * 0.5 * ((1.0) / (D)); - } - } - } -} -} // namespace internal_828cb3fbc90c26a23ae54639862a1401 - -void FrictionCouplingKernel_double_precision::run(IBlock *block) { - auto j = block->getData>(jID); - auto f = block->getData>(fID); - - auto &D = this->D_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(f->nrOfGhostLayers())); - double *RESTRICT _data_f = f->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(f->xSizeWithGhostLayer(), int64_t(cell_idx_c(f->xSize()) + 2)); - const int64_t _size_f_0 = int64_t(cell_idx_c(f->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->ySizeWithGhostLayer(), int64_t(cell_idx_c(f->ySize()) + 2)); - const int64_t _size_f_1 = int64_t(cell_idx_c(f->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->zSizeWithGhostLayer(), int64_t(cell_idx_c(f->zSize()) + 2)); - const int64_t _size_f_2 = int64_t(cell_idx_c(f->zSize()) + 2); - const int64_t _stride_f_0 = int64_t(f->xStride()); - const int64_t _stride_f_1 = int64_t(f->yStride()); - const int64_t _stride_f_2 = int64_t(f->zStride()); - const int64_t _stride_f_3 = int64_t(1 * int64_t(f->fStride())); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_828cb3fbc90c26a23ae54639862a1401::frictioncouplingkernel_double_precision_frictioncouplingkernel_double_precision(D, _data_f, _data_j, _size_f_0, _size_f_1, _size_f_2, _stride_f_0, _stride_f_1, _stride_f_2, _stride_f_3, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, kT); -} - -void FrictionCouplingKernel_double_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto j = block->getData>(jID); - auto f = block->getData>(fID); - - auto &D = this->D_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(f->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(f->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(f->nrOfGhostLayers())); - double *RESTRICT _data_f = f->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - double *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(f->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_f_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_f_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_f_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_f_0 = int64_t(f->xStride()); - const int64_t _stride_f_1 = int64_t(f->yStride()); - const int64_t _stride_f_2 = int64_t(f->zStride()); - const int64_t _stride_f_3 = int64_t(1 * int64_t(f->fStride())); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_828cb3fbc90c26a23ae54639862a1401::frictioncouplingkernel_double_precision_frictioncouplingkernel_double_precision(D, _data_f, _data_j, _size_f_0, _size_f_1, _size_f_2, _stride_f_0, _stride_f_1, _stride_f_2, _stride_f_3, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, kT); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.h deleted file mode 100644 index 09c9efd461..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_double_precision.h +++ /dev/null @@ -1,105 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FrictionCouplingKernel_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class FrictionCouplingKernel_double_precision { -public: - FrictionCouplingKernel_double_precision(BlockDataID fID_, BlockDataID jID_, - double D, double kT) - : fID(fID_), jID(jID_), D_(D), kT_(kT){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID fID; - BlockDataID jID; - double D_; - double kT_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.cpp deleted file mode 100644 index 6f71f34565..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.cpp +++ /dev/null @@ -1,191 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FrictionCouplingKernel_single_precision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "FrictionCouplingKernel_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_910e9429dc8b77dbed969a16d3f227fb { -static FUNC_PREFIX void frictioncouplingkernel_single_precision_frictioncouplingkernel_single_precision(float D, float *RESTRICT _data_f, float *RESTRICT const _data_j, int64_t const _size_f_0, int64_t const _size_f_1, int64_t const _size_f_2, int64_t const _stride_f_0, int64_t const _stride_f_1, int64_t const _stride_f_2, int64_t const _stride_f_3, int64_t const _stride_j_0, int64_t const _stride_j_1, int64_t const _stride_j_2, int64_t const _stride_j_3, float kT) { - for (int64_t ctr_2 = 1; ctr_2 < _size_f_2 - 1; ctr_2 += 1) { - float *RESTRICT _data_f_20_30 = _data_f + _stride_f_2 * ctr_2; - float *RESTRICT _data_j_2m1_36 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_2m1_310 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_2m1_312 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_30 = _data_j + _stride_j_2 * ctr_2; - float *RESTRICT _data_j_20_310 = _data_j + _stride_j_2 * ctr_2 + 10 * _stride_j_3; - float *RESTRICT _data_j_20_311 = _data_j + _stride_j_2 * ctr_2 + 11 * _stride_j_3; - float *RESTRICT _data_j_20_312 = _data_j + _stride_j_2 * ctr_2 + 12 * _stride_j_3; - float *RESTRICT _data_j_20_33 = _data_j + _stride_j_2 * ctr_2 + 3 * _stride_j_3; - float *RESTRICT _data_j_20_34 = _data_j + _stride_j_2 * ctr_2 + 4 * _stride_j_3; - float *RESTRICT _data_j_20_35 = _data_j + _stride_j_2 * ctr_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_20_36 = _data_j + _stride_j_2 * ctr_2 + 6 * _stride_j_3; - float *RESTRICT _data_j_20_39 = _data_j + _stride_j_2 * ctr_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_21_35 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 5 * _stride_j_3; - float *RESTRICT _data_j_21_39 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 9 * _stride_j_3; - float *RESTRICT _data_j_21_311 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 11 * _stride_j_3; - float *RESTRICT _data_f_20_31 = _data_f + _stride_f_2 * ctr_2 + _stride_f_3; - float *RESTRICT _data_j_2m1_38 = _data_j + _stride_j_2 * ctr_2 - _stride_j_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_20_31 = _data_j + _stride_j_2 * ctr_2 + _stride_j_3; - float *RESTRICT _data_j_20_37 = _data_j + _stride_j_2 * ctr_2 + 7 * _stride_j_3; - float *RESTRICT _data_j_20_38 = _data_j + _stride_j_2 * ctr_2 + 8 * _stride_j_3; - float *RESTRICT _data_j_21_37 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 7 * _stride_j_3; - float *RESTRICT _data_f_20_32 = _data_f + _stride_f_2 * ctr_2 + 2 * _stride_f_3; - float *RESTRICT _data_j_20_32 = _data_j + _stride_j_2 * ctr_2 + 2 * _stride_j_3; - float *RESTRICT _data_j_21_32 = _data_j + _stride_j_2 * ctr_2 + _stride_j_2 + 2 * _stride_j_3; - for (int64_t ctr_1 = 1; ctr_1 < _size_f_1 - 1; ctr_1 += 1) { - float *RESTRICT _data_f_20_30_10 = _stride_f_1 * ctr_1 + _data_f_20_30; - float *RESTRICT _data_j_2m1_36_10 = _stride_j_1 * ctr_1 + _data_j_2m1_36; - float *RESTRICT _data_j_2m1_310_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_310; - float *RESTRICT _data_j_2m1_312_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_2m1_312; - float *RESTRICT _data_j_20_30_10 = _stride_j_1 * ctr_1 + _data_j_20_30; - float *RESTRICT _data_j_20_310_10 = _stride_j_1 * ctr_1 + _data_j_20_310; - float *RESTRICT _data_j_20_311_10 = _stride_j_1 * ctr_1 + _data_j_20_311; - float *RESTRICT _data_j_20_312_10 = _stride_j_1 * ctr_1 + _data_j_20_312; - float *RESTRICT _data_j_20_33_10 = _stride_j_1 * ctr_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_10 = _stride_j_1 * ctr_1 + _data_j_20_34; - float *RESTRICT _data_j_20_35_10 = _stride_j_1 * ctr_1 + _data_j_20_35; - float *RESTRICT _data_j_20_36_10 = _stride_j_1 * ctr_1 + _data_j_20_36; - float *RESTRICT _data_j_20_39_10 = _stride_j_1 * ctr_1 + _data_j_20_39; - float *RESTRICT _data_j_20_33_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_33; - float *RESTRICT _data_j_20_34_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_20_34; - float *RESTRICT _data_j_21_35_10 = _stride_j_1 * ctr_1 + _data_j_21_35; - float *RESTRICT _data_j_21_39_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_39; - float *RESTRICT _data_j_21_311_1m1 = _stride_j_1 * ctr_1 - _stride_j_1 + _data_j_21_311; - float *RESTRICT _data_f_20_31_10 = _stride_f_1 * ctr_1 + _data_f_20_31; - float *RESTRICT _data_j_2m1_38_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_2m1_38; - float *RESTRICT _data_j_20_31_10 = _stride_j_1 * ctr_1 + _data_j_20_31; - float *RESTRICT _data_j_20_37_10 = _stride_j_1 * ctr_1 + _data_j_20_37; - float *RESTRICT _data_j_20_38_10 = _stride_j_1 * ctr_1 + _data_j_20_38; - float *RESTRICT _data_j_20_31_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_20_31; - float *RESTRICT _data_j_21_37_11 = _stride_j_1 * ctr_1 + _stride_j_1 + _data_j_21_37; - float *RESTRICT _data_f_20_32_10 = _stride_f_1 * ctr_1 + _data_f_20_32; - float *RESTRICT _data_j_20_32_10 = _stride_j_1 * ctr_1 + _data_j_20_32; - float *RESTRICT _data_j_21_32_10 = _stride_j_1 * ctr_1 + _data_j_21_32; - for (int64_t ctr_0 = 1; ctr_0 < _size_f_0 - 1; ctr_0 += 1) { - _data_f_20_30_10[_stride_f_0 * ctr_0] = kT * (-1.0f * _data_j_20_30_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_20_30_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_312_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_20_34_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_36_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0]) * 0.5f * ((1.0f) / (D)); - _data_f_20_31_10[_stride_f_0 * ctr_0] = kT * (-1.0f * _data_j_20_310_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_31_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_31_11[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_33_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_33_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_38_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_37_11[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_2m1_38_11[_stride_j_0 * ctr_0] + _data_j_20_311_10[_stride_j_0 * ctr_0] + _data_j_20_312_10[_stride_j_0 * ctr_0] + _data_j_20_34_10[_stride_j_0 * ctr_0] + _data_j_20_34_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0]) * 0.5f * ((1.0f) / (D)); - _data_f_20_32_10[_stride_f_0 * ctr_0] = kT * (-1.0f * _data_j_20_311_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_32_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_35_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_37_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_20_39_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_311_1m1[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_21_32_10[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_35_10[_stride_j_0 * ctr_0 + _stride_j_0] - 1.0f * _data_j_21_37_11[_stride_j_0 * ctr_0] - 1.0f * _data_j_21_39_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_20_310_10[_stride_j_0 * ctr_0] + _data_j_20_312_10[_stride_j_0 * ctr_0] + _data_j_20_36_10[_stride_j_0 * ctr_0] + _data_j_20_38_10[_stride_j_0 * ctr_0] + _data_j_2m1_310_11[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_312_1m1[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_36_10[_stride_j_0 * ctr_0 + _stride_j_0] + _data_j_2m1_38_11[_stride_j_0 * ctr_0]) * 0.5f * ((1.0f) / (D)); - } - } - } -} -} // namespace internal_910e9429dc8b77dbed969a16d3f227fb - -void FrictionCouplingKernel_single_precision::run(IBlock *block) { - auto f = block->getData>(fID); - auto j = block->getData>(jID); - - auto &D = this->D_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(f->nrOfGhostLayers())); - float *RESTRICT _data_f = f->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(-1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(-1, -1, -1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(f->xSizeWithGhostLayer(), int64_t(cell_idx_c(f->xSize()) + 2)); - const int64_t _size_f_0 = int64_t(cell_idx_c(f->xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->ySizeWithGhostLayer(), int64_t(cell_idx_c(f->ySize()) + 2)); - const int64_t _size_f_1 = int64_t(cell_idx_c(f->ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->zSizeWithGhostLayer(), int64_t(cell_idx_c(f->zSize()) + 2)); - const int64_t _size_f_2 = int64_t(cell_idx_c(f->zSize()) + 2); - const int64_t _stride_f_0 = int64_t(f->xStride()); - const int64_t _stride_f_1 = int64_t(f->yStride()); - const int64_t _stride_f_2 = int64_t(f->zStride()); - const int64_t _stride_f_3 = int64_t(1 * int64_t(f->fStride())); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_910e9429dc8b77dbed969a16d3f227fb::frictioncouplingkernel_single_precision_frictioncouplingkernel_single_precision(D, _data_f, _data_j, _size_f_0, _size_f_1, _size_f_2, _stride_f_0, _stride_f_1, _stride_f_2, _stride_f_3, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, kT); -} - -void FrictionCouplingKernel_single_precision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto f = block->getData>(fID); - auto j = block->getData>(jID); - - auto &D = this->D_; - auto &kT = this->kT_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(f->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(f->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(f->nrOfGhostLayers())); - float *RESTRICT _data_f = f->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin() - 1, -int_c(j->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin() - 1, -int_c(j->nrOfGhostLayers())); - float *RESTRICT const _data_j = j->dataAt(ci.xMin() - 1, ci.yMin() - 1, ci.zMin() - 1, 0); - WALBERLA_ASSERT_GREATER_EQUAL(f->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 2)); - const int64_t _size_f_0 = int64_t(cell_idx_c(ci.xSize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 2)); - const int64_t _size_f_1 = int64_t(cell_idx_c(ci.ySize()) + 2); - WALBERLA_ASSERT_GREATER_EQUAL(f->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 2)); - const int64_t _size_f_2 = int64_t(cell_idx_c(ci.zSize()) + 2); - const int64_t _stride_f_0 = int64_t(f->xStride()); - const int64_t _stride_f_1 = int64_t(f->yStride()); - const int64_t _stride_f_2 = int64_t(f->zStride()); - const int64_t _stride_f_3 = int64_t(1 * int64_t(f->fStride())); - const int64_t _stride_j_0 = int64_t(j->xStride()); - const int64_t _stride_j_1 = int64_t(j->yStride()); - const int64_t _stride_j_2 = int64_t(j->zStride()); - const int64_t _stride_j_3 = int64_t(1 * int64_t(j->fStride())); - internal_910e9429dc8b77dbed969a16d3f227fb::frictioncouplingkernel_single_precision_frictioncouplingkernel_single_precision(D, _data_f, _data_j, _size_f_0, _size_f_1, _size_f_2, _stride_f_0, _stride_f_1, _stride_f_2, _stride_f_3, _stride_j_0, _stride_j_1, _stride_j_2, _stride_j_3, kT); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.h b/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.h deleted file mode 100644 index b5c2ba8bb1..0000000000 --- a/src/walberla_bridge/src/electrokinetics/generated_kernels/FrictionCouplingKernel_single_precision.h +++ /dev/null @@ -1,105 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file FrictionCouplingKernel_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class FrictionCouplingKernel_single_precision { -public: - FrictionCouplingKernel_single_precision(BlockDataID fID_, BlockDataID jID_, - float D, float kT) - : fID(fID_), jID(jID_), D_(D), kT_(kT){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID fID; - BlockDataID jID; - float D_; - float kT_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_1_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_1_single_precision.cpp index f70aa2f91b..d65839fe8c 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_1_single_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_1_single_precision.cpp @@ -65,9 +65,9 @@ static FUNC_PREFIX void reactionkernelbulk_1_single_precision_reactionkernelbulk void ReactionKernelBulk_1_single_precision::run(IBlock *block) { auto rho_0 = block->getData>(rho_0ID); - auto &rate_coefficient = this->rate_coefficient_; auto &stoech_0 = this->stoech_0_; auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); float *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(rho_0->xSizeWithGhostLayer(), int64_t(cell_idx_c(rho_0->xSize()) + 0)); @@ -93,9 +93,9 @@ void ReactionKernelBulk_1_single_precision::runOnCellInterval(const shared_ptrgetData>(rho_0ID); - auto &rate_coefficient = this->rate_coefficient_; auto &stoech_0 = this->stoech_0_; auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_double_precision.cpp index 9a84cf5c0e..fc102b66cb 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_double_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_double_precision.cpp @@ -67,14 +67,14 @@ static FUNC_PREFIX void reactionkernelbulk_2_double_precision_reactionkernelbulk } // namespace internal_2cb10021ef8890fa965cb94996ae1510 void ReactionKernelBulk_2_double_precision::run(IBlock *block) { - auto rho_1 = block->getData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); + auto rho_1 = block->getData>(rho_1ID); + auto &order_1 = this->order_1_; auto &stoech_0 = this->stoech_0_; + auto &stoech_1 = this->stoech_1_; auto &order_0 = this->order_0_; auto &rate_coefficient = this->rate_coefficient_; - auto &stoech_1 = this->stoech_1_; - auto &order_1 = this->order_1_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); double *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -103,14 +103,14 @@ void ReactionKernelBulk_2_double_precision::runOnCellInterval(const shared_ptrgetData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); + auto rho_1 = block->getData>(rho_1ID); + auto &order_1 = this->order_1_; auto &stoech_0 = this->stoech_0_; + auto &stoech_1 = this->stoech_1_; auto &order_0 = this->order_0_; auto &rate_coefficient = this->rate_coefficient_; - auto &stoech_1 = this->stoech_1_; - auto &order_1 = this->order_1_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_single_precision.cpp index 50efa62876..0b27be868a 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_single_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_2_single_precision.cpp @@ -67,14 +67,14 @@ static FUNC_PREFIX void reactionkernelbulk_2_single_precision_reactionkernelbulk } // namespace internal_6de92b64acc501777cd14903620af26b void ReactionKernelBulk_2_single_precision::run(IBlock *block) { - auto rho_0 = block->getData>(rho_0ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); + auto &stoech_1 = this->stoech_1_; auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; auto &order_0 = this->order_0_; auto &stoech_0 = this->stoech_0_; - auto &stoech_1 = this->stoech_1_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); float *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -103,14 +103,14 @@ void ReactionKernelBulk_2_single_precision::runOnCellInterval(const shared_ptrgetData>(rho_0ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); + auto &stoech_1 = this->stoech_1_; auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; auto &order_0 = this->order_0_; auto &stoech_0 = this->stoech_0_; - auto &stoech_1 = this->stoech_1_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_double_precision.cpp index ecbf41a5f7..13926e5107 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_double_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_double_precision.cpp @@ -71,17 +71,17 @@ static FUNC_PREFIX void reactionkernelbulk_3_double_precision_reactionkernelbulk } // namespace internal_d3ec035b42efecb474f5d17499de6537 void ReactionKernelBulk_3_double_precision::run(IBlock *block) { - auto rho_1 = block->getData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); auto rho_2 = block->getData>(rho_2ID); + auto rho_1 = block->getData>(rho_1ID); + auto &order_1 = this->order_1_; + auto &order_2 = this->order_2_; auto &stoech_0 = this->stoech_0_; auto &stoech_2 = this->stoech_2_; + auto &stoech_1 = this->stoech_1_; auto &order_0 = this->order_0_; auto &rate_coefficient = this->rate_coefficient_; - auto &stoech_1 = this->stoech_1_; - auto &order_2 = this->order_2_; - auto &order_1 = this->order_1_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); double *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -115,17 +115,17 @@ void ReactionKernelBulk_3_double_precision::runOnCellInterval(const shared_ptrgetData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); auto rho_2 = block->getData>(rho_2ID); + auto rho_1 = block->getData>(rho_1ID); + auto &order_1 = this->order_1_; + auto &order_2 = this->order_2_; auto &stoech_0 = this->stoech_0_; auto &stoech_2 = this->stoech_2_; + auto &stoech_1 = this->stoech_1_; auto &order_0 = this->order_0_; auto &rate_coefficient = this->rate_coefficient_; - auto &stoech_1 = this->stoech_1_; - auto &order_2 = this->order_2_; - auto &order_1 = this->order_1_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_single_precision.cpp index ded9c9505d..e786afd8fa 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_single_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_3_single_precision.cpp @@ -72,16 +72,16 @@ static FUNC_PREFIX void reactionkernelbulk_3_single_precision_reactionkernelbulk void ReactionKernelBulk_3_single_precision::run(IBlock *block) { auto rho_2 = block->getData>(rho_2ID); - auto rho_0 = block->getData>(rho_0ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); + auto &stoech_1 = this->stoech_1_; auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; auto &order_2 = this->order_2_; + auto &order_0 = this->order_0_; auto &stoech_2 = this->stoech_2_; auto &stoech_0 = this->stoech_0_; - auto &stoech_1 = this->stoech_1_; - auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); float *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -116,16 +116,16 @@ void ReactionKernelBulk_3_single_precision::runOnCellInterval(const shared_ptrgetData>(rho_2ID); - auto rho_0 = block->getData>(rho_0ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); + auto &stoech_1 = this->stoech_1_; auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; auto &order_2 = this->order_2_; + auto &order_0 = this->order_0_; auto &stoech_2 = this->stoech_2_; auto &stoech_0 = this->stoech_0_; - auto &stoech_1 = this->stoech_1_; - auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_double_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_double_precision.cpp index 6550666ab8..7fbbf5b906 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_double_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_double_precision.cpp @@ -75,20 +75,20 @@ static FUNC_PREFIX void reactionkernelbulk_4_double_precision_reactionkernelbulk } // namespace internal_49f1aaa6789b7fa16fb103a21ce6fe12 void ReactionKernelBulk_4_double_precision::run(IBlock *block) { - auto rho_3 = block->getData>(rho_3ID); - auto rho_1 = block->getData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); auto rho_2 = block->getData>(rho_2ID); + auto rho_1 = block->getData>(rho_1ID); + auto rho_3 = block->getData>(rho_3ID); + auto &order_1 = this->order_1_; + auto &order_2 = this->order_2_; auto &stoech_0 = this->stoech_0_; auto &stoech_2 = this->stoech_2_; auto &order_3 = this->order_3_; - auto &order_0 = this->order_0_; - auto &rate_coefficient = this->rate_coefficient_; auto &stoech_1 = this->stoech_1_; auto &stoech_3 = this->stoech_3_; - auto &order_2 = this->order_2_; - auto &order_1 = this->order_1_; + auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); double *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -127,20 +127,20 @@ void ReactionKernelBulk_4_double_precision::runOnCellInterval(const shared_ptrgetData>(rho_3ID); - auto rho_1 = block->getData>(rho_1ID); auto rho_0 = block->getData>(rho_0ID); auto rho_2 = block->getData>(rho_2ID); + auto rho_1 = block->getData>(rho_1ID); + auto rho_3 = block->getData>(rho_3ID); + auto &order_1 = this->order_1_; + auto &order_2 = this->order_2_; auto &stoech_0 = this->stoech_0_; auto &stoech_2 = this->stoech_2_; auto &order_3 = this->order_3_; - auto &order_0 = this->order_0_; - auto &rate_coefficient = this->rate_coefficient_; auto &stoech_1 = this->stoech_1_; auto &stoech_3 = this->stoech_3_; - auto &order_2 = this->order_2_; - auto &order_1 = this->order_1_; + auto &order_0 = this->order_0_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_single_precision.cpp b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_single_precision.cpp index 48fab10cee..3d3a7077a2 100644 --- a/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_single_precision.cpp +++ b/src/walberla_bridge/src/electrokinetics/reactions/generated_kernels/ReactionKernelBulk_4_single_precision.cpp @@ -75,20 +75,20 @@ static FUNC_PREFIX void reactionkernelbulk_4_single_precision_reactionkernelbulk } // namespace internal_716e8e56e191f2f523734cd5e32cecbb void ReactionKernelBulk_4_single_precision::run(IBlock *block) { - auto rho_2 = block->getData>(rho_2ID); - auto rho_0 = block->getData>(rho_0ID); auto rho_3 = block->getData>(rho_3ID); + auto rho_2 = block->getData>(rho_2ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); - auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; - auto &order_2 = this->order_2_; - auto &order_3 = this->order_3_; - auto &stoech_2 = this->stoech_2_; - auto &stoech_0 = this->stoech_0_; auto &stoech_1 = this->stoech_1_; + auto &stoech_0 = this->stoech_0_; + auto &order_2 = this->order_2_; auto &stoech_3 = this->stoech_3_; auto &order_0 = this->order_0_; + auto &order_3 = this->order_3_; + auto &stoech_2 = this->stoech_2_; + auto &order_1 = this->order_1_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_0->nrOfGhostLayers())); float *RESTRICT _data_rho_0 = rho_0->dataAt(0, 0, 0, 0); WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(rho_1->nrOfGhostLayers())); @@ -127,20 +127,20 @@ void ReactionKernelBulk_4_single_precision::runOnCellInterval(const shared_ptrgetData>(rho_2ID); - auto rho_0 = block->getData>(rho_0ID); auto rho_3 = block->getData>(rho_3ID); + auto rho_2 = block->getData>(rho_2ID); auto rho_1 = block->getData>(rho_1ID); + auto rho_0 = block->getData>(rho_0ID); - auto &order_1 = this->order_1_; - auto &rate_coefficient = this->rate_coefficient_; - auto &order_2 = this->order_2_; - auto &order_3 = this->order_3_; - auto &stoech_2 = this->stoech_2_; - auto &stoech_0 = this->stoech_0_; auto &stoech_1 = this->stoech_1_; + auto &stoech_0 = this->stoech_0_; + auto &order_2 = this->order_2_; auto &stoech_3 = this->stoech_3_; auto &order_0 = this->order_0_; + auto &order_3 = this->order_3_; + auto &stoech_2 = this->stoech_2_; + auto &order_1 = this->order_1_; + auto &rate_coefficient = this->rate_coefficient_; WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(rho_0->nrOfGhostLayers())); WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(rho_0->nrOfGhostLayers())); diff --git a/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp b/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp index 3c85bd0f0d..b1fa866198 100644 --- a/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp +++ b/src/walberla_bridge/src/lattice_boltzmann/LBWalberlaImpl.hpp @@ -165,8 +165,8 @@ class LBWalberlaImpl : public LBWalberlaBase { void reset_boundary_handling() { auto const &blocks = get_lattice().get_blocks(); - m_boundary = std::make_shared(blocks, m_pdf_field_id, - m_flag_field_id); + m_boundary = std::make_shared( + blocks, m_last_applied_force_field_id, m_pdf_field_id, m_flag_field_id); } FloatType pressure_tensor_correction_factor() const { diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.cpp b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.cpp deleted file mode 100644 index 74302d3ebb..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.cpp +++ /dev/null @@ -1,124 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dynamic_UBB_double_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "Dynamic_UBB_double_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace lbm { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_451fd042b8d7665063ea81b98853365b { -static FUNC_PREFIX void dynamic_ubb_double_precision_boundary_Dynamic_UBB_double_precision(uint8_t *RESTRICT const _data_indexVector, double *RESTRICT _data_pdfs, int64_t const _stride_pdfs_0, int64_t const _stride_pdfs_1, int64_t const _stride_pdfs_2, int64_t const _stride_pdfs_3, int32_t indexVectorSize) { - - const int32_t f_in_inv_dir_idx[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13}; - const int32_t f_in_offsets_x[] = {0, 0, 0, 1, -1, 0, 0, 1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, -1}; - const int32_t f_in_offsets_y[] = {0, -1, 1, 0, 0, 0, 0, -1, -1, 1, 1, -1, 1, 0, 0, -1, 1, 0, 0}; - const int32_t f_in_offsets_z[] = {0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, 1, 1}; - const int32_t f_in_inv_offsets_x[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1}; - const int32_t f_in_inv_offsets_y[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0}; - const int32_t f_in_inv_offsets_z[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - - const double weights[] = {0.33333333333333333, 0.055555555555555556, 0.055555555555555556, 0.055555555555555556, 0.055555555555555556, 0.055555555555555556, 0.055555555555555556, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778, 0.027777777777777778}; - - const int32_t neighbour_offset_x[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1}; - const int32_t neighbour_offset_y[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0}; - const int32_t neighbour_offset_z[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[40 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 8])); - const int32_t dir = *((int32_t *)(&_data_indexVector[40 * ctr_0 + 12])); - const double vel0Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 10 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 14 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 18 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 4 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 8 * _stride_pdfs_3]; - const double vel1Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 11 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 15 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 7 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + _stride_pdfs_3]; - const double vel2Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 12 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 13 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 5 * _stride_pdfs_3]; - const double rho = vel0Term + vel1Term + vel2Term + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 16 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 17 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 2 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 3 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 6 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 9 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z]; - _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_0 * (f_in_inv_offsets_x[dir] + neighbour_offset_x[dir]) + _stride_pdfs_1 * y + _stride_pdfs_1 * (f_in_inv_offsets_y[dir] + neighbour_offset_y[dir]) + _stride_pdfs_2 * z + _stride_pdfs_2 * (f_in_inv_offsets_z[dir] + neighbour_offset_z[dir]) + _stride_pdfs_3 * f_in_inv_dir_idx[dir]] = rho * (6.0 * ((double)(neighbour_offset_x[dir])) * *((double *)(&_data_indexVector[40 * ctr_0 + 16])) + 6.0 * ((double)(neighbour_offset_y[dir])) * *((double *)(&_data_indexVector[40 * ctr_0 + 24])) + 6.0 * ((double)(neighbour_offset_z[dir])) * *((double *)(&_data_indexVector[40 * ctr_0 + 32]))) * -1.0 * weights[dir] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_0 * f_in_offsets_x[dir] + _stride_pdfs_1 * y + _stride_pdfs_1 * f_in_offsets_y[dir] + _stride_pdfs_2 * z + _stride_pdfs_2 * f_in_offsets_z[dir] + _stride_pdfs_3 * dir]; - } -} -} // namespace internal_451fd042b8d7665063ea81b98853365b - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void Dynamic_UBB_double_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto pdfs = block->getData>(pdfsID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(pdfs->nrOfGhostLayers())); - double *RESTRICT _data_pdfs = pdfs->dataAt(0, 0, 0, 0); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - internal_451fd042b8d7665063ea81b98853365b::dynamic_ubb_double_precision_boundary_Dynamic_UBB_double_precision(_data_indexVector, _data_pdfs, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, indexVectorSize); -} - -void Dynamic_UBB_double_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void Dynamic_UBB_double_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void Dynamic_UBB_double_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace lbm -} // namespace walberla diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.h deleted file mode 100644 index 3fec984180..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_double_precision.h +++ /dev/null @@ -1,569 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dynamic_UBB_double_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace lbm { - -class Dynamic_UBB_double_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - double vel_0; - double vel_1; - double vel_2; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), vel_0(), vel_1(), vel_2() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(vel_0, o.vel_0) && floatIsEqual(vel_1, o.vel_1) && - floatIsEqual(vel_2, o.vel_2); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - Dynamic_UBB_double_precision( - const shared_ptr &blocks, BlockDataID pdfsID_, - std::function(const Cell &, - const shared_ptr &, - IBlock &)> &velocityCallback) - : elementInitaliser(velocityCallback), pdfsID(pdfsID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_Dynamic_UBB_double_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 1); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 2); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 3); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 4); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 5); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 6); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 7); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 8); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 9); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 10); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 11); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 12); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 13); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 14); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 15); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 16); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 17); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 18); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function( - const Cell &, const shared_ptr &, IBlock &)> - elementInitaliser; - -public: - BlockDataID pdfsID; -}; - -} // namespace lbm -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.cpp b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.cpp deleted file mode 100644 index b1aa45324a..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.cpp +++ /dev/null @@ -1,124 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dynamic_UBB_single_precision.cpp -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "Dynamic_UBB_single_precision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -using namespace std; - -namespace walberla { -namespace lbm { - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wstrict-aliasing" -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wconversion" -#endif - -#ifdef __CUDACC__ -#pragma push -#ifdef __NVCC_DIAG_PRAGMA_SUPPORT__ -#pragma nv_diag_suppress 177 -#else -#pragma diag_suppress 177 -#endif -#endif - -namespace internal_efdc97602c407e557fff6737dd9b4d80 { -static FUNC_PREFIX void dynamic_ubb_single_precision_boundary_Dynamic_UBB_single_precision(uint8_t *RESTRICT const _data_indexVector, float *RESTRICT _data_pdfs, int64_t const _stride_pdfs_0, int64_t const _stride_pdfs_1, int64_t const _stride_pdfs_2, int64_t const _stride_pdfs_3, int32_t indexVectorSize) { - - const int32_t f_in_inv_dir_idx[] = {0, 2, 1, 4, 3, 6, 5, 10, 9, 8, 7, 16, 15, 18, 17, 12, 11, 14, 13}; - const int32_t f_in_offsets_x[] = {0, 0, 0, 1, -1, 0, 0, 1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 1, -1}; - const int32_t f_in_offsets_y[] = {0, -1, 1, 0, 0, 0, 0, -1, -1, 1, 1, -1, 1, 0, 0, -1, 1, 0, 0}; - const int32_t f_in_offsets_z[] = {0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, 1, 1}; - const int32_t f_in_inv_offsets_x[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1}; - const int32_t f_in_inv_offsets_y[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0}; - const int32_t f_in_inv_offsets_z[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - - const float weights[] = {0.33333333333333333f, 0.055555555555555556f, 0.055555555555555556f, 0.055555555555555556f, 0.055555555555555556f, 0.055555555555555556f, 0.055555555555555556f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f, 0.027777777777777778f}; - - const int32_t neighbour_offset_x[] = {0, 0, 0, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 0, 0, -1, 1}; - const int32_t neighbour_offset_y[] = {0, 1, -1, 0, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0}; - const int32_t neighbour_offset_z[] = {0, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1}; - - for (int64_t ctr_0 = 0; ctr_0 < indexVectorSize; ctr_0 += 1) { - const int32_t x = *((int32_t *)(&_data_indexVector[28 * ctr_0])); - const int32_t y = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 4])); - const int32_t z = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 8])); - const int32_t dir = *((int32_t *)(&_data_indexVector[28 * ctr_0 + 12])); - const float vel0Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 10 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 14 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 18 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 4 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 8 * _stride_pdfs_3]; - const float vel1Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 11 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 15 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 7 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + _stride_pdfs_3]; - const float vel2Term = _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 12 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 13 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 5 * _stride_pdfs_3]; - const float rho = vel0Term + vel1Term + vel2Term + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 16 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 17 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 2 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 3 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 6 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z + 9 * _stride_pdfs_3] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_1 * y + _stride_pdfs_2 * z]; - _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_0 * (f_in_inv_offsets_x[dir] + neighbour_offset_x[dir]) + _stride_pdfs_1 * y + _stride_pdfs_1 * (f_in_inv_offsets_y[dir] + neighbour_offset_y[dir]) + _stride_pdfs_2 * z + _stride_pdfs_2 * (f_in_inv_offsets_z[dir] + neighbour_offset_z[dir]) + _stride_pdfs_3 * f_in_inv_dir_idx[dir]] = rho * (6.0f * ((float)(neighbour_offset_x[dir])) * *((float *)(&_data_indexVector[28 * ctr_0 + 16])) + 6.0f * ((float)(neighbour_offset_y[dir])) * *((float *)(&_data_indexVector[28 * ctr_0 + 20])) + 6.0f * ((float)(neighbour_offset_z[dir])) * *((float *)(&_data_indexVector[28 * ctr_0 + 24]))) * -1.0f * weights[dir] + _data_pdfs[_stride_pdfs_0 * x + _stride_pdfs_0 * f_in_offsets_x[dir] + _stride_pdfs_1 * y + _stride_pdfs_1 * f_in_offsets_y[dir] + _stride_pdfs_2 * z + _stride_pdfs_2 * f_in_offsets_z[dir] + _stride_pdfs_3 * dir]; - } -} -} // namespace internal_efdc97602c407e557fff6737dd9b4d80 - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif - -#ifdef __CUDACC__ -#pragma pop -#endif - -void Dynamic_UBB_single_precision::run_impl(IBlock *block, IndexVectors::Type type) { - auto *indexVectors = block->getData(indexVectorID); - int32_t indexVectorSize = int32_c(indexVectors->indexVector(type).size()); - if (indexVectorSize == 0) - return; - - auto pointer = indexVectors->pointerCpu(type); - - uint8_t *_data_indexVector = reinterpret_cast(pointer); - - auto pdfs = block->getData>(pdfsID); - - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(pdfs->nrOfGhostLayers())); - float *RESTRICT _data_pdfs = pdfs->dataAt(0, 0, 0, 0); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - internal_efdc97602c407e557fff6737dd9b4d80::dynamic_ubb_single_precision_boundary_Dynamic_UBB_single_precision(_data_indexVector, _data_pdfs, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, indexVectorSize); -} - -void Dynamic_UBB_single_precision::run(IBlock *block) { - run_impl(block, IndexVectors::ALL); -} - -void Dynamic_UBB_single_precision::inner(IBlock *block) { - run_impl(block, IndexVectors::INNER); -} - -void Dynamic_UBB_single_precision::outer(IBlock *block) { - run_impl(block, IndexVectors::OUTER); -} - -} // namespace lbm -} // namespace walberla diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.h deleted file mode 100644 index f37c16f28b..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/Dynamic_UBB_single_precision.h +++ /dev/null @@ -1,569 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file Dynamic_UBB_single_precision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "blockforest/StructuredBlockForest.h" -#include "core/debug/Debug.h" -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "field/FlagField.h" -#include "field/GhostLayerField.h" - -#include -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -namespace walberla { -namespace lbm { - -class Dynamic_UBB_single_precision { -public: - struct IndexInfo { - int32_t x; - int32_t y; - int32_t z; - int32_t dir; - float vel_0; - float vel_1; - float vel_2; - IndexInfo(int32_t x_, int32_t y_, int32_t z_, int32_t dir_) - : x(x_), y(y_), z(z_), dir(dir_), vel_0(), vel_1(), vel_2() {} - bool operator==(const IndexInfo &o) const { - return x == o.x && y == o.y && z == o.z && dir == o.dir && - floatIsEqual(vel_0, o.vel_0) && floatIsEqual(vel_1, o.vel_1) && - floatIsEqual(vel_2, o.vel_2); - } - }; - - class IndexVectors { - public: - using CpuIndexVector = std::vector; - - enum Type { ALL = 0, INNER = 1, OUTER = 2, NUM_TYPES = 3 }; - - IndexVectors() = default; - bool operator==(IndexVectors const &other) const { - return other.cpuVectors_ == cpuVectors_; - } - - CpuIndexVector &indexVector(Type t) { return cpuVectors_[t]; } - IndexInfo *pointerCpu(Type t) { return cpuVectors_[t].data(); } - - void syncGPU() {} - - private: - std::vector cpuVectors_{NUM_TYPES}; - }; - - Dynamic_UBB_single_precision( - const shared_ptr &blocks, BlockDataID pdfsID_, - std::function(const Cell &, - const shared_ptr &, - IBlock &)> &velocityCallback) - : elementInitaliser(velocityCallback), pdfsID(pdfsID_) { - auto createIdxVector = [](IBlock *const, StructuredBlockStorage *const) { - return new IndexVectors(); - }; - indexVectorID = blocks->addStructuredBlockData( - createIdxVector, "IndexField_Dynamic_UBB_single_precision"); - }; - - void run(IBlock *block); - - void operator()(IBlock *block) { run(block); } - - void inner(IBlock *block); - - void outer(IBlock *block); - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function getInnerSweep() { - return [this](IBlock *b) { this->inner(b); }; - } - - std::function getOuterSweep() { - return [this](IBlock *b) { this->outer(b); }; - } - - template - void fillFromFlagField(const shared_ptr &blocks, - ConstBlockDataID flagFieldID, FlagUID boundaryFlagUID, - FlagUID domainFlagUID) { - for (auto blockIt = blocks->begin(); blockIt != blocks->end(); ++blockIt) - fillFromFlagField(blocks, &*blockIt, flagFieldID, - boundaryFlagUID, domainFlagUID); - } - - template - void fillFromFlagField(const shared_ptr &blocks, - IBlock *block, ConstBlockDataID flagFieldID, - FlagUID boundaryFlagUID, FlagUID domainFlagUID) { - auto *indexVectors = block->getData(indexVectorID); - auto &indexVectorAll = indexVectors->indexVector(IndexVectors::ALL); - auto &indexVectorInner = indexVectors->indexVector(IndexVectors::INNER); - auto &indexVectorOuter = indexVectors->indexVector(IndexVectors::OUTER); - - auto *flagField = block->getData(flagFieldID); - - if (!(flagField->flagExists(boundaryFlagUID) && - flagField->flagExists(domainFlagUID))) - return; - - auto boundaryFlag = flagField->getFlag(boundaryFlagUID); - auto domainFlag = flagField->getFlag(domainFlagUID); - - auto inner = flagField->xyzSize(); - inner.expand(cell_idx_t(-1)); - - indexVectorAll.clear(); - indexVectorInner.clear(); - indexVectorOuter.clear(); - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 0); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 1); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 2); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 3); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 4); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 5); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 6); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 7); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 8); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 9); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, -1, 0, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 10); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() - 1, it.z() + 0), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 11); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 12); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 13); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, 1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 14); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() + 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, 1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 15); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() + 1, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(0, -1, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 16); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 0, it.y() - 1, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(-1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 17); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() - 1, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - for (auto it = flagField->beginWithGhostLayerXYZ( - cell_idx_c(flagField->nrOfGhostLayers() - 1)); - it != flagField->end(); ++it) { - if (!isFlagSet(it, domainFlag)) - continue; - - if (isFlagSet(it.neighbor(1, 0, -1, 0), boundaryFlag)) { - auto element = IndexInfo(it.x(), it.y(), it.z(), 18); - Vector3 InitialisatonAdditionalData = elementInitaliser( - Cell(it.x() + 1, it.y() + 0, it.z() - 1), blocks, *block); - element.vel_0 = InitialisatonAdditionalData[0]; - element.vel_1 = InitialisatonAdditionalData[1]; - element.vel_2 = InitialisatonAdditionalData[2]; - indexVectorAll.push_back(element); - if (inner.contains(it.x(), it.y(), it.z())) - indexVectorInner.push_back(element); - else - indexVectorOuter.push_back(element); - } - } - - indexVectors->syncGPU(); - } - -private: - void run_impl(IBlock *block, IndexVectors::Type type); - - BlockDataID indexVectorID; - std::function( - const Cell &, const shared_ptr &, IBlock &)> - elementInitaliser; - -public: - BlockDataID pdfsID; -}; - -} // namespace lbm -} // namespace walberla \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsDoublePrecision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsDoublePrecision.h deleted file mode 100644 index b4b17d872a..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsDoublePrecision.h +++ /dev/null @@ -1,831 +0,0 @@ -/* - * Copyright (C) 2021-2023 The ESPResSo project - * Copyright (C) 2020 The waLBerla project - * - * This file is part of ESPResSo. - * - * ESPResSo is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ESPResSo 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 General Public License - * along with this program. If not, see . - */ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -/* - * Lattice field accessors. - * Adapted from the waLBerla source file - * https://i10git.cs.fau.de/walberla/walberla/-/blob/a16141524c58ab88386e2a0f8fdd7c63c5edd704/python/lbmpy_walberla/templates/LatticeModel.tmpl.h - */ - -#pragma once - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#ifdef WALBERLA_CXX_COMPILER_IS_GNU -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -#ifdef WALBERLA_CXX_COMPILER_IS_CLANG -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-variable" -#pragma clang diagnostic ignored "-Wunused-parameter" -#endif - -namespace walberla { -namespace lbm { -namespace accessor { - -namespace Population { -inline std::array -get(GhostLayerField const *pdf_field, Cell const &cell) { - double const &xyz0 = pdf_field->get(cell, uint_t{0u}); - std::array pop; - pop[0u] = pdf_field->getF(&xyz0, uint_t{0u}); - pop[1u] = pdf_field->getF(&xyz0, uint_t{1u}); - pop[2u] = pdf_field->getF(&xyz0, uint_t{2u}); - pop[3u] = pdf_field->getF(&xyz0, uint_t{3u}); - pop[4u] = pdf_field->getF(&xyz0, uint_t{4u}); - pop[5u] = pdf_field->getF(&xyz0, uint_t{5u}); - pop[6u] = pdf_field->getF(&xyz0, uint_t{6u}); - pop[7u] = pdf_field->getF(&xyz0, uint_t{7u}); - pop[8u] = pdf_field->getF(&xyz0, uint_t{8u}); - pop[9u] = pdf_field->getF(&xyz0, uint_t{9u}); - pop[10u] = pdf_field->getF(&xyz0, uint_t{10u}); - pop[11u] = pdf_field->getF(&xyz0, uint_t{11u}); - pop[12u] = pdf_field->getF(&xyz0, uint_t{12u}); - pop[13u] = pdf_field->getF(&xyz0, uint_t{13u}); - pop[14u] = pdf_field->getF(&xyz0, uint_t{14u}); - pop[15u] = pdf_field->getF(&xyz0, uint_t{15u}); - pop[16u] = pdf_field->getF(&xyz0, uint_t{16u}); - pop[17u] = pdf_field->getF(&xyz0, uint_t{17u}); - pop[18u] = pdf_field->getF(&xyz0, uint_t{18u}); - return pop; -} - -inline void set(GhostLayerField *pdf_field, - std::array const &pop, Cell const &cell) { - double &xyz0 = pdf_field->get(cell, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = pop[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = pop[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = pop[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = pop[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = pop[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = pop[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = pop[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = pop[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = pop[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = pop[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = pop[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = pop[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = pop[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = pop[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = pop[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = pop[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = pop[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = pop[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = pop[18u]; -} - -inline void broadcast(GhostLayerField *pdf_field, - std::array const &pop) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(pdf_field, { - double &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = pop[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = pop[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = pop[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = pop[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = pop[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = pop[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = pop[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = pop[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = pop[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = pop[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = pop[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = pop[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = pop[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = pop[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = pop[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = pop[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = pop[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = pop[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = pop[18u]; - }); -} - -inline std::vector -get(GhostLayerField const *pdf_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells() * uint_t(19u)); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - double const &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{0u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{1u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{2u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{3u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{4u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{5u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{6u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{7u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{8u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{9u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{10u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{11u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{12u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{13u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{14u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{15u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{16u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{17u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{18u})); - } - } - } - return out; -} - -inline void set(GhostLayerField *pdf_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells() * uint_t(19u)); - auto values_ptr = values.data(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - double &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = values_ptr[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = values_ptr[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = values_ptr[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = values_ptr[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = values_ptr[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = values_ptr[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = values_ptr[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = values_ptr[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = values_ptr[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = values_ptr[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = values_ptr[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = values_ptr[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = values_ptr[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = values_ptr[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = values_ptr[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = values_ptr[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = values_ptr[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = values_ptr[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = values_ptr[18u]; - values_ptr += 19u; - } - } - } -} -} // namespace Population - -namespace Vector { -inline Vector3 get(GhostLayerField const *vec_field, - Cell const &cell) { - const double &xyz0 = vec_field->get(cell, uint_t{0u}); - Vector3 vec; - vec[0] = vec_field->getF(&xyz0, uint_t{0u}); - vec[1] = vec_field->getF(&xyz0, uint_t{1u}); - vec[2] = vec_field->getF(&xyz0, uint_t{2u}); - return vec; -} - -inline void set(GhostLayerField *vec_field, - Vector3 const &vec, Cell const &cell) { - double &xyz0 = vec_field->get(cell, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = vec[2u]; -} - -inline void add(GhostLayerField *vec_field, - Vector3 const &vec, Cell const &cell) { - double &xyz0 = vec_field->get(cell, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) += vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) += vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) += vec[2u]; -} - -inline void broadcast(GhostLayerField *vec_field, - Vector3 const &vec) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(vec_field, { - double &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = vec[2u]; - }); -} - -inline void add_to_all(GhostLayerField *vec_field, - Vector3 const &vec) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(vec_field, { - double &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) += vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) += vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) += vec[2u]; - }); -} - -inline std::vector -get(GhostLayerField const *vec_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells() * uint_t(3u)); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const double &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - out.emplace_back(vec_field->getF(&xyz0, uint_t{0u})); - out.emplace_back(vec_field->getF(&xyz0, uint_t{1u})); - out.emplace_back(vec_field->getF(&xyz0, uint_t{2u})); - } - } - } - return out; -} - -inline void set(GhostLayerField *vec_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells() * uint_t(3u)); - auto values_ptr = values.data(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - double &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = values_ptr[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = values_ptr[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = values_ptr[2u]; - values_ptr += 3u; - } - } - } -} -} // namespace Vector - -namespace EquilibriumDistribution { -inline double get(stencil::Direction const direction, - Vector3 const &u = Vector3(double(0.0)), - double rho = double(1.0)) { - - using namespace stencil; - switch (direction) { - case C: - return rho * -0.33333333333333331 * (u[0] * u[0]) + - rho * -0.33333333333333331 * (u[1] * u[1]) + - rho * -0.33333333333333331 * (u[2] * u[2]) + - rho * 0.33333333333333331; - case N: - return rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + - rho * 0.055555555555555552 + rho * 0.16666666666666666 * u[1] + - rho * 0.16666666666666666 * (u[1] * u[1]); - case S: - return rho * -0.16666666666666666 * u[1] + - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + - rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[1] * u[1]); - case W: - return rho * -0.16666666666666666 * u[0] + - rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + - rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[0] * u[0]); - case E: - return rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + - rho * 0.055555555555555552 + rho * 0.16666666666666666 * u[0] + - rho * 0.16666666666666666 * (u[0] * u[0]); - case T: - return rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * 0.055555555555555552 + rho * 0.16666666666666666 * u[2] + - rho * 0.16666666666666666 * (u[2] * u[2]); - case B: - return rho * -0.16666666666666666 * u[2] + - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[2] * u[2]); - case NW: - return rho * -0.083333333333333329 * u[0] + rho * -0.25 * u[0] * u[1] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]); - case NE: - return rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.25 * u[0] * u[1]; - case SW: - return rho * -0.083333333333333329 * u[0] + - rho * -0.083333333333333329 * u[1] + rho * 0.027777777777777776 + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.25 * u[0] * u[1]; - case SE: - return rho * -0.083333333333333329 * u[1] + rho * -0.25 * u[0] * u[1] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]); - case TN: - return rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + - rho * 0.25 * u[1] * u[2]; - case TS: - return rho * -0.083333333333333329 * u[1] + rho * -0.25 * u[1] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - case TW: - return rho * -0.083333333333333329 * u[0] + rho * -0.25 * u[0] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - case TE: - return rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + - rho * 0.25 * u[0] * u[2]; - case BN: - return rho * -0.083333333333333329 * u[2] + rho * -0.25 * u[1] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - case BS: - return rho * -0.083333333333333329 * u[1] + - rho * -0.083333333333333329 * u[2] + rho * 0.027777777777777776 + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + - rho * 0.25 * u[1] * u[2]; - case BW: - return rho * -0.083333333333333329 * u[0] + - rho * -0.083333333333333329 * u[2] + rho * 0.027777777777777776 + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + - rho * 0.25 * u[0] * u[2]; - case BE: - return rho * -0.083333333333333329 * u[2] + rho * -0.25 * u[0] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - default: - WALBERLA_ABORT("Invalid Direction") - } -} -} // namespace EquilibriumDistribution - -namespace Equilibrium { -inline void set(GhostLayerField *pdf_field, - Vector3 const &u, double const rho, Cell const &cell) { - - double &xyz0 = pdf_field->get(cell, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = - rho * -0.33333333333333331 * (u[0] * u[0]) + - rho * -0.33333333333333331 * (u[1] * u[1]) + - rho * -0.33333333333333331 * (u[2] * u[2]) + rho * 0.33333333333333331; - pdf_field->getF(&xyz0, uint_t{1u}) = - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * u[1] + - rho * 0.16666666666666666 * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{2u}) = - rho * -0.16666666666666666 * u[1] + - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{3u}) = - rho * -0.16666666666666666 * u[0] + - rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[0] * u[0]); - pdf_field->getF(&xyz0, uint_t{4u}) = - rho * -0.16666666666666666 * (u[1] * u[1]) + - rho * -0.16666666666666666 * (u[2] * u[2]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * u[0] + - rho * 0.16666666666666666 * (u[0] * u[0]); - pdf_field->getF(&xyz0, uint_t{5u}) = - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[1] * u[1]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * u[2] + - rho * 0.16666666666666666 * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{6u}) = - rho * -0.16666666666666666 * u[2] + - rho * -0.16666666666666666 * (u[0] * u[0]) + - rho * -0.16666666666666666 * (u[1] * u[1]) + rho * 0.055555555555555552 + - rho * 0.16666666666666666 * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{7u}) = - rho * -0.083333333333333329 * u[0] + rho * -0.25 * u[0] * u[1] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{8u}) = - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]) + rho * 0.25 * u[0] * u[1]; - pdf_field->getF(&xyz0, uint_t{9u}) = - rho * -0.083333333333333329 * u[0] + rho * -0.083333333333333329 * u[1] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]) + rho * 0.25 * u[0] * u[1]; - pdf_field->getF(&xyz0, uint_t{10u}) = - rho * -0.083333333333333329 * u[1] + rho * -0.25 * u[0] * u[1] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{11u}) = - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + rho * 0.25 * u[1] * u[2]; - pdf_field->getF(&xyz0, uint_t{12u}) = - rho * -0.083333333333333329 * u[1] + rho * -0.25 * u[1] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{13u}) = - rho * -0.083333333333333329 * u[0] + rho * -0.25 * u[0] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{14u}) = - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * u[2] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + rho * 0.25 * u[0] * u[2]; - pdf_field->getF(&xyz0, uint_t{15u}) = - rho * -0.083333333333333329 * u[2] + rho * -0.25 * u[1] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[1] + - rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{16u}) = - rho * -0.083333333333333329 * u[1] + rho * -0.083333333333333329 * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u[1] * u[1]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + rho * 0.25 * u[1] * u[2]; - pdf_field->getF(&xyz0, uint_t{17u}) = - rho * -0.083333333333333329 * u[0] + rho * -0.083333333333333329 * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]) + rho * 0.25 * u[0] * u[2]; - pdf_field->getF(&xyz0, uint_t{18u}) = - rho * -0.083333333333333329 * u[2] + rho * -0.25 * u[0] * u[2] + - rho * 0.027777777777777776 + rho * 0.083333333333333329 * u[0] + - rho * 0.083333333333333329 * (u[0] * u[0]) + - rho * 0.083333333333333329 * (u[2] * u[2]); -} -} // namespace Equilibrium - -namespace Density { -inline double get(GhostLayerField const *pdf_field, - Cell const &cell) { - const double &xyz0 = pdf_field->get(cell, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double vel2Term = f_12 + f_13 + f_5; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - return rho; -} - -inline void set(GhostLayerField *pdf_field, - double const rho_in, Cell const &cell) { - const double &xyz0 = pdf_field->get(cell, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double momdensity_1 = -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const double vel2Term = f_12 + f_13 + f_5; - const double momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - - // calculate current velocity (before density change) - const double conversion = double(1) / rho; - Vector3 velocity; - velocity[0u] = momdensity_0 * conversion; - velocity[1u] = momdensity_1 * conversion; - velocity[2u] = momdensity_2 * conversion; - - Equilibrium::set(pdf_field, velocity, rho_in, cell); -} - -inline std::vector -get(GhostLayerField const *pdf_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells()); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const double &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double vel2Term = f_12 + f_13 + f_5; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + - vel0Term + vel1Term + vel2Term; - out.emplace_back(rho); - } - } - } - return out; -} - -inline void set(GhostLayerField *pdf_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells()); - auto values_it = values.begin(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const double &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double momdensity_1 = - -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const double vel2Term = f_12 + f_13 + f_5; - const double momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + - vel0Term + vel1Term + vel2Term; - - // calculate current velocity (before density change) - const double conversion = double(1) / rho; - Vector3 velocity; - velocity[0u] = momdensity_0 * conversion; - velocity[1u] = momdensity_1 * conversion; - velocity[2u] = momdensity_2 * conversion; - - Equilibrium::set(pdf_field, velocity, *values_it, Cell{x, y, z}); - ++values_it; - } - } - } -} -} // namespace Density - -namespace Velocity { -inline void set(GhostLayerField *pdf_field, - GhostLayerField const *force_field, - Vector3 const &u, Cell const &cell) { - const double &xyz0 = pdf_field->get(cell, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double vel2Term = f_12 + f_13 + f_5; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - - const auto x = cell.x(); - const auto y = cell.y(); - const auto z = cell.z(); - const double u_0 = - -force_field->get(x, y, z, 0) * 0.50000000000000000 / rho + u[0]; - const double u_1 = - -force_field->get(x, y, z, 1) * 0.50000000000000000 / rho + u[1]; - const double u_2 = - -force_field->get(x, y, z, 2) * 0.50000000000000000 / rho + u[2]; - - Equilibrium::set(pdf_field, Vector3(u_0, u_1, u_2), rho, cell); -} -} // namespace Velocity - -namespace MomentumDensity { -inline Vector3 -reduce(GhostLayerField const *pdf_field, - GhostLayerField const *force_field) { - Vector3 momentumDensity(double{0}); - WALBERLA_FOR_ALL_CELLS_XYZ(pdf_field, { - const double &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const double momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const double vel1Term = f_1 + f_11 + f_15 + f_7; - const double momdensity_1 = - -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const double vel2Term = f_12 + f_13 + f_5; - const double momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const double rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - const double md_0 = - force_field->get(x, y, z, 0) * 0.50000000000000000 + momdensity_0; - const double md_1 = - force_field->get(x, y, z, 1) * 0.50000000000000000 + momdensity_1; - const double md_2 = - force_field->get(x, y, z, 2) * 0.50000000000000000 + momdensity_2; - - momentumDensity[0u] += md_0; - momentumDensity[1u] += md_1; - momentumDensity[2u] += md_2; - }); - return momentumDensity; -} -} // namespace MomentumDensity - -namespace PressureTensor { -inline Matrix3 -get(GhostLayerField const *pdf_field, Cell const &cell) { - const double &xyz0 = pdf_field->get(cell, uint_t{0u}); - const double f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const double f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const double f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const double f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const double f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const double f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const double f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const double f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const double f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const double f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const double f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const double f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const double f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const double f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const double f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const double f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const double f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const double f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const double f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const double p_0 = - f_10 + f_13 + f_14 + f_17 + f_18 + f_3 + f_4 + f_7 + f_8 + f_9; - const double p_1 = -f_10 - f_7 + f_8 + f_9; - const double p_2 = -f_13 + f_14 + f_17 - f_18; - const double p_3 = -f_10 - f_7 + f_8 + f_9; - const double p_4 = - f_1 + f_10 + f_11 + f_12 + f_15 + f_16 + f_2 + f_7 + f_8 + f_9; - const double p_5 = f_11 - f_12 - f_15 + f_16; - const double p_6 = -f_13 + f_14 + f_17 - f_18; - const double p_7 = f_11 - f_12 - f_15 + f_16; - const double p_8 = - f_11 + f_12 + f_13 + f_14 + f_15 + f_16 + f_17 + f_18 + f_5 + f_6; - - Matrix3 pressureTensor; - pressureTensor[0u] = p_0; - pressureTensor[1u] = p_1; - pressureTensor[2u] = p_2; - - pressureTensor[3u] = p_3; - pressureTensor[4u] = p_4; - pressureTensor[5u] = p_5; - - pressureTensor[6u] = p_6; - pressureTensor[7u] = p_7; - pressureTensor[8u] = p_8; - - return pressureTensor; -} -} // namespace PressureTensor - -} // namespace accessor -} // namespace lbm -} // namespace walberla - -#ifdef WALBERLA_CXX_COMPILER_IS_GNU -#pragma GCC diagnostic pop -#endif - -#ifdef WALBERLA_CXX_COMPILER_IS_CLANG -#pragma clang diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsSinglePrecision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsSinglePrecision.h deleted file mode 100644 index d1bdb6ec29..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/FieldAccessorsSinglePrecision.h +++ /dev/null @@ -1,833 +0,0 @@ -/* - * Copyright (C) 2021-2023 The ESPResSo project - * Copyright (C) 2020 The waLBerla project - * - * This file is part of ESPResSo. - * - * ESPResSo is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * ESPResSo 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 General Public License - * along with this program. If not, see . - */ - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -/* - * Lattice field accessors. - * Adapted from the waLBerla source file - * https://i10git.cs.fau.de/walberla/walberla/-/blob/a16141524c58ab88386e2a0f8fdd7c63c5edd704/python/lbmpy_walberla/templates/LatticeModel.tmpl.h - */ - -#pragma once - -#include -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include - -#ifdef WALBERLA_CXX_COMPILER_IS_GNU -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-variable" -#pragma GCC diagnostic ignored "-Wunused-parameter" -#endif - -#ifdef WALBERLA_CXX_COMPILER_IS_CLANG -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-variable" -#pragma clang diagnostic ignored "-Wunused-parameter" -#endif - -namespace walberla { -namespace lbm { -namespace accessor { - -namespace Population { -inline std::array -get(GhostLayerField const *pdf_field, Cell const &cell) { - float const &xyz0 = pdf_field->get(cell, uint_t{0u}); - std::array pop; - pop[0u] = pdf_field->getF(&xyz0, uint_t{0u}); - pop[1u] = pdf_field->getF(&xyz0, uint_t{1u}); - pop[2u] = pdf_field->getF(&xyz0, uint_t{2u}); - pop[3u] = pdf_field->getF(&xyz0, uint_t{3u}); - pop[4u] = pdf_field->getF(&xyz0, uint_t{4u}); - pop[5u] = pdf_field->getF(&xyz0, uint_t{5u}); - pop[6u] = pdf_field->getF(&xyz0, uint_t{6u}); - pop[7u] = pdf_field->getF(&xyz0, uint_t{7u}); - pop[8u] = pdf_field->getF(&xyz0, uint_t{8u}); - pop[9u] = pdf_field->getF(&xyz0, uint_t{9u}); - pop[10u] = pdf_field->getF(&xyz0, uint_t{10u}); - pop[11u] = pdf_field->getF(&xyz0, uint_t{11u}); - pop[12u] = pdf_field->getF(&xyz0, uint_t{12u}); - pop[13u] = pdf_field->getF(&xyz0, uint_t{13u}); - pop[14u] = pdf_field->getF(&xyz0, uint_t{14u}); - pop[15u] = pdf_field->getF(&xyz0, uint_t{15u}); - pop[16u] = pdf_field->getF(&xyz0, uint_t{16u}); - pop[17u] = pdf_field->getF(&xyz0, uint_t{17u}); - pop[18u] = pdf_field->getF(&xyz0, uint_t{18u}); - return pop; -} - -inline void set(GhostLayerField *pdf_field, - std::array const &pop, Cell const &cell) { - float &xyz0 = pdf_field->get(cell, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = pop[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = pop[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = pop[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = pop[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = pop[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = pop[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = pop[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = pop[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = pop[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = pop[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = pop[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = pop[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = pop[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = pop[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = pop[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = pop[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = pop[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = pop[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = pop[18u]; -} - -inline void broadcast(GhostLayerField *pdf_field, - std::array const &pop) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(pdf_field, { - float &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = pop[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = pop[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = pop[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = pop[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = pop[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = pop[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = pop[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = pop[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = pop[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = pop[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = pop[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = pop[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = pop[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = pop[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = pop[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = pop[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = pop[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = pop[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = pop[18u]; - }); -} - -inline std::vector -get(GhostLayerField const *pdf_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells() * uint_t(19u)); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - float const &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{0u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{1u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{2u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{3u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{4u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{5u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{6u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{7u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{8u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{9u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{10u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{11u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{12u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{13u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{14u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{15u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{16u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{17u})); - out.emplace_back(pdf_field->getF(&xyz0, uint_t{18u})); - } - } - } - return out; -} - -inline void set(GhostLayerField *pdf_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells() * uint_t(19u)); - auto values_ptr = values.data(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - float &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = values_ptr[0u]; - pdf_field->getF(&xyz0, uint_t{1u}) = values_ptr[1u]; - pdf_field->getF(&xyz0, uint_t{2u}) = values_ptr[2u]; - pdf_field->getF(&xyz0, uint_t{3u}) = values_ptr[3u]; - pdf_field->getF(&xyz0, uint_t{4u}) = values_ptr[4u]; - pdf_field->getF(&xyz0, uint_t{5u}) = values_ptr[5u]; - pdf_field->getF(&xyz0, uint_t{6u}) = values_ptr[6u]; - pdf_field->getF(&xyz0, uint_t{7u}) = values_ptr[7u]; - pdf_field->getF(&xyz0, uint_t{8u}) = values_ptr[8u]; - pdf_field->getF(&xyz0, uint_t{9u}) = values_ptr[9u]; - pdf_field->getF(&xyz0, uint_t{10u}) = values_ptr[10u]; - pdf_field->getF(&xyz0, uint_t{11u}) = values_ptr[11u]; - pdf_field->getF(&xyz0, uint_t{12u}) = values_ptr[12u]; - pdf_field->getF(&xyz0, uint_t{13u}) = values_ptr[13u]; - pdf_field->getF(&xyz0, uint_t{14u}) = values_ptr[14u]; - pdf_field->getF(&xyz0, uint_t{15u}) = values_ptr[15u]; - pdf_field->getF(&xyz0, uint_t{16u}) = values_ptr[16u]; - pdf_field->getF(&xyz0, uint_t{17u}) = values_ptr[17u]; - pdf_field->getF(&xyz0, uint_t{18u}) = values_ptr[18u]; - values_ptr += 19u; - } - } - } -} -} // namespace Population - -namespace Vector { -inline Vector3 get(GhostLayerField const *vec_field, - Cell const &cell) { - const float &xyz0 = vec_field->get(cell, uint_t{0u}); - Vector3 vec; - vec[0] = vec_field->getF(&xyz0, uint_t{0u}); - vec[1] = vec_field->getF(&xyz0, uint_t{1u}); - vec[2] = vec_field->getF(&xyz0, uint_t{2u}); - return vec; -} - -inline void set(GhostLayerField *vec_field, - Vector3 const &vec, Cell const &cell) { - float &xyz0 = vec_field->get(cell, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = vec[2u]; -} - -inline void add(GhostLayerField *vec_field, - Vector3 const &vec, Cell const &cell) { - float &xyz0 = vec_field->get(cell, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) += vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) += vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) += vec[2u]; -} - -inline void broadcast(GhostLayerField *vec_field, - Vector3 const &vec) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(vec_field, { - float &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = vec[2u]; - }); -} - -inline void add_to_all(GhostLayerField *vec_field, - Vector3 const &vec) { - WALBERLA_FOR_ALL_CELLS_INCLUDING_GHOST_LAYER_XYZ(vec_field, { - float &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) += vec[0u]; - vec_field->getF(&xyz0, uint_t{1u}) += vec[1u]; - vec_field->getF(&xyz0, uint_t{2u}) += vec[2u]; - }); -} - -inline std::vector -get(GhostLayerField const *vec_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells() * uint_t(3u)); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const float &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - out.emplace_back(vec_field->getF(&xyz0, uint_t{0u})); - out.emplace_back(vec_field->getF(&xyz0, uint_t{1u})); - out.emplace_back(vec_field->getF(&xyz0, uint_t{2u})); - } - } - } - return out; -} - -inline void set(GhostLayerField *vec_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells() * uint_t(3u)); - auto values_ptr = values.data(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - float &xyz0 = vec_field->get(x, y, z, uint_t{0u}); - vec_field->getF(&xyz0, uint_t{0u}) = values_ptr[0u]; - vec_field->getF(&xyz0, uint_t{1u}) = values_ptr[1u]; - vec_field->getF(&xyz0, uint_t{2u}) = values_ptr[2u]; - values_ptr += 3u; - } - } - } -} -} // namespace Vector - -namespace EquilibriumDistribution { -inline float get(stencil::Direction const direction, - Vector3 const &u = Vector3(float(0.0)), - float rho = float(1.0)) { - - using namespace stencil; - switch (direction) { - case C: - return rho * -0.33333333333333331f * (u[0] * u[0]) + - rho * -0.33333333333333331f * (u[1] * u[1]) + - rho * -0.33333333333333331f * (u[2] * u[2]) + - rho * 0.33333333333333331f; - case N: - return rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[1] + - rho * 0.16666666666666666f * (u[1] * u[1]); - case S: - return rho * -0.16666666666666666f * u[1] + - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + - rho * 0.16666666666666666f * (u[1] * u[1]); - case W: - return rho * -0.16666666666666666f * u[0] + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + - rho * 0.16666666666666666f * (u[0] * u[0]); - case E: - return rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[0] + - rho * 0.16666666666666666f * (u[0] * u[0]); - case T: - return rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[2] + - rho * 0.16666666666666666f * (u[2] * u[2]); - case B: - return rho * -0.16666666666666666f * u[2] + - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * 0.055555555555555552f + - rho * 0.16666666666666666f * (u[2] * u[2]); - case NW: - return rho * -0.083333333333333329f * u[0] + rho * -0.25f * u[0] * u[1] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]); - case NE: - return rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.25f * u[0] * u[1]; - case SW: - return rho * -0.083333333333333329f * u[0] + - rho * -0.083333333333333329f * u[1] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.25f * u[0] * u[1]; - case SE: - return rho * -0.083333333333333329f * u[1] + rho * -0.25f * u[0] * u[1] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]); - case TN: - return rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + - rho * 0.25f * u[1] * u[2]; - case TS: - return rho * -0.083333333333333329f * u[1] + rho * -0.25f * u[1] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - case TW: - return rho * -0.083333333333333329f * u[0] + rho * -0.25f * u[0] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - case TE: - return rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + - rho * 0.25f * u[0] * u[2]; - case BN: - return rho * -0.083333333333333329f * u[2] + rho * -0.25f * u[1] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - case BS: - return rho * -0.083333333333333329f * u[1] + - rho * -0.083333333333333329f * u[2] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + - rho * 0.25f * u[1] * u[2]; - case BW: - return rho * -0.083333333333333329f * u[0] + - rho * -0.083333333333333329f * u[2] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + - rho * 0.25f * u[0] * u[2]; - case BE: - return rho * -0.083333333333333329f * u[2] + rho * -0.25f * u[0] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - default: - WALBERLA_ABORT("Invalid Direction") - } -} -} // namespace EquilibriumDistribution - -namespace Equilibrium { -inline void set(GhostLayerField *pdf_field, - Vector3 const &u, float const rho, Cell const &cell) { - - float &xyz0 = pdf_field->get(cell, uint_t{0u}); - pdf_field->getF(&xyz0, uint_t{0u}) = - rho * -0.33333333333333331f * (u[0] * u[0]) + - rho * -0.33333333333333331f * (u[1] * u[1]) + - rho * -0.33333333333333331f * (u[2] * u[2]) + rho * 0.33333333333333331f; - pdf_field->getF(&xyz0, uint_t{1u}) = - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[1] + - rho * 0.16666666666666666f * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{2u}) = - rho * -0.16666666666666666f * u[1] + - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{3u}) = - rho * -0.16666666666666666f * u[0] + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u[0] * u[0]); - pdf_field->getF(&xyz0, uint_t{4u}) = - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * -0.16666666666666666f * (u[2] * u[2]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[0] + - rho * 0.16666666666666666f * (u[0] * u[0]); - pdf_field->getF(&xyz0, uint_t{5u}) = - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * u[2] + - rho * 0.16666666666666666f * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{6u}) = - rho * -0.16666666666666666f * u[2] + - rho * -0.16666666666666666f * (u[0] * u[0]) + - rho * -0.16666666666666666f * (u[1] * u[1]) + - rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{7u}) = - rho * -0.083333333333333329f * u[0] + rho * -0.25f * u[0] * u[1] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{8u}) = - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]) + rho * 0.25f * u[0] * u[1]; - pdf_field->getF(&xyz0, uint_t{9u}) = - rho * -0.083333333333333329f * u[0] + - rho * -0.083333333333333329f * u[1] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]) + rho * 0.25f * u[0] * u[1]; - pdf_field->getF(&xyz0, uint_t{10u}) = - rho * -0.083333333333333329f * u[1] + rho * -0.25f * u[0] * u[1] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[1] * u[1]); - pdf_field->getF(&xyz0, uint_t{11u}) = - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + rho * 0.25f * u[1] * u[2]; - pdf_field->getF(&xyz0, uint_t{12u}) = - rho * -0.083333333333333329f * u[1] + rho * -0.25f * u[1] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{13u}) = - rho * -0.083333333333333329f * u[0] + rho * -0.25f * u[0] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{14u}) = - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * u[2] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + rho * 0.25f * u[0] * u[2]; - pdf_field->getF(&xyz0, uint_t{15u}) = - rho * -0.083333333333333329f * u[2] + rho * -0.25f * u[1] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[1] + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]); - pdf_field->getF(&xyz0, uint_t{16u}) = - rho * -0.083333333333333329f * u[1] + - rho * -0.083333333333333329f * u[2] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[1] * u[1]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + rho * 0.25f * u[1] * u[2]; - pdf_field->getF(&xyz0, uint_t{17u}) = - rho * -0.083333333333333329f * u[0] + - rho * -0.083333333333333329f * u[2] + rho * 0.027777777777777776f + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]) + rho * 0.25f * u[0] * u[2]; - pdf_field->getF(&xyz0, uint_t{18u}) = - rho * -0.083333333333333329f * u[2] + rho * -0.25f * u[0] * u[2] + - rho * 0.027777777777777776f + rho * 0.083333333333333329f * u[0] + - rho * 0.083333333333333329f * (u[0] * u[0]) + - rho * 0.083333333333333329f * (u[2] * u[2]); -} -} // namespace Equilibrium - -namespace Density { -inline float get(GhostLayerField const *pdf_field, - Cell const &cell) { - const float &xyz0 = pdf_field->get(cell, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float vel2Term = f_12 + f_13 + f_5; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - return rho; -} - -inline void set(GhostLayerField *pdf_field, - float const rho_in, Cell const &cell) { - const float &xyz0 = pdf_field->get(cell, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float momdensity_1 = -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const float vel2Term = f_12 + f_13 + f_5; - const float momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - - // calculate current velocity (before density change) - const float conversion = float(1) / rho; - Vector3 velocity; - velocity[0u] = momdensity_0 * conversion; - velocity[1u] = momdensity_1 * conversion; - velocity[2u] = momdensity_2 * conversion; - - Equilibrium::set(pdf_field, velocity, rho_in, cell); -} - -inline std::vector -get(GhostLayerField const *pdf_field, - CellInterval const &ci) { - std::vector out; - out.reserve(ci.numCells()); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const float &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float vel2Term = f_12 + f_13 + f_5; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - out.emplace_back(rho); - } - } - } - return out; -} - -inline void set(GhostLayerField *pdf_field, - std::vector const &values, CellInterval const &ci) { - assert(uint_c(values.size()) == ci.numCells()); - auto values_it = values.begin(); - for (auto x = ci.xMin(); x <= ci.xMax(); ++x) { - for (auto y = ci.yMin(); y <= ci.yMax(); ++y) { - for (auto z = ci.zMin(); z <= ci.zMax(); ++z) { - const float &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float momdensity_1 = - -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const float vel2Term = f_12 + f_13 + f_5; - const float momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - - // calculate current velocity (before density change) - const float conversion = float(1) / rho; - Vector3 velocity; - velocity[0u] = momdensity_0 * conversion; - velocity[1u] = momdensity_1 * conversion; - velocity[2u] = momdensity_2 * conversion; - - Equilibrium::set(pdf_field, velocity, *values_it, Cell{x, y, z}); - ++values_it; - } - } - } -} -} // namespace Density - -namespace Velocity { -inline void set(GhostLayerField *pdf_field, - GhostLayerField const *force_field, - Vector3 const &u, Cell const &cell) { - const float &xyz0 = pdf_field->get(cell, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float vel2Term = f_12 + f_13 + f_5; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - - const auto x = cell.x(); - const auto y = cell.y(); - const auto z = cell.z(); - const float u_0 = - -force_field->get(x, y, z, 0) * 0.50000000000000000f / rho + u[0]; - const float u_1 = - -force_field->get(x, y, z, 1) * 0.50000000000000000f / rho + u[1]; - const float u_2 = - -force_field->get(x, y, z, 2) * 0.50000000000000000f / rho + u[2]; - - Equilibrium::set(pdf_field, Vector3(u_0, u_1, u_2), rho, cell); -} -} // namespace Velocity - -namespace MomentumDensity { -inline Vector3 -reduce(GhostLayerField const *pdf_field, - GhostLayerField const *force_field) { - Vector3 momentumDensity(float{0}); - WALBERLA_FOR_ALL_CELLS_XYZ(pdf_field, { - const float &xyz0 = pdf_field->get(x, y, z, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float vel0Term = f_10 + f_14 + f_18 + f_4 + f_8; - const float momdensity_0 = -f_13 - f_17 - f_3 - f_7 - f_9 + vel0Term; - const float vel1Term = f_1 + f_11 + f_15 + f_7; - const float momdensity_1 = -f_10 - f_12 - f_16 - f_2 + f_8 - f_9 + vel1Term; - const float vel2Term = f_12 + f_13 + f_5; - const float momdensity_2 = - f_11 + f_14 - f_15 - f_16 - f_17 - f_18 - f_6 + vel2Term; - const float rho = f_0 + f_16 + f_17 + f_2 + f_3 + f_6 + f_9 + vel0Term + - vel1Term + vel2Term; - const float md_0 = - force_field->get(x, y, z, 0) * 0.50000000000000000f + momdensity_0; - const float md_1 = - force_field->get(x, y, z, 1) * 0.50000000000000000f + momdensity_1; - const float md_2 = - force_field->get(x, y, z, 2) * 0.50000000000000000f + momdensity_2; - - momentumDensity[0u] += md_0; - momentumDensity[1u] += md_1; - momentumDensity[2u] += md_2; - }); - return momentumDensity; -} -} // namespace MomentumDensity - -namespace PressureTensor { -inline Matrix3 get(GhostLayerField const *pdf_field, - Cell const &cell) { - const float &xyz0 = pdf_field->get(cell, uint_t{0u}); - const float f_0 = pdf_field->getF(&xyz0, uint_t{0u}); - const float f_1 = pdf_field->getF(&xyz0, uint_t{1u}); - const float f_2 = pdf_field->getF(&xyz0, uint_t{2u}); - const float f_3 = pdf_field->getF(&xyz0, uint_t{3u}); - const float f_4 = pdf_field->getF(&xyz0, uint_t{4u}); - const float f_5 = pdf_field->getF(&xyz0, uint_t{5u}); - const float f_6 = pdf_field->getF(&xyz0, uint_t{6u}); - const float f_7 = pdf_field->getF(&xyz0, uint_t{7u}); - const float f_8 = pdf_field->getF(&xyz0, uint_t{8u}); - const float f_9 = pdf_field->getF(&xyz0, uint_t{9u}); - const float f_10 = pdf_field->getF(&xyz0, uint_t{10u}); - const float f_11 = pdf_field->getF(&xyz0, uint_t{11u}); - const float f_12 = pdf_field->getF(&xyz0, uint_t{12u}); - const float f_13 = pdf_field->getF(&xyz0, uint_t{13u}); - const float f_14 = pdf_field->getF(&xyz0, uint_t{14u}); - const float f_15 = pdf_field->getF(&xyz0, uint_t{15u}); - const float f_16 = pdf_field->getF(&xyz0, uint_t{16u}); - const float f_17 = pdf_field->getF(&xyz0, uint_t{17u}); - const float f_18 = pdf_field->getF(&xyz0, uint_t{18u}); - const float p_0 = - f_10 + f_13 + f_14 + f_17 + f_18 + f_3 + f_4 + f_7 + f_8 + f_9; - const float p_1 = -f_10 - f_7 + f_8 + f_9; - const float p_2 = -f_13 + f_14 + f_17 - f_18; - const float p_3 = -f_10 - f_7 + f_8 + f_9; - const float p_4 = - f_1 + f_10 + f_11 + f_12 + f_15 + f_16 + f_2 + f_7 + f_8 + f_9; - const float p_5 = f_11 - f_12 - f_15 + f_16; - const float p_6 = -f_13 + f_14 + f_17 - f_18; - const float p_7 = f_11 - f_12 - f_15 + f_16; - const float p_8 = - f_11 + f_12 + f_13 + f_14 + f_15 + f_16 + f_17 + f_18 + f_5 + f_6; - - Matrix3 pressureTensor; - pressureTensor[0u] = p_0; - pressureTensor[1u] = p_1; - pressureTensor[2u] = p_2; - - pressureTensor[3u] = p_3; - pressureTensor[4u] = p_4; - pressureTensor[5u] = p_5; - - pressureTensor[6u] = p_6; - pressureTensor[7u] = p_7; - pressureTensor[8u] = p_8; - - return pressureTensor; -} -} // namespace PressureTensor - -} // namespace accessor -} // namespace lbm -} // namespace walberla - -#ifdef WALBERLA_CXX_COMPILER_IS_GNU -#pragma GCC diagnostic pop -#endif - -#ifdef WALBERLA_CXX_COMPILER_IS_CLANG -#pragma clang diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.cpp b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.cpp deleted file mode 100644 index 844c9febfc..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.cpp +++ /dev/null @@ -1,234 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file InitialPDFsSetterDoublePrecision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "InitialPDFsSetterDoublePrecision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_2df07fce91f5444fc18533f996cd1a79 { -static FUNC_PREFIX void initialpdfssetterdoubleprecision_initialpdfssetterdoubleprecision(double *RESTRICT const _data_force, double *RESTRICT _data_pdfs, double *RESTRICT const _data_velocity, int64_t const _size_force_0, int64_t const _size_force_1, int64_t const _size_force_2, int64_t const _stride_force_0, int64_t const _stride_force_1, int64_t const _stride_force_2, int64_t const _stride_force_3, int64_t const _stride_pdfs_0, int64_t const _stride_pdfs_1, int64_t const _stride_pdfs_2, int64_t const _stride_pdfs_3, int64_t const _stride_velocity_0, int64_t const _stride_velocity_1, int64_t const _stride_velocity_2, int64_t const _stride_velocity_3, double rho_0) { - const double rho = rho_0; - for (int64_t ctr_2 = 0; ctr_2 < _size_force_2; ctr_2 += 1) { - double *RESTRICT _data_force_20_30 = _data_force + _stride_force_2 * ctr_2; - double *RESTRICT _data_velocity_20_30 = _data_velocity + _stride_velocity_2 * ctr_2; - double *RESTRICT _data_force_20_31 = _data_force + _stride_force_2 * ctr_2 + _stride_force_3; - double *RESTRICT _data_velocity_20_31 = _data_velocity + _stride_velocity_2 * ctr_2 + _stride_velocity_3; - double *RESTRICT _data_force_20_32 = _data_force + _stride_force_2 * ctr_2 + 2 * _stride_force_3; - double *RESTRICT _data_velocity_20_32 = _data_velocity + _stride_velocity_2 * ctr_2 + 2 * _stride_velocity_3; - double *RESTRICT _data_pdfs_20_30 = _data_pdfs + _stride_pdfs_2 * ctr_2; - double *RESTRICT _data_pdfs_20_31 = _data_pdfs + _stride_pdfs_2 * ctr_2 + _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_32 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 2 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_33 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 3 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_34 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 4 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_35 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 5 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_36 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 6 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_37 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 7 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_38 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 8 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_39 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 9 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_310 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 10 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_311 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 11 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_312 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 12 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_313 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 13 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_314 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 14 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_315 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 15 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_316 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 16 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_317 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 17 * _stride_pdfs_3; - double *RESTRICT _data_pdfs_20_318 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 18 * _stride_pdfs_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_force_1; ctr_1 += 1) { - double *RESTRICT _data_force_20_30_10 = _stride_force_1 * ctr_1 + _data_force_20_30; - double *RESTRICT _data_velocity_20_30_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_30; - double *RESTRICT _data_force_20_31_10 = _stride_force_1 * ctr_1 + _data_force_20_31; - double *RESTRICT _data_velocity_20_31_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_31; - double *RESTRICT _data_force_20_32_10 = _stride_force_1 * ctr_1 + _data_force_20_32; - double *RESTRICT _data_velocity_20_32_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_32; - double *RESTRICT _data_pdfs_20_30_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_30; - double *RESTRICT _data_pdfs_20_31_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_31; - double *RESTRICT _data_pdfs_20_32_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_32; - double *RESTRICT _data_pdfs_20_33_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_33; - double *RESTRICT _data_pdfs_20_34_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_34; - double *RESTRICT _data_pdfs_20_35_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_35; - double *RESTRICT _data_pdfs_20_36_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_36; - double *RESTRICT _data_pdfs_20_37_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_37; - double *RESTRICT _data_pdfs_20_38_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_38; - double *RESTRICT _data_pdfs_20_39_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_39; - double *RESTRICT _data_pdfs_20_310_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_310; - double *RESTRICT _data_pdfs_20_311_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_311; - double *RESTRICT _data_pdfs_20_312_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_312; - double *RESTRICT _data_pdfs_20_313_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_313; - double *RESTRICT _data_pdfs_20_314_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_314; - double *RESTRICT _data_pdfs_20_315_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_315; - double *RESTRICT _data_pdfs_20_316_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_316; - double *RESTRICT _data_pdfs_20_317_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_317; - double *RESTRICT _data_pdfs_20_318_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_318; - for (int64_t ctr_0 = 0; ctr_0 < _size_force_0; ctr_0 += 1) { - const double u_0 = -0.5 * ((1.0) / (rho)) * _data_force_20_30_10[_stride_force_0 * ctr_0] + _data_velocity_20_30_10[_stride_velocity_0 * ctr_0]; - const double u_1 = -0.5 * ((1.0) / (rho)) * _data_force_20_31_10[_stride_force_0 * ctr_0] + _data_velocity_20_31_10[_stride_velocity_0 * ctr_0]; - const double u_2 = -0.5 * ((1.0) / (rho)) * _data_force_20_32_10[_stride_force_0 * ctr_0] + _data_velocity_20_32_10[_stride_velocity_0 * ctr_0]; - _data_pdfs_20_30_10[_stride_pdfs_0 * ctr_0] = rho * -0.33333333333333331 * (u_0 * u_0) + rho * -0.33333333333333331 * (u_1 * u_1) + rho * -0.33333333333333331 * (u_2 * u_2) + rho * 0.33333333333333331; - _data_pdfs_20_31_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * 0.16666666666666666 + rho * -0.16666666666666666 * (u_0 * u_0) + rho * -0.16666666666666666 * (u_2 * u_2) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_1 * u_1); - _data_pdfs_20_32_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * -0.16666666666666666 + rho * -0.16666666666666666 * (u_0 * u_0) + rho * -0.16666666666666666 * (u_2 * u_2) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_1 * u_1); - _data_pdfs_20_33_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * -0.16666666666666666 + rho * -0.16666666666666666 * (u_1 * u_1) + rho * -0.16666666666666666 * (u_2 * u_2) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_0 * u_0); - _data_pdfs_20_34_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * 0.16666666666666666 + rho * -0.16666666666666666 * (u_1 * u_1) + rho * -0.16666666666666666 * (u_2 * u_2) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_0 * u_0); - _data_pdfs_20_35_10[_stride_pdfs_0 * ctr_0] = rho * u_2 * 0.16666666666666666 + rho * -0.16666666666666666 * (u_0 * u_0) + rho * -0.16666666666666666 * (u_1 * u_1) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_2 * u_2); - _data_pdfs_20_36_10[_stride_pdfs_0 * ctr_0] = rho * u_2 * -0.16666666666666666 + rho * -0.16666666666666666 * (u_0 * u_0) + rho * -0.16666666666666666 * (u_1 * u_1) + rho * 0.055555555555555552 + rho * 0.16666666666666666 * (u_2 * u_2); - _data_pdfs_20_37_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * -0.25 + rho * u_0 * -0.083333333333333329 + rho * u_1 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_1 * u_1); - _data_pdfs_20_38_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * 0.25 + rho * u_0 * 0.083333333333333329 + rho * u_1 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_1 * u_1); - _data_pdfs_20_39_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * 0.25 + rho * u_0 * -0.083333333333333329 + rho * u_1 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_1 * u_1); - _data_pdfs_20_310_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * -0.25 + rho * u_0 * 0.083333333333333329 + rho * u_1 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_1 * u_1); - _data_pdfs_20_311_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * 0.25 + rho * u_1 * 0.083333333333333329 + rho * u_2 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_1 * u_1) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_312_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * -0.25 + rho * u_1 * -0.083333333333333329 + rho * u_2 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_1 * u_1) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_313_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * -0.25 + rho * u_0 * -0.083333333333333329 + rho * u_2 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_314_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * 0.25 + rho * u_0 * 0.083333333333333329 + rho * u_2 * 0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_315_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * -0.25 + rho * u_1 * 0.083333333333333329 + rho * u_2 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_1 * u_1) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_316_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * 0.25 + rho * u_1 * -0.083333333333333329 + rho * u_2 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_1 * u_1) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_317_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * 0.25 + rho * u_0 * -0.083333333333333329 + rho * u_2 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_2 * u_2); - _data_pdfs_20_318_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * -0.25 + rho * u_0 * 0.083333333333333329 + rho * u_2 * -0.083333333333333329 + rho * 0.027777777777777776 + rho * 0.083333333333333329 * (u_0 * u_0) + rho * 0.083333333333333329 * (u_2 * u_2); - } - } - } -} -} // namespace internal_2df07fce91f5444fc18533f996cd1a79 - -void InitialPDFsSetterDoublePrecision::run(IBlock *block) { - auto force = block->getData>(forceID); - auto velocity = block->getData>(velocityID); - auto pdfs = block->getData>(pdfsID); - - auto &rho_0 = this->rho_0_; - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(force->nrOfGhostLayers())); - double *RESTRICT const _data_force = force->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(pdfs->nrOfGhostLayers())); - double *RESTRICT _data_pdfs = pdfs->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(velocity->nrOfGhostLayers())); - double *RESTRICT const _data_velocity = velocity->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(velocity->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(cell_idx_c(force->xSize()) + 0)); - const int64_t _size_force_0 = int64_t(cell_idx_c(force->xSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(cell_idx_c(force->ySize()) + 0)); - const int64_t _size_force_1 = int64_t(cell_idx_c(force->ySize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(cell_idx_c(force->zSize()) + 0)); - const int64_t _size_force_2 = int64_t(cell_idx_c(force->zSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - const int64_t _stride_force_0 = int64_t(force->xStride()); - const int64_t _stride_force_1 = int64_t(force->yStride()); - const int64_t _stride_force_2 = int64_t(force->zStride()); - const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride())); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - const int64_t _stride_velocity_0 = int64_t(velocity->xStride()); - const int64_t _stride_velocity_1 = int64_t(velocity->yStride()); - const int64_t _stride_velocity_2 = int64_t(velocity->zStride()); - const int64_t _stride_velocity_3 = int64_t(1 * int64_t(velocity->fStride())); - internal_2df07fce91f5444fc18533f996cd1a79::initialpdfssetterdoubleprecision_initialpdfssetterdoubleprecision(_data_force, _data_pdfs, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3, rho_0); -} - -void InitialPDFsSetterDoublePrecision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto force = block->getData>(forceID); - auto velocity = block->getData>(velocityID); - auto pdfs = block->getData>(pdfsID); - - auto &rho_0 = this->rho_0_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(force->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(force->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(force->nrOfGhostLayers())); - double *RESTRICT const _data_force = force->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(pdfs->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(pdfs->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(pdfs->nrOfGhostLayers())); - double *RESTRICT _data_pdfs = pdfs->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(velocity->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(velocity->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(velocity->nrOfGhostLayers())); - double *RESTRICT const _data_velocity = velocity->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(velocity->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_force_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_force_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_force_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - const int64_t _stride_force_0 = int64_t(force->xStride()); - const int64_t _stride_force_1 = int64_t(force->yStride()); - const int64_t _stride_force_2 = int64_t(force->zStride()); - const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride())); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - const int64_t _stride_velocity_0 = int64_t(velocity->xStride()); - const int64_t _stride_velocity_1 = int64_t(velocity->yStride()); - const int64_t _stride_velocity_2 = int64_t(velocity->zStride()); - const int64_t _stride_velocity_3 = int64_t(1 * int64_t(velocity->fStride())); - internal_2df07fce91f5444fc18533f996cd1a79::initialpdfssetterdoubleprecision_initialpdfssetterdoubleprecision(_data_force, _data_pdfs, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3, rho_0); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.h deleted file mode 100644 index 6287be21cc..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterDoublePrecision.h +++ /dev/null @@ -1,106 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file InitialPDFsSetterDoublePrecision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class InitialPDFsSetterDoublePrecision { -public: - InitialPDFsSetterDoublePrecision(BlockDataID forceID_, BlockDataID pdfsID_, - BlockDataID velocityID_, double rho_0) - : forceID(forceID_), pdfsID(pdfsID_), velocityID(velocityID_), - rho_0_(rho_0){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID forceID; - BlockDataID pdfsID; - BlockDataID velocityID; - double rho_0_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.cpp b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.cpp deleted file mode 100644 index 6f86579d6a..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.cpp +++ /dev/null @@ -1,234 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file InitialPDFsSetterSinglePrecision.cpp -//! \\ingroup lbm -//! \\author lbmpy -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, lbmpy_walberla/pystencils_walberla from waLBerla commit 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#include - -#include "InitialPDFsSetterSinglePrecision.h" -#include "core/DataTypes.h" -#include "core/Macros.h" - -#define FUNC_PREFIX - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wfloat-equal" -#pragma GCC diagnostic ignored "-Wshadow" -#pragma GCC diagnostic ignored "-Wconversion" -#pragma GCC diagnostic ignored "-Wunused-variable" -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning push -#pragma warning(disable : 1599) -#endif - -using namespace std; - -namespace walberla { -namespace pystencils { - -namespace internal_b8085d63d6b7e842485134abbac511e8 { -static FUNC_PREFIX void initialpdfssettersingleprecision_initialpdfssettersingleprecision(float *RESTRICT const _data_force, float *RESTRICT _data_pdfs, float *RESTRICT const _data_velocity, int64_t const _size_force_0, int64_t const _size_force_1, int64_t const _size_force_2, int64_t const _stride_force_0, int64_t const _stride_force_1, int64_t const _stride_force_2, int64_t const _stride_force_3, int64_t const _stride_pdfs_0, int64_t const _stride_pdfs_1, int64_t const _stride_pdfs_2, int64_t const _stride_pdfs_3, int64_t const _stride_velocity_0, int64_t const _stride_velocity_1, int64_t const _stride_velocity_2, int64_t const _stride_velocity_3, float rho_0) { - const float rho = rho_0; - for (int64_t ctr_2 = 0; ctr_2 < _size_force_2; ctr_2 += 1) { - float *RESTRICT _data_force_20_30 = _data_force + _stride_force_2 * ctr_2; - float *RESTRICT _data_velocity_20_30 = _data_velocity + _stride_velocity_2 * ctr_2; - float *RESTRICT _data_force_20_31 = _data_force + _stride_force_2 * ctr_2 + _stride_force_3; - float *RESTRICT _data_velocity_20_31 = _data_velocity + _stride_velocity_2 * ctr_2 + _stride_velocity_3; - float *RESTRICT _data_force_20_32 = _data_force + _stride_force_2 * ctr_2 + 2 * _stride_force_3; - float *RESTRICT _data_velocity_20_32 = _data_velocity + _stride_velocity_2 * ctr_2 + 2 * _stride_velocity_3; - float *RESTRICT _data_pdfs_20_30 = _data_pdfs + _stride_pdfs_2 * ctr_2; - float *RESTRICT _data_pdfs_20_31 = _data_pdfs + _stride_pdfs_2 * ctr_2 + _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_32 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 2 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_33 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 3 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_34 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 4 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_35 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 5 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_36 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 6 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_37 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 7 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_38 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 8 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_39 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 9 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_310 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 10 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_311 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 11 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_312 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 12 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_313 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 13 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_314 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 14 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_315 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 15 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_316 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 16 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_317 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 17 * _stride_pdfs_3; - float *RESTRICT _data_pdfs_20_318 = _data_pdfs + _stride_pdfs_2 * ctr_2 + 18 * _stride_pdfs_3; - for (int64_t ctr_1 = 0; ctr_1 < _size_force_1; ctr_1 += 1) { - float *RESTRICT _data_force_20_30_10 = _stride_force_1 * ctr_1 + _data_force_20_30; - float *RESTRICT _data_velocity_20_30_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_30; - float *RESTRICT _data_force_20_31_10 = _stride_force_1 * ctr_1 + _data_force_20_31; - float *RESTRICT _data_velocity_20_31_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_31; - float *RESTRICT _data_force_20_32_10 = _stride_force_1 * ctr_1 + _data_force_20_32; - float *RESTRICT _data_velocity_20_32_10 = _stride_velocity_1 * ctr_1 + _data_velocity_20_32; - float *RESTRICT _data_pdfs_20_30_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_30; - float *RESTRICT _data_pdfs_20_31_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_31; - float *RESTRICT _data_pdfs_20_32_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_32; - float *RESTRICT _data_pdfs_20_33_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_33; - float *RESTRICT _data_pdfs_20_34_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_34; - float *RESTRICT _data_pdfs_20_35_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_35; - float *RESTRICT _data_pdfs_20_36_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_36; - float *RESTRICT _data_pdfs_20_37_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_37; - float *RESTRICT _data_pdfs_20_38_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_38; - float *RESTRICT _data_pdfs_20_39_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_39; - float *RESTRICT _data_pdfs_20_310_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_310; - float *RESTRICT _data_pdfs_20_311_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_311; - float *RESTRICT _data_pdfs_20_312_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_312; - float *RESTRICT _data_pdfs_20_313_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_313; - float *RESTRICT _data_pdfs_20_314_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_314; - float *RESTRICT _data_pdfs_20_315_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_315; - float *RESTRICT _data_pdfs_20_316_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_316; - float *RESTRICT _data_pdfs_20_317_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_317; - float *RESTRICT _data_pdfs_20_318_10 = _stride_pdfs_1 * ctr_1 + _data_pdfs_20_318; - for (int64_t ctr_0 = 0; ctr_0 < _size_force_0; ctr_0 += 1) { - const float u_0 = -0.5f * ((1.0f) / (rho)) * _data_force_20_30_10[_stride_force_0 * ctr_0] + _data_velocity_20_30_10[_stride_velocity_0 * ctr_0]; - const float u_1 = -0.5f * ((1.0f) / (rho)) * _data_force_20_31_10[_stride_force_0 * ctr_0] + _data_velocity_20_31_10[_stride_velocity_0 * ctr_0]; - const float u_2 = -0.5f * ((1.0f) / (rho)) * _data_force_20_32_10[_stride_force_0 * ctr_0] + _data_velocity_20_32_10[_stride_velocity_0 * ctr_0]; - _data_pdfs_20_30_10[_stride_pdfs_0 * ctr_0] = rho * -0.33333333333333331f * (u_0 * u_0) + rho * -0.33333333333333331f * (u_1 * u_1) + rho * -0.33333333333333331f * (u_2 * u_2) + rho * 0.33333333333333331f; - _data_pdfs_20_31_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * 0.16666666666666666f + rho * -0.16666666666666666f * (u_0 * u_0) + rho * -0.16666666666666666f * (u_2 * u_2) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_1 * u_1); - _data_pdfs_20_32_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * -0.16666666666666666f + rho * -0.16666666666666666f * (u_0 * u_0) + rho * -0.16666666666666666f * (u_2 * u_2) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_1 * u_1); - _data_pdfs_20_33_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * -0.16666666666666666f + rho * -0.16666666666666666f * (u_1 * u_1) + rho * -0.16666666666666666f * (u_2 * u_2) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_0 * u_0); - _data_pdfs_20_34_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * 0.16666666666666666f + rho * -0.16666666666666666f * (u_1 * u_1) + rho * -0.16666666666666666f * (u_2 * u_2) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_0 * u_0); - _data_pdfs_20_35_10[_stride_pdfs_0 * ctr_0] = rho * u_2 * 0.16666666666666666f + rho * -0.16666666666666666f * (u_0 * u_0) + rho * -0.16666666666666666f * (u_1 * u_1) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_2 * u_2); - _data_pdfs_20_36_10[_stride_pdfs_0 * ctr_0] = rho * u_2 * -0.16666666666666666f + rho * -0.16666666666666666f * (u_0 * u_0) + rho * -0.16666666666666666f * (u_1 * u_1) + rho * 0.055555555555555552f + rho * 0.16666666666666666f * (u_2 * u_2); - _data_pdfs_20_37_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * -0.25f + rho * u_0 * -0.083333333333333329f + rho * u_1 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_1 * u_1); - _data_pdfs_20_38_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * 0.25f + rho * u_0 * 0.083333333333333329f + rho * u_1 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_1 * u_1); - _data_pdfs_20_39_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * 0.25f + rho * u_0 * -0.083333333333333329f + rho * u_1 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_1 * u_1); - _data_pdfs_20_310_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_1 * -0.25f + rho * u_0 * 0.083333333333333329f + rho * u_1 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_1 * u_1); - _data_pdfs_20_311_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * 0.25f + rho * u_1 * 0.083333333333333329f + rho * u_2 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_1 * u_1) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_312_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * -0.25f + rho * u_1 * -0.083333333333333329f + rho * u_2 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_1 * u_1) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_313_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * -0.25f + rho * u_0 * -0.083333333333333329f + rho * u_2 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_314_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * 0.25f + rho * u_0 * 0.083333333333333329f + rho * u_2 * 0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_315_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * -0.25f + rho * u_1 * 0.083333333333333329f + rho * u_2 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_1 * u_1) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_316_10[_stride_pdfs_0 * ctr_0] = rho * u_1 * u_2 * 0.25f + rho * u_1 * -0.083333333333333329f + rho * u_2 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_1 * u_1) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_317_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * 0.25f + rho * u_0 * -0.083333333333333329f + rho * u_2 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_2 * u_2); - _data_pdfs_20_318_10[_stride_pdfs_0 * ctr_0] = rho * u_0 * u_2 * -0.25f + rho * u_0 * 0.083333333333333329f + rho * u_2 * -0.083333333333333329f + rho * 0.027777777777777776f + rho * 0.083333333333333329f * (u_0 * u_0) + rho * 0.083333333333333329f * (u_2 * u_2); - } - } - } -} -} // namespace internal_b8085d63d6b7e842485134abbac511e8 - -void InitialPDFsSetterSinglePrecision::run(IBlock *block) { - auto velocity = block->getData>(velocityID); - auto force = block->getData>(forceID); - auto pdfs = block->getData>(pdfsID); - - auto &rho_0 = this->rho_0_; - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(force->nrOfGhostLayers())); - float *RESTRICT const _data_force = force->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(pdfs->nrOfGhostLayers())); - float *RESTRICT _data_pdfs = pdfs->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(0, -int_c(velocity->nrOfGhostLayers())); - float *RESTRICT const _data_velocity = velocity->dataAt(0, 0, 0, 0); - WALBERLA_ASSERT_EQUAL(velocity->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(cell_idx_c(force->xSize()) + 0)); - const int64_t _size_force_0 = int64_t(cell_idx_c(force->xSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(cell_idx_c(force->ySize()) + 0)); - const int64_t _size_force_1 = int64_t(cell_idx_c(force->ySize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(cell_idx_c(force->zSize()) + 0)); - const int64_t _size_force_2 = int64_t(cell_idx_c(force->zSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - const int64_t _stride_force_0 = int64_t(force->xStride()); - const int64_t _stride_force_1 = int64_t(force->yStride()); - const int64_t _stride_force_2 = int64_t(force->zStride()); - const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride())); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - const int64_t _stride_velocity_0 = int64_t(velocity->xStride()); - const int64_t _stride_velocity_1 = int64_t(velocity->yStride()); - const int64_t _stride_velocity_2 = int64_t(velocity->zStride()); - const int64_t _stride_velocity_3 = int64_t(1 * int64_t(velocity->fStride())); - internal_b8085d63d6b7e842485134abbac511e8::initialpdfssettersingleprecision_initialpdfssettersingleprecision(_data_force, _data_pdfs, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3, rho_0); -} - -void InitialPDFsSetterSinglePrecision::runOnCellInterval(const shared_ptr &blocks, const CellInterval &globalCellInterval, cell_idx_t ghostLayers, IBlock *block) { - CellInterval ci = globalCellInterval; - CellInterval blockBB = blocks->getBlockCellBB(*block); - blockBB.expand(ghostLayers); - ci.intersect(blockBB); - blocks->transformGlobalToBlockLocalCellInterval(ci, *block); - if (ci.empty()) - return; - - auto velocity = block->getData>(velocityID); - auto force = block->getData>(forceID); - auto pdfs = block->getData>(pdfsID); - - auto &rho_0 = this->rho_0_; - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(force->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(force->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(force->nrOfGhostLayers())); - float *RESTRICT const _data_force = force->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(pdfs->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(pdfs->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(pdfs->nrOfGhostLayers())); - float *RESTRICT _data_pdfs = pdfs->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(pdfs->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(ci.xMin(), -int_c(velocity->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.yMin(), -int_c(velocity->nrOfGhostLayers())); - WALBERLA_ASSERT_GREATER_EQUAL(ci.zMin(), -int_c(velocity->nrOfGhostLayers())); - float *RESTRICT const _data_velocity = velocity->dataAt(ci.xMin(), ci.yMin(), ci.zMin(), 0); - WALBERLA_ASSERT_EQUAL(velocity->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->xSizeWithGhostLayer(), int64_t(cell_idx_c(ci.xSize()) + 0)); - const int64_t _size_force_0 = int64_t(cell_idx_c(ci.xSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->ySizeWithGhostLayer(), int64_t(cell_idx_c(ci.ySize()) + 0)); - const int64_t _size_force_1 = int64_t(cell_idx_c(ci.ySize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - WALBERLA_ASSERT_GREATER_EQUAL(force->zSizeWithGhostLayer(), int64_t(cell_idx_c(ci.zSize()) + 0)); - const int64_t _size_force_2 = int64_t(cell_idx_c(ci.zSize()) + 0); - WALBERLA_ASSERT_EQUAL(force->layout(), field::fzyx); - const int64_t _stride_force_0 = int64_t(force->xStride()); - const int64_t _stride_force_1 = int64_t(force->yStride()); - const int64_t _stride_force_2 = int64_t(force->zStride()); - const int64_t _stride_force_3 = int64_t(1 * int64_t(force->fStride())); - const int64_t _stride_pdfs_0 = int64_t(pdfs->xStride()); - const int64_t _stride_pdfs_1 = int64_t(pdfs->yStride()); - const int64_t _stride_pdfs_2 = int64_t(pdfs->zStride()); - const int64_t _stride_pdfs_3 = int64_t(1 * int64_t(pdfs->fStride())); - const int64_t _stride_velocity_0 = int64_t(velocity->xStride()); - const int64_t _stride_velocity_1 = int64_t(velocity->yStride()); - const int64_t _stride_velocity_2 = int64_t(velocity->zStride()); - const int64_t _stride_velocity_3 = int64_t(1 * int64_t(velocity->fStride())); - internal_b8085d63d6b7e842485134abbac511e8::initialpdfssettersingleprecision_initialpdfssettersingleprecision(_data_force, _data_pdfs, _data_velocity, _size_force_0, _size_force_1, _size_force_2, _stride_force_0, _stride_force_1, _stride_force_2, _stride_force_3, _stride_pdfs_0, _stride_pdfs_1, _stride_pdfs_2, _stride_pdfs_3, _stride_velocity_0, _stride_velocity_1, _stride_velocity_2, _stride_velocity_3, rho_0); -} - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_INTEL) -#pragma warning pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.h deleted file mode 100644 index 75ff7c1641..0000000000 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/InitialPDFsSetterSinglePrecision.h +++ /dev/null @@ -1,106 +0,0 @@ -//====================================================================================================================== -// -// This file is part of waLBerla. waLBerla is free software: you can -// redistribute it and/or modify it under the terms of the GNU General Public -// License as published by the Free Software Foundation, either version 3 of -// the License, or (at your option) any later version. -// -// waLBerla 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 General Public License along -// with waLBerla (see COPYING.txt). If not, see . -// -//! \\file InitialPDFsSetterSinglePrecision.h -//! \\author pystencils -//====================================================================================================================== - -// kernel generated with pystencils v1.2, lbmpy v1.3.1, -// lbmpy_walberla/pystencils_walberla from waLBerla commit -// 065ce5f311850371a97ac4766f47dbb5ca8424ba - -#pragma once -#include "core/DataTypes.h" - -#include "domain_decomposition/BlockDataID.h" -#include "domain_decomposition/IBlock.h" -#include "domain_decomposition/StructuredBlockStorage.h" -#include "field/GhostLayerField.h" -#include "field/SwapableCompare.h" -#include - -#ifdef __GNUC__ -#define RESTRICT __restrict__ -#elif _MSC_VER -#define RESTRICT __restrict -#else -#define RESTRICT -#endif - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-Wreorder" -#endif - -namespace walberla { -namespace pystencils { - -class InitialPDFsSetterSinglePrecision { -public: - InitialPDFsSetterSinglePrecision(BlockDataID forceID_, BlockDataID pdfsID_, - BlockDataID velocityID_, float rho_0) - : forceID(forceID_), pdfsID(pdfsID_), velocityID(velocityID_), - rho_0_(rho_0){}; - - void run(IBlock *block); - - void runOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers, IBlock *block); - - void operator()(IBlock *block) { run(block); } - - static std::function - getSweep(const shared_ptr &kernel) { - return [kernel](IBlock *b) { kernel->run(b); }; - } - - static std::function getSweepOnCellInterval( - const shared_ptr &kernel, - const shared_ptr &blocks, - const CellInterval &globalCellInterval, cell_idx_t ghostLayers = 1) { - return [kernel, blocks, globalCellInterval, ghostLayers](IBlock *b) { - kernel->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - std::function getSweep() { - return [this](IBlock *b) { this->run(b); }; - } - - std::function - getSweepOnCellInterval(const shared_ptr &blocks, - const CellInterval &globalCellInterval, - cell_idx_t ghostLayers = 1) { - return [this, blocks, globalCellInterval, ghostLayers](IBlock *b) { - this->runOnCellInterval(blocks, globalCellInterval, ghostLayers, b); - }; - } - - BlockDataID forceID; - BlockDataID pdfsID; - BlockDataID velocityID; - float rho_0_; -}; - -} // namespace pystencils -} // namespace walberla - -#if (defined WALBERLA_CXX_COMPILER_IS_GNU) || \ - (defined WALBERLA_CXX_COMPILER_IS_CLANG) -#pragma GCC diagnostic pop -#endif \ No newline at end of file diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/myintrin.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/myintrin.h index ca63437195..d4a332689f 100644 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/myintrin.h +++ b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/myintrin.h @@ -1,10 +1,11 @@ -// kernel generated with pystencils v1.0+12.g54b91e2, lbmpy -// v1.0+9.g19115d4.dirty, lbmpy_walberla/pystencils_walberla from commit -// e1fe2ad1dcbe8f31ea79d95e8a5a5cc0ee3691f3 + +// kernel generated with pystencils v1.2, lbmpy v1.3.1, +// lbmpy_walberla/pystencils_walberla from waLBerla commit +// 065ce5f311850371a97ac4766f47dbb5ca8424ba #pragma once -#if defined(__SSE2__) || defined(_MSC_VER) +#if defined(__SSE2__) || (defined(_MSC_VER) && !defined(_M_ARM64)) QUALIFIERS __m128 _my_cvtepu32_ps(const __m128i v) { #ifdef __AVX512VL__ return _mm_cvtepu32_ps(v); @@ -31,7 +32,7 @@ QUALIFIERS void _MY_TRANSPOSE4_EPI32(__m128i &R0, __m128i &R1, __m128i &R2, } #endif -#if defined(__SSE4_1__) || defined(_MSC_VER) +#if defined(__SSE4_1__) || (defined(_MSC_VER) && !defined(_M_ARM64)) #if !defined(__AVX512VL__) && defined(__GNUC__) && __GNUC__ >= 5 && \ !defined(__clang__) __attribute__((optimize("no-associative-math"))) diff --git a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/philox_rand.h b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/philox_rand.h index 3c97a91f98..11625acf45 100644 --- a/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/philox_rand.h +++ b/src/walberla_bridge/src/lattice_boltzmann/generated_kernels/philox_rand.h @@ -1,21 +1,25 @@ -// kernel generated with pystencils v1.0+12.g54b91e2, lbmpy -// v1.0+9.g19115d4.dirty, lbmpy_walberla/pystencils_walberla from commit -// e1fe2ad1dcbe8f31ea79d95e8a5a5cc0ee3691f3 -#include +// kernel generated with pystencils v1.2, lbmpy v1.3.1, +// lbmpy_walberla/pystencils_walberla from waLBerla commit +// 065ce5f311850371a97ac4766f47dbb5ca8424ba -#if defined(__SSE2__) || defined(_MSC_VER) +#if !defined(__OPENCL_VERSION__) && !defined(__HIPCC_RTC__) +#if defined(__SSE2__) || (defined(_MSC_VER) && !defined(_M_ARM64)) #include // SSE2 #endif #ifdef __AVX2__ #include // AVX* -#elif defined(__SSE4_1__) || defined(_MSC_VER) +#elif defined(__SSE4_1__) || (defined(_MSC_VER) && !defined(_M_ARM64)) #include // SSE4 #ifdef __FMA__ #include // FMA #endif #endif +#if defined(_MSC_VER) && defined(_M_ARM64) +#define __ARM_NEON +#endif + #ifdef __ARM_NEON #include #endif @@ -35,11 +39,18 @@ #endif #endif -#ifndef __CUDA_ARCH__ +#ifdef __riscv_v +#include +#endif +#endif + +#if defined(__CUDA_ARCH__) || defined(__HIP_DEVICE_COMPILE__) +#define QUALIFIERS static __forceinline__ __device__ +#elif defined(__OPENCL_VERSION__) +#define QUALIFIERS static inline +#else #define QUALIFIERS inline #include "myintrin.h" -#else -#define QUALIFIERS static __forceinline__ __device__ #endif #define PHILOX_W32_0 (0x9E3779B9) @@ -49,8 +60,17 @@ #define TWOPOW53_INV_DOUBLE (1.1102230246251565e-16) #define TWOPOW32_INV_FLOAT (2.3283064e-10f) +#ifdef __OPENCL_VERSION__ +#include "opencl_stdint.h" +typedef uint32_t uint32; +typedef uint64_t uint64; +#else +#ifndef __HIPCC_RTC__ +#include +#endif typedef std::uint32_t uint32; typedef std::uint64_t uint64; +#endif #if defined(__ARM_FEATURE_SVE) && defined(__ARM_FEATURE_SVE_BITS) && \ __ARM_FEATURE_SVE_BITS > 0 @@ -64,11 +84,14 @@ typedef svfloat64_t svfloat64_st; #endif QUALIFIERS uint32 mulhilo32(uint32 a, uint32 b, uint32 *hip) { -#ifndef __CUDA_ARCH__ +#if !defined(__CUDA_ARCH__) && !defined(__HIP_DEVICE_COMPILE__) // host code #if defined(__powerpc__) && (!defined(__clang__) || defined(__xlC__)) *hip = __mulhwu(a, b); return a * b; +#elif defined(__OPENCL_VERSION__) + *hip = mul_hi(a, b); + return a * b; #else uint64 product = ((uint64)a) * ((uint64)b); *hip = product >> 32; @@ -99,13 +122,18 @@ QUALIFIERS void _philox4x32bumpkey(uint32 *key) { } QUALIFIERS double _uniform_double_hq(uint32 x, uint32 y) { - double z = (double)((uint64)x ^ ((uint64)y << (53 - 32))); + uint64 z = (uint64)x ^ ((uint64)y << (53 - 32)); return z * TWOPOW53_INV_DOUBLE + (TWOPOW53_INV_DOUBLE / 2.0); } QUALIFIERS void philox_double2(uint32 ctr0, uint32 ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, - double &rnd1, double &rnd2) { +#ifdef __OPENCL_VERSION__ + double *rnd1, double *rnd2) +#else + double &rnd1, double &rnd2) +#endif +{ uint32 key[2] = {key0, key1}; uint32 ctr[4] = {ctr0, ctr1, ctr2, ctr3}; _philox4x32round(ctr, key); // 1 @@ -128,14 +156,25 @@ QUALIFIERS void philox_double2(uint32 ctr0, uint32 ctr1, uint32 ctr2, _philox4x32bumpkey(key); _philox4x32round(ctr, key); // 10 +#ifdef __OPENCL_VERSION__ + *rnd1 = _uniform_double_hq(ctr[0], ctr[1]); + *rnd2 = _uniform_double_hq(ctr[2], ctr[3]); +#else rnd1 = _uniform_double_hq(ctr[0], ctr[1]); rnd2 = _uniform_double_hq(ctr[2], ctr[3]); +#endif } QUALIFIERS void philox_float4(uint32 ctr0, uint32 ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, +#ifdef __OPENCL_VERSION__ + float *rnd1, float *rnd2, float *rnd3, + float *rnd4) +#else float &rnd1, float &rnd2, float &rnd3, - float &rnd4) { + float &rnd4) +#endif +{ uint32 key[2] = {key0, key1}; uint32 ctr[4] = {ctr0, ctr1, ctr2, ctr3}; _philox4x32round(ctr, key); // 1 @@ -158,14 +197,22 @@ QUALIFIERS void philox_float4(uint32 ctr0, uint32 ctr1, uint32 ctr2, _philox4x32bumpkey(key); _philox4x32round(ctr, key); // 10 - rnd1 = (float)(ctr[0]) * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); - rnd2 = (float)(ctr[1]) * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); - rnd3 = (float)(ctr[2]) * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); - rnd4 = (float)(ctr[3]) * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); +#ifdef __OPENCL_VERSION__ + *rnd1 = ctr[0] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + *rnd2 = ctr[1] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + *rnd3 = ctr[2] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + *rnd4 = ctr[3] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); +#else + rnd1 = ctr[0] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + rnd2 = ctr[1] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + rnd3 = ctr[2] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); + rnd4 = ctr[3] * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT / 2.0f); +#endif } -#ifndef __CUDA_ARCH__ -#if defined(__SSE4_1__) || defined(_MSC_VER) +#if !defined(__CUDA_ARCH__) && !defined(__OPENCL_VERSION__) && \ + !defined(__HIP_DEVICE_COMPILE__) +#if defined(__SSE4_1__) || (defined(_MSC_VER) && !defined(_M_ARM64)) QUALIFIERS void _philox4x32round(__m128i *ctr, __m128i *key) { __m128i lohi0a = _mm_mul_epu32(ctr[0], _mm_set1_epi32(PHILOX_M4x32_0)); __m128i lohi0b = @@ -350,13 +397,13 @@ QUALIFIERS void _philox4x32round(__vector unsigned int *ctr, __vector unsigned int *key) { #ifndef _ARCH_PWR8 __vector unsigned int lo0 = vec_mul(ctr[0], vec_splats(PHILOX_M4x32_0)); - __vector unsigned int lo1 = vec_mul(ctr[2], vec_splats(PHILOX_M4x32_1)); __vector unsigned int hi0 = vec_mulhuw(ctr[0], vec_splats(PHILOX_M4x32_0)); + __vector unsigned int lo1 = vec_mul(ctr[2], vec_splats(PHILOX_M4x32_1)); __vector unsigned int hi1 = vec_mulhuw(ctr[2], vec_splats(PHILOX_M4x32_1)); #elif defined(_ARCH_PWR10) __vector unsigned int lo0 = vec_mul(ctr[0], vec_splats(PHILOX_M4x32_0)); - __vector unsigned int lo1 = vec_mul(ctr[2], vec_splats(PHILOX_M4x32_1)); __vector unsigned int hi0 = vec_mulh(ctr[0], vec_splats(PHILOX_M4x32_0)); + __vector unsigned int lo1 = vec_mul(ctr[2], vec_splats(PHILOX_M4x32_1)); __vector unsigned int hi1 = vec_mulh(ctr[2], vec_splats(PHILOX_M4x32_1)); #else __vector unsigned int lohi0a = @@ -714,6 +761,7 @@ QUALIFIERS void philox_float4(uint32 ctr0, uint32x4_t ctr1, uint32 ctr2, philox_float4(ctr0v, ctr1, ctr2v, ctr3v, key0, key1, rnd1, rnd2, rnd3, rnd4); } +#ifndef _MSC_VER QUALIFIERS void philox_float4(uint32 ctr0, int32x4_t ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, float32x4_t &rnd1, float32x4_t &rnd2, @@ -721,6 +769,7 @@ QUALIFIERS void philox_float4(uint32 ctr0, int32x4_t ctr1, uint32 ctr2, philox_float4(ctr0, vreinterpretq_u32_s32(ctr1), ctr2, ctr3, key0, key1, rnd1, rnd2, rnd3, rnd4); } +#endif QUALIFIERS void philox_double2(uint32 ctr0, uint32x4_t ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, @@ -746,6 +795,7 @@ QUALIFIERS void philox_double2(uint32 ctr0, uint32x4_t ctr1, uint32 ctr2, ignore); } +#ifndef _MSC_VER QUALIFIERS void philox_double2(uint32 ctr0, int32x4_t ctr1, uint32 ctr2, uint32 ctr3, uint32 key0, uint32 key1, float64x2_t &rnd1, float64x2_t &rnd2) { @@ -753,15 +803,16 @@ QUALIFIERS void philox_double2(uint32 ctr0, int32x4_t ctr1, uint32 ctr2, rnd1, rnd2); } #endif +#endif #if defined(__ARM_FEATURE_SVE) QUALIFIERS void _philox4x32round(svuint32x4_t &ctr, svuint32x2_t &key) { svuint32_t lo0 = svmul_u32_x(svptrue_b32(), svget4_u32(ctr, 0), svdup_u32(PHILOX_M4x32_0)); - svuint32_t lo1 = - svmul_u32_x(svptrue_b32(), svget4_u32(ctr, 2), svdup_u32(PHILOX_M4x32_1)); svuint32_t hi0 = svmulh_u32_x(svptrue_b32(), svget4_u32(ctr, 0), svdup_u32(PHILOX_M4x32_0)); + svuint32_t lo1 = + svmul_u32_x(svptrue_b32(), svget4_u32(ctr, 2), svdup_u32(PHILOX_M4x32_1)); svuint32_t hi1 = svmulh_u32_x(svptrue_b32(), svget4_u32(ctr, 2), svdup_u32(PHILOX_M4x32_1)); @@ -939,6 +990,201 @@ QUALIFIERS void philox_double2(uint32 ctr0, svint32_t ctr1, uint32 ctr2, } #endif +#if defined(__riscv_v) +QUALIFIERS void _philox4x32round(vuint32m1_t &ctr0, vuint32m1_t &ctr1, + vuint32m1_t &ctr2, vuint32m1_t &ctr3, + vuint32m1_t key0, vuint32m1_t key1) { + vuint32m1_t lo0 = + vmul_vv_u32m1(ctr0, vmv_v_x_u32m1(PHILOX_M4x32_0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + vuint32m1_t hi0 = + vmulhu_vv_u32m1(ctr0, vmv_v_x_u32m1(PHILOX_M4x32_0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + vuint32m1_t lo1 = + vmul_vv_u32m1(ctr2, vmv_v_x_u32m1(PHILOX_M4x32_1, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + vuint32m1_t hi1 = + vmulhu_vv_u32m1(ctr2, vmv_v_x_u32m1(PHILOX_M4x32_1, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + + ctr0 = vxor_vv_u32m1(vxor_vv_u32m1(hi1, ctr1, vsetvlmax_e32m1()), key0, + vsetvlmax_e32m1()); + ctr1 = lo1; + ctr2 = vxor_vv_u32m1(vxor_vv_u32m1(hi0, ctr3, vsetvlmax_e32m1()), key1, + vsetvlmax_e32m1()); + ctr3 = lo0; +} + +QUALIFIERS void _philox4x32bumpkey(vuint32m1_t &key0, vuint32m1_t &key1) { + key0 = vadd_vv_u32m1(key0, vmv_v_x_u32m1(PHILOX_W32_0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + key1 = vadd_vv_u32m1(key1, vmv_v_x_u32m1(PHILOX_W32_1, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); +} + +template +QUALIFIERS vfloat64m1_t _uniform_double_hq(vuint32m1_t x, vuint32m1_t y) { + // convert 32 to 64 bit + if (high) { + size_t s = vsetvlmax_e32m1(); + x = vslidedown_vx_u32m1(vundefined_u32m1(), x, s / 2, s); + y = vslidedown_vx_u32m1(vundefined_u32m1(), y, s / 2, s); + } + vuint64m1_t x64 = + vwcvtu_x_x_v_u64m1(vlmul_trunc_v_u32m1_u32mf2(x), vsetvlmax_e64m1()); + vuint64m1_t y64 = + vwcvtu_x_x_v_u64m1(vlmul_trunc_v_u32m1_u32mf2(y), vsetvlmax_e64m1()); + + // calculate z = x ^ y << (53 - 32)) + vuint64m1_t z = vsll_vx_u64m1(y64, 53 - 32, vsetvlmax_e64m1()); + z = vxor_vv_u64m1(x64, z, vsetvlmax_e64m1()); + + // convert uint64 to double + vfloat64m1_t rs = vfcvt_f_xu_v_f64m1(z, vsetvlmax_e64m1()); + // calculate rs * TWOPOW53_INV_DOUBLE + (TWOPOW53_INV_DOUBLE/2.0) + rs = vfmadd_vv_f64m1( + rs, vfmv_v_f_f64m1(TWOPOW53_INV_DOUBLE, vsetvlmax_e64m1()), + vfmv_v_f_f64m1(TWOPOW53_INV_DOUBLE / 2.0, vsetvlmax_e64m1()), + vsetvlmax_e64m1()); + + return rs; +} + +QUALIFIERS void philox_float4(vuint32m1_t ctr0, vuint32m1_t ctr1, + vuint32m1_t ctr2, vuint32m1_t ctr3, uint32 key0, + uint32 key1, vfloat32m1_t &rnd1, + vfloat32m1_t &rnd2, vfloat32m1_t &rnd3, + vfloat32m1_t &rnd4) { + vuint32m1_t key0v = vmv_v_x_u32m1(key0, vsetvlmax_e32m1()); + vuint32m1_t key1v = vmv_v_x_u32m1(key1, vsetvlmax_e32m1()); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 1 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 2 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 3 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 4 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 5 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 6 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 7 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 8 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 9 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 10 + + // convert uint32 to float + rnd1 = vfcvt_f_xu_v_f32m1(ctr0, vsetvlmax_e32m1()); + rnd2 = vfcvt_f_xu_v_f32m1(ctr1, vsetvlmax_e32m1()); + rnd3 = vfcvt_f_xu_v_f32m1(ctr2, vsetvlmax_e32m1()); + rnd4 = vfcvt_f_xu_v_f32m1(ctr3, vsetvlmax_e32m1()); + // calculate rnd * TWOPOW32_INV_FLOAT + (TWOPOW32_INV_FLOAT/2.0f) + rnd1 = vfmadd_vv_f32m1( + rnd1, vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT, vsetvlmax_e32m1()), + vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT / 2.0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + rnd2 = vfmadd_vv_f32m1( + rnd2, vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT, vsetvlmax_e32m1()), + vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT / 2.0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + rnd3 = vfmadd_vv_f32m1( + rnd3, vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT, vsetvlmax_e32m1()), + vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT / 2.0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); + rnd4 = vfmadd_vv_f32m1( + rnd4, vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT, vsetvlmax_e32m1()), + vfmv_v_f_f32m1(TWOPOW32_INV_FLOAT / 2.0, vsetvlmax_e32m1()), + vsetvlmax_e32m1()); +} + +QUALIFIERS void philox_double2(vuint32m1_t ctr0, vuint32m1_t ctr1, + vuint32m1_t ctr2, vuint32m1_t ctr3, uint32 key0, + uint32 key1, vfloat64m1_t &rnd1lo, + vfloat64m1_t &rnd1hi, vfloat64m1_t &rnd2lo, + vfloat64m1_t &rnd2hi) { + vuint32m1_t key0v = vmv_v_x_u32m1(key0, vsetvlmax_e32m1()); + vuint32m1_t key1v = vmv_v_x_u32m1(key1, vsetvlmax_e32m1()); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 1 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 2 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 3 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 4 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 5 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 6 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 7 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 8 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 9 + _philox4x32bumpkey(key0v, key1v); + _philox4x32round(ctr0, ctr1, ctr2, ctr3, key0v, key1v); // 10 + + rnd1lo = _uniform_double_hq(ctr0, ctr1); + rnd1hi = _uniform_double_hq(ctr0, ctr1); + rnd2lo = _uniform_double_hq(ctr2, ctr3); + rnd2hi = _uniform_double_hq(ctr2, ctr3); +} + +QUALIFIERS void philox_float4(uint32 ctr0, vuint32m1_t ctr1, uint32 ctr2, + uint32 ctr3, uint32 key0, uint32 key1, + vfloat32m1_t &rnd1, vfloat32m1_t &rnd2, + vfloat32m1_t &rnd3, vfloat32m1_t &rnd4) { + vuint32m1_t ctr0v = vmv_v_x_u32m1(ctr0, vsetvlmax_e32m1()); + vuint32m1_t ctr2v = vmv_v_x_u32m1(ctr2, vsetvlmax_e32m1()); + vuint32m1_t ctr3v = vmv_v_x_u32m1(ctr3, vsetvlmax_e32m1()); + + philox_float4(ctr0v, ctr1, ctr2v, ctr3v, key0, key1, rnd1, rnd2, rnd3, rnd4); +} + +QUALIFIERS void philox_float4(uint32 ctr0, vint32m1_t ctr1, uint32 ctr2, + uint32 ctr3, uint32 key0, uint32 key1, + vfloat32m1_t &rnd1, vfloat32m1_t &rnd2, + vfloat32m1_t &rnd3, vfloat32m1_t &rnd4) { + philox_float4(ctr0, vreinterpret_v_i32m1_u32m1(ctr1), ctr2, ctr3, key0, key1, + rnd1, rnd2, rnd3, rnd4); +} + +QUALIFIERS void philox_double2(uint32 ctr0, vuint32m1_t ctr1, uint32 ctr2, + uint32 ctr3, uint32 key0, uint32 key1, + vfloat64m1_t &rnd1lo, vfloat64m1_t &rnd1hi, + vfloat64m1_t &rnd2lo, vfloat64m1_t &rnd2hi) { + vuint32m1_t ctr0v = vmv_v_x_u32m1(ctr0, vsetvlmax_e32m1()); + vuint32m1_t ctr2v = vmv_v_x_u32m1(ctr2, vsetvlmax_e32m1()); + vuint32m1_t ctr3v = vmv_v_x_u32m1(ctr3, vsetvlmax_e32m1()); + + philox_double2(ctr0v, ctr1, ctr2v, ctr3v, key0, key1, rnd1lo, rnd1hi, rnd2lo, + rnd2hi); +} + +QUALIFIERS void philox_double2(uint32 ctr0, vuint32m1_t ctr1, uint32 ctr2, + uint32 ctr3, uint32 key0, uint32 key1, + vfloat64m1_t &rnd1, vfloat64m1_t &rnd2) { + vuint32m1_t ctr0v = vmv_v_x_u32m1(ctr0, vsetvlmax_e32m1()); + vuint32m1_t ctr2v = vmv_v_x_u32m1(ctr2, vsetvlmax_e32m1()); + vuint32m1_t ctr3v = vmv_v_x_u32m1(ctr3, vsetvlmax_e32m1()); + + vfloat64m1_t ignore; + philox_double2(ctr0v, ctr1, ctr2v, ctr3v, key0, key1, rnd1, ignore, rnd2, + ignore); +} + +QUALIFIERS void philox_double2(uint32 ctr0, vint32m1_t ctr1, uint32 ctr2, + uint32 ctr3, uint32 key0, uint32 key1, + vfloat64m1_t &rnd1, vfloat64m1_t &rnd2) { + philox_double2(ctr0, vreinterpret_v_i32m1_u32m1(ctr1), ctr2, ctr3, key0, key1, + rnd1, rnd2); +} +#endif + #ifdef __AVX2__ QUALIFIERS void _philox4x32round(__m256i *ctr, __m256i *key) { __m256i lohi0a = _mm256_mul_epu32(ctr[0], _mm256_set1_epi32(PHILOX_M4x32_0));