diff --git a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.C new file mode 100644 index 000000000..dba29b7b1 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.C @@ -0,0 +1,60 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "calculatedFvPatchVectorNFields.H" +#include "fvPatchVectorNFields.H" +#include "volMesh.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + calculatedFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.H new file mode 100644 index 000000000..83ae25486 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFields.H @@ -0,0 +1,37 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef calculatedFvPatchVectorNFields_H +#define calculatedFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "calculatedFvPatchVectorNFieldsFwd.H" +#include "calculatedFvPatchField.H" + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..bad94699a --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/calculated/calculatedFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef calculatedFvPatchVectorNFieldsFwd_H +#define calculatedFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class calculatedFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef calculatedFvPatchField calculatedFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.C new file mode 100644 index 000000000..43bdb7d1a --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.C @@ -0,0 +1,54 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "coupledFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + makePatchTypeFieldTypeName(coupledFvPatch##Type##Field); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.H new file mode 100644 index 000000000..4b1607094 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFields.H @@ -0,0 +1,38 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef coupledFvPatchVectorNFields_H +#define coupledFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "coupledFvPatchVectorNFieldsFwd.H" +#include "coupledFvPatchField.H" + + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..00d6ad871 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/coupled/coupledFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef coupledFvPatchFieldsFwd_H +#define coupledFvPatchFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class coupledFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef coupledFvPatchField coupledFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.C new file mode 100644 index 000000000..e409c7926 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.C @@ -0,0 +1,59 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fixedGradientFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + fixedGradientFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.H new file mode 100644 index 000000000..371c1eb44 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fixedGradientFvPatchVectorNFields_H +#define fixedGradientFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "fixedGradientFvPatchVectorNFieldsFwd.H" +#include "fixedGradientFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..dcf648d35 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedGradient/fixedGradientFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fixedGradientFvPatchVectorNFieldsFwd_H +#define fixedGradientFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class fixedGradientFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef fixedGradientFvPatchField fixedGradientFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.C new file mode 100644 index 000000000..c589217c3 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.C @@ -0,0 +1,59 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fixedValueFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + fixedValueFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.H new file mode 100644 index 000000000..31358bc57 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fixedValueFvPatchVectorNFields_H +#define fixedValueFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "fixedValueFvPatchVectorNFieldsFwd.H" +#include "fixedValueFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..8fa7b0f4d --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/fixedValue/fixedValueFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fixedValueFvPatchVectorNFieldsFwd_H +#define fixedValueFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class fixedValueFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef fixedValueFvPatchField fixedValueFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.C new file mode 100644 index 000000000..6293d8d7b --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.C @@ -0,0 +1,55 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "genericFvPatchVectorNFields.H" +#include "fvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" +#include "volVectorNFields.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + makePatchTypeFieldTypeName(genericFvPatch##Type##Field); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.H new file mode 100644 index 000000000..3854b1dac --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/generic/genericFvPatchVectorNFields.H @@ -0,0 +1,60 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef genericFvPatchVectorNFields_H +#define genericFvPatchVectorNFields_H + +#include "genericFvPatchField.H" +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define doMakeTypedef(type, Type, args...) \ + typedef genericFvPatchField genericFvPatch##Type##Field; + +forAllVectorNTypes(doMakeTypedef) + +forAllTensorNTypes(doMakeTypedef) + +forAllDiagTensorNTypes(doMakeTypedef) + +forAllSphericalTensorNTypes(doMakeTypedef) + +#undef doMakeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.C new file mode 100644 index 000000000..90e235ecb --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.C @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "transformFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +#define makePatch(type, Type, args...) \ + defineNamedTemplateTypeNameAndDebug(transformFvPatch##Type##Field, 0); + +forAllVectorNTypes(makePatch) + +forAllTensorNTypes(makePatch) + +forAllDiagTensorNTypes(makePatch) + +forAllSphericalTensorNTypes(makePatch) + +#undef makePatch + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.H new file mode 100644 index 000000000..7502028ec --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFields.H @@ -0,0 +1,40 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef transformFvPatchVectorNFields_H +#define transformFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" +#include "VectorNFieldTypes.H" + +#include "transformFvPatchVectorNFieldsFwd.H" +#include "transformFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..18ea51b4d --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/transform/transformFvPatchVectorNFieldsFwd.H @@ -0,0 +1,57 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef transformFvPatchVectorNFieldsFwd_H +#define transformFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +template class transformFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef transformFvPatchField transformFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.C new file mode 100644 index 000000000..7febe8a72 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.C @@ -0,0 +1,59 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "zeroGradientFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + zeroGradientFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.H new file mode 100644 index 000000000..0c561a342 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef zeroGradientFvPatchVectorNFields_H +#define zeroGradientFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "zeroGradientFvPatchVectorNFieldsFwd.H" +#include "zeroGradientFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..c92168ce6 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/basic/zeroGradient/zeroGradientFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef zeroGradientFvPatchVectorNFieldsFwd_H +#define zeroGradientFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class zeroGradientFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef zeroGradientFvPatchField zeroGradientFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFields.C new file mode 100644 index 000000000..7964c104b --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFields.C @@ -0,0 +1,109 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "cyclicFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +#define VectorNMatrixInterfaceFunc(Type) \ +template<> \ +void cyclicFvPatchField::updateInterfaceMatrix \ +( \ + const Field& psiInternal, \ + Field& result, \ + const BlockLduMatrix&, \ + const CoeffField& coeffs, \ + const Pstream::commsTypes commsType, \ + const bool switchToLhs \ +) const \ +{ \ + Field pnf(this->size()); \ + \ + label sizeby2 = this->size()/2; \ + const unallocLabelList& faceCells = cyclicPatch_.faceCells(); \ + \ + for (label facei=0; facei. + +\*---------------------------------------------------------------------------*/ + +#ifndef cyclicFvPatchVectorNFields_H +#define cyclicFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "cyclicFvPatchVectorNFieldsFwd.H" +#include "cyclicFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..cb98ea82d --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/cyclic/cyclicFvPatchVectorNFieldsFwd.H @@ -0,0 +1,55 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef cyclicFvPatchVectorNFieldsFwd_H +#define cyclicFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class cyclicFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef cyclicFvPatchField cyclicFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.C new file mode 100644 index 000000000..68a52f726 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.C @@ -0,0 +1,59 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "emptyFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + emptyFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.H new file mode 100644 index 000000000..6d45bb1f7 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef emptyFvPatchVectorNFields_H +#define emptyFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "emptyFvPatchVectorNFieldsFwd.H" +#include "emptyFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..a461a96ba --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/empty/emptyFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef emptyFvPatchVectorNFieldsFwd_H +#define emptyFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class emptyFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef emptyFvPatchField emptyFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.C new file mode 100644 index 000000000..f06397ce4 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.C @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "ggiFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + ggiFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.H new file mode 100644 index 000000000..563dc690b --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef ggiFvPatchVectorNFields_H +#define ggiFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "ggiFvPatchVectorNFieldsFwd.H" +#include "ggiFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..6960d3e4f --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/ggi/ggiFvPatchVectorNFieldsFwd.H @@ -0,0 +1,55 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef ggiFvPatchVectorNFieldsFwd_H +#define ggiFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class ggiFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef ggiFvPatchField ggiFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.C new file mode 100644 index 000000000..a2ae315d9 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.C @@ -0,0 +1,52 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "processorFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + processorFvPatch##Type##Field \ +); + +forAllVectorNTypes(doMakePatchTypeField) + +#undef doMakePatchTypeField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.H new file mode 100644 index 000000000..dd2be6c6d --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFields.H @@ -0,0 +1,39 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef processorFvPatchVectorNFields_H +#define processorFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "processorFvPatchVectorNFieldsFwd.H" +#include "processorFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..35db68aaa --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/processor/processorFvPatchVectorNFieldsFwd.H @@ -0,0 +1,55 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef processorFvPatchVectorNFieldsFwd_H +#define processorFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class processorFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef processorFvPatchField processorFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.C new file mode 100644 index 000000000..9a5df4c36 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.C @@ -0,0 +1,99 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "wedgeFvPatchVectorNFields.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define makeVectorTensorNWedgeFuncDefs(Type) \ +template<> \ +tmp > wedgeFvPatchField::snGrad() const \ +{ \ + return tmp > \ + ( \ + new Field(size(), pTraits::zero) \ + ); \ +} \ + \ +template<> \ +void wedgeFvPatchField::evaluate \ +( \ + const Pstream::commsTypes commsType \ +) \ +{ \ + if (!updated()) \ + { \ + updateCoeffs(); \ + } \ + \ + this->operator==(patchInternalField()); \ +} \ + \ +template<> \ +tmp > wedgeFvPatchField::snGradTransformDiag() \ +const \ +{ \ + return tmp > \ + ( \ + new Field(this->size(), pTraits::zero) \ + ); \ +} + + +#define doMakePatchTypeField(type, Type, args...) \ + \ +makeVectorTensorNWedgeFuncDefs(type) \ + \ +makeTemplatePatchTypeField \ +( \ + fvPatch##Type##Field, \ + wedgeFvPatch##Type##Field \ +); + + +forAllVectorNTypes(doMakePatchTypeField) + +forAllTensorNTypes(doMakePatchTypeField) + +forAllDiagTensorNTypes(doMakePatchTypeField) + +forAllSphericalTensorNTypes(doMakePatchTypeField) + + +#undef doMakePatchTypeField + +#undef makeVectorTensorNWedgeFuncDefs + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.H new file mode 100644 index 000000000..2f784f37d --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFields.H @@ -0,0 +1,74 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef wedgeFvPatchVectorNFields_H +#define wedgeFvPatchVectorNFields_H + +#include "volVectorNFields.H" +#include "fvPatchVectorNFields.H" + +#include "wedgeFvPatchVectorNFieldsFwd.H" +#include "wedgeFvPatchField.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define doMakeVectorTensorNWedgeFuncDefs(type, Type, args...) \ +template<> \ +tmp > wedgeFvPatchField::snGrad() const; \ + \ +template<> \ +void wedgeFvPatchField::evaluate \ +( \ + const Pstream::commsTypes commsType \ +); \ + \ +template<> \ +tmp > \ +wedgeFvPatchField::snGradTransformDiag() const; + +forAllVectorNTypes(doMakeVectorTensorNWedgeFuncDefs) + +forAllTensorNTypes(doMakeVectorTensorNWedgeFuncDefs) + +forAllDiagTensorNTypes(doMakeVectorTensorNWedgeFuncDefs) + +forAllSphericalTensorNTypes(doMakeVectorTensorNWedgeFuncDefs) + +#undef doMakeVectorTensorNWedgeFuncDefs + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..965d6fb93 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/constraint/wedge/wedgeFvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef wedgeFvPatchVectorNFieldsFwd_H +#define wedgeFvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class wedgeFvPatchField; + +#define makeTypedef(type, Type, args...) \ + typedef wedgeFvPatchField wedgeFvPatch##Type##Field; + +forAllVectorNTypes(makeTypedef) + +forAllTensorNTypes(makeTypedef) + +forAllDiagTensorNTypes(makeTypedef) + +forAllSphericalTensorNTypes(makeTypedef) + +#undef makeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.C b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.C new file mode 100644 index 000000000..d65e24086 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.C @@ -0,0 +1,68 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fvPatchVectorNFields.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +#define makeFvPatchField(fvPatchTypeField) \ + \ +defineNamedTemplateTypeNameAndDebug(fvPatchTypeField, 0); \ +template<> \ +debug::debugSwitch \ +fvPatchTypeField::disallowGenericFvPatchField \ +( \ + "disallowGenericFvPatchField", \ + 0 \ +); \ +defineTemplateRunTimeSelectionTable(fvPatchTypeField, patch); \ +defineTemplateRunTimeSelectionTable(fvPatchTypeField, patchMapper); \ +defineTemplateRunTimeSelectionTable(fvPatchTypeField, dictionary); + + +#define doMakeFvPatchField(type, Type, args...) \ + makeFvPatchField(fvPatch##Type##Field) + +forAllVectorNTypes(doMakeFvPatchField) + +forAllTensorNTypes(doMakeFvPatchField) + +forAllDiagTensorNTypes(doMakeFvPatchField) + +forAllSphericalTensorNTypes(doMakeFvPatchField) + +#undef doMakeFvPatchField +#undef makeFvPatchField + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.H new file mode 100644 index 000000000..b57d13159 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFields.H @@ -0,0 +1,37 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fvPatchVectorNFields_H +#define fvPatchVectorNFields_H + +#include "fvPatchVectorNFieldsFwd.H" +#include "fvPatchField.H" +#include "fvPatchFieldsFwd.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFieldsFwd.H b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFieldsFwd.H new file mode 100644 index 000000000..a3be3f496 --- /dev/null +++ b/src/finiteVolume/fields/fvPatchFields/fvPatchField/fvPatchVectorNFieldsFwd.H @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | foam-extend: Open Source CFD + \\ / O peration | Version: 3.2 + \\ / A nd | Web: http://www.foam-extend.org + \\/ M anipulation | For copyright notice see file Copyright +------------------------------------------------------------------------------- +License + This file is part of foam-extend. + + foam-extend 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. + + foam-extend 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 foam-extend. If not, see . + +\*---------------------------------------------------------------------------*/ + +#ifndef fvPatchVectorNFieldsFwd_H +#define fvPatchVectorNFieldsFwd_H + +#include "VectorNFieldTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template class fvPatchField; + +#define doMakeTypedef(type, Type, args...) \ + typedef fvPatchField fvPatch##Type##Field; + +forAllVectorNTypes(doMakeTypedef) + +forAllTensorNTypes(doMakeTypedef) + +forAllDiagTensorNTypes(doMakeTypedef) + +forAllSphericalTensorNTypes(doMakeTypedef) + +#undef doMakeTypedef + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //