/*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation Copyright (C) 2019-2022 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. OpenFOAM 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. OpenFOAM 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 OpenFOAM. If not, see . Typedef Foam::symmTensorField Description Specialisation of Field\ for symmTensor. SourceFiles symmTensorField.C \*---------------------------------------------------------------------------*/ #ifndef Foam_symmTensorField_H #define Foam_symmTensorField_H #include "scalarField.H" #include "vectorField.H" #include "sphericalTensor.H" #include "symmTensor.H" #include "tensor.H" #define TEMPLATE #include "FieldFunctionsM.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { typedef Field symmTensorField; // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // //- Zip together symmTensor field from components template void zip ( Field>& result, const UList& xx, const UList& xy, const UList& xz, const UList& yy, const UList& yz, const UList& zz ); //- Unzip symmTensor field into components template void unzip ( const UList>& input, Field& xx, Field& xy, Field& xz, Field& yy, Field& yz, Field& zz ); //- Zip together symmTensor field from components template tmp>> zip ( const Field& xx, const Field& xy, const Field& xz, const Field& yy, const Field& yz, const Field& zz ); //- Zip together symmTensor field from row components template void zipRows ( Field>& result, const UList>& x, const UList>& y, const UList>& z ); //- Zip together symmTensor field from column components template void zipCols ( Field>& result, const UList>& x, const UList>& y, const UList>& z ) { zipRows(result, x, y, z); } //- Extract symmTensor field rows template void unzipRows ( const UList>& input, Field>& x, Field>& y, Field>& z ); //- Extract symmTensor field columns template void unzipCols ( const UList>& input, Field>& x, Field>& y, Field>& z ) { unzipRows(input, x, y, z); } //- Extract a symmTensor field row (x,y,z) == (0,1,2) template void unzipRow ( const UList>& input, const direction idx, //!< vector::components Field>& result ); //- Extract a symmTensor field column (x,y,z) == (0,1,2) template void unzipCol ( const UList>& input, const direction idx, //!< vector::components Field>& result ) { unzipRow(input, idx, result); } //- Extract a symmTensor field diagonal template void unzipDiag ( const UList>& input, Field>& result ); //- Extract a symmTensor field row (x,y,z) == (0,1,2) template tmp>> unzipRow ( const Field>& input, const direction idx //!< vector::components ); //- Extract a symmTensor field column (x,y,z) == (0,1,2) template tmp>> unzipCol ( const Field>& input, const direction idx //!< vector::components ) { return unzipRow(input, idx); } //- Extract a symmTensor field diagonal template tmp>> unzipDiag ( const Field>& input ); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // UNARY_FUNCTION(symmTensor, vector, sqr) UNARY_FUNCTION(symmTensor, symmTensor, innerSqr) UNARY_FUNCTION(scalar, symmTensor, tr) UNARY_FUNCTION(sphericalTensor, symmTensor, sph) UNARY_FUNCTION(symmTensor, symmTensor, symm) UNARY_FUNCTION(symmTensor, symmTensor, twoSymm) UNARY_FUNCTION(symmTensor, symmTensor, dev) UNARY_FUNCTION(symmTensor, symmTensor, dev2) UNARY_FUNCTION(scalar, symmTensor, det) UNARY_FUNCTION(symmTensor, symmTensor, cof) UNARY_FUNCTION(symmTensor, symmTensor, inv) // * * * * * * * * * * * * * * * global operators * * * * * * * * * * * * * // UNARY_OPERATOR(vector, symmTensor, *, hdual) BINARY_OPERATOR(tensor, symmTensor, symmTensor, &, dot) BINARY_TYPE_OPERATOR(tensor, symmTensor, symmTensor, &, dot) // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "undefFieldFunctionsM.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository #include "symmTensorFieldTemplates.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #endif // ************************************************************************* //