Report patch name instead of index in debug
[foam-extend-3.2.git] / src / foam / fields / Fields / symmTransformField / symmTransformField.C
blob7b54827c8e98335f3ef4fb8b72c15f826e29adea
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 \*---------------------------------------------------------------------------*/
26 #include "symmTransformField.H"
27 #include "FieldM.H"
29 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31 namespace Foam
34 // * * * * * * * * * * * * * * * global functions  * * * * * * * * * * * * * //
36 template<class Type>
37 void transform
39     Field<Type>& rtf,
40     const symmTensorField& trf,
41     const Field<Type>& tf
44     if (trf.size() == 1)
45     {
46         return transform(rtf, trf[0], tf);
47     }
48     else
49     {
50         TFOR_ALL_F_OP_FUNC_F_F
51         (
52             Type, rtf, =, transform, symmTensor, trf, Type, tf
53         )
54     }
58 template<class Type>
59 tmp<Field<Type> > transform
61     const symmTensorField& trf,
62     const Field<Type>& tf
65     tmp<Field<Type> > tranf(new Field<Type> (tf.size()));
66     transform(tranf(), trf, tf);
67     return tranf;
71 template<class Type>
72 tmp<Field<Type> > transform
74     const symmTensorField& trf,
75     const tmp<Field<Type> >& ttf
78     tmp<Field<Type> > tranf = reuseTmp<Type, Type>::New(ttf);
79     transform(tranf(), trf, ttf());
80     reuseTmp<Type, Type>::clear(ttf);
81     return tranf;
85 template<class Type>
86 tmp<Field<Type> > transform
88     const tmp<symmTensorField>& ttrf,
89     const Field<Type>& tf
92     tmp<Field<Type> > tranf(new Field<Type> (tf.size()));
93     transform(tranf(), ttrf(), tf);
94     ttrf.clear();
95     return tranf;
99 template<class Type>
100 tmp<Field<Type> > transform
102     const tmp<symmTensorField>& ttrf,
103     const tmp<Field<Type> >& ttf
106     tmp<Field<Type> > tranf = reuseTmp<Type, Type>::New(ttf);
107     transform(tranf(), ttrf(), ttf());
108     reuseTmp<Type, Type>::clear(ttf);
109     ttrf.clear();
110     return tranf;
114 template<class Type>
115 void transform
117     Field<Type>& rtf,
118     const symmTensor& t,
119     const Field<Type>& tf
122     TFOR_ALL_F_OP_FUNC_S_F(Type, rtf, =, transform, tensor, t, Type, tf)
126 template<class Type>
127 tmp<Field<Type> > transform
129     const symmTensor& t,
130     const Field<Type>& tf
133     tmp<Field<Type> > tranf(new Field<Type>(tf.size()));
134     transform(tranf(), t, tf);
135     return tranf;
139 template<class Type>
140 tmp<Field<Type> > transform
142     const symmTensor& t,
143     const tmp<Field<Type> >& ttf
146     tmp<Field<Type> > tranf = reuseTmp<Type, Type>::New(ttf);
147     transform(tranf(), t, ttf());
148     reuseTmp<Type, Type>::clear(ttf);
149     return tranf;
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // ************************************************************************* //