From 94d3e79a8617f88dc0219cfdeedfa3147833719d Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Mon, 24 Jun 2019 14:43:36 +0200 Subject: Initialize at openlb-1-3 --- src/functors/genericF.hh | 107 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/functors/genericF.hh (limited to 'src/functors/genericF.hh') diff --git a/src/functors/genericF.hh b/src/functors/genericF.hh new file mode 100644 index 0000000..632c643 --- /dev/null +++ b/src/functors/genericF.hh @@ -0,0 +1,107 @@ +/* This file is part of the OpenLB library +* +* Copyright (C) 2012-2013 Lukas Baron, Mathias J. Krause, Albert Mink +* E-mail contact: info@openlb.net +* The most recent release of OpenLB can be downloaded at +* +* +* This program 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 2 +* of the License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public +* License along with this program; if not, write to the Free +* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +* Boston, MA 02110-1301, USA. +*/ + +#ifndef GENERIC_F_HH +#define GENERIC_F_HH + + +/** \file + * The description of a generic interface for all functor classes + * -- generic implementation. + */ + +#include"genericF.h" + + +namespace olb { + +template +GenericF::GenericF (int targetDim, int sourceDim) : _n(targetDim), _m(sourceDim) +{ +} + +template +GenericF::~GenericF () {} + +template +int GenericF::getSourceDim() const +{ + return _m; +} + +template +int GenericF::getTargetDim() const +{ + return _n; +} + +template +std::string& GenericF::getName() +{ + return _name; +} + +template +std::string const& GenericF::getName() const +{ + return _name; +} + +template +bool GenericF::operator() (T output[]) +{ + S tmp[0]; + return operator()(output,tmp); +} + +template +bool GenericF::operator() (T output[], S input0) +{ + S tmp[1] = {input0}; + return operator()(output,tmp); +} + +template +bool GenericF::operator() (T output[], S input0, S input1) +{ + S tmp[2] = {input0,input1}; + return operator()(output,tmp); +} + +template +bool GenericF::operator() (T output[], S input0, S input1, S input2) +{ + S tmp[3] = {input0,input1,input2}; + return operator()(output,tmp); +} + +template +bool GenericF::operator() (T output[], S input0, S input1, S input2, S input3) +{ + S tmp[4] = {input0,input1,input2,input3}; + return operator()(output,tmp); +} + +} // end namespace olb + +#endif -- cgit v1.2.3