Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

src/expde/extemp/op_conv.cc

Go to the documentation of this file.
00001 //    expde: expression templates for partial differential equations.
00002 //    Copyright (C) 2001  Christoph Pflaum
00003 //    This program is free software; you can redistribute it and/or modify
00004 //    it under the terms of the GNU General Public License as published by
00005 //    the Free Software Foundation; either version 2 of the License, or
00006 //    (at your option) any later version.
00007 //
00008 //    This program is distributed in the hope that it will be useful,
00009 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00011 //    GNU General Public License for more details.
00012 //
00013 //                 SEE  Notice1.doc made by 
00014 //                 LAWRENCE LIVERMORE NATIONAL LABORATORY
00015 //
00016 
00017 // ------------------------------------------------------------
00018 // oper_conv.cc
00019 //
00020 // ------------------------------------------------------------
00021 
00022 
00023 // Include level 0:
00024 #ifdef COMP_GNUOLD
00025  #include <iostream.h>
00026  #include <fstream.h>
00027  #include <time.h>
00028  #include <math.h>
00029 #else
00030  #include <iostream>
00031  #include <fstream>
00032  #include <ctime>
00033  #include <cmath>
00034 #endif 
00035 
00036 
00037 // Include level 0:
00038 #include "../parser.h"
00039 
00040 // Include level 1:
00041 #include "../paramete.h"
00042 #include "../abbrevi.h"
00043 #include "../math_lib/math_lib.h"
00044 
00045 // Include level 2:
00046 #include "../basic/basic.h"
00047 
00048 // Include level 3:
00049 #include "../domain/domain.h"
00050 
00051 // Include level 4:
00052 #include "../formulas/boundy.h"
00053 #include "../formulas/loc_sten.h"
00054 #include "../formulas/diffop.h"
00055 #include "../formulas/diffopc.h"
00056 #include "../formulas/diffopv.h"
00057 #include "../formulas/diffopcv.h"
00058 
00059 // Include level 5:
00060 #include "../grid/gpar.h"
00061 #include "../grid/parallel.h"
00062 #include "../grid/mgcoeff.h"
00063 #include "../grid/sto_man.h"
00064 #include "../grid/gridbase.h"
00065 #include "../grid/grid.h"
00066 #include "../grid/input.h"
00067 
00068 // Include level 5.1
00069 #include "../evpar/evpar.h"
00070 
00071 
00072 
00073 // Include level 6:
00074 #include "variable.h"
00075 #include "varcon.h"
00076 
00077 #include "opera.h"
00078 #include "operav.h"
00079 #include "op_conv.h"
00080 //#include "extemp/mg_op.h"
00081 //#include "extemp/sim.h"
00082 //#include "extemp/res_op.h"
00083 //#include "extemp/res_opv.h"
00084 //#include "extemp/extra.h"
00085 
00086 
00087 
00088 
00089 
00091                // 1.: member functions of oper_conv.h
00093 
00094 
00095 
00096 /* Unary operators */
00097 // Laplace
00098 
00099 
00100 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, laplace_FE_cell_variable> >
00101 Laplace_FE_var(Cell_Variable a, Variable v)
00102 {
00103  typedef DVarDiff_25S_Op_convar<Cell_Variable, laplace_FE_cell_variable> ExprT;
00104   return DExpr<ExprT>(ExprT(a,v));
00105 }
00106 
00107 
00108 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dxdx_FE_cell_variable> >
00109 DxDx_FE_var(Cell_Variable a, Variable v)
00110 {
00111   typedef DVarDiff_25S_Op_convar<Cell_Variable, dxdx_FE_cell_variable> ExprT;
00112   return DExpr<ExprT>(ExprT(a,v));
00113 }
00114 
00115 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dydy_FE_cell_variable> >
00116 DyDy_FE_var(Cell_Variable a, Variable v)
00117 {
00118   typedef DVarDiff_25S_Op_convar<Cell_Variable, dydy_FE_cell_variable> ExprT;
00119   return DExpr<ExprT>(ExprT(a,v));
00120 }
00121 
00122 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dzdz_FE_cell_variable> >
00123 DzDz_FE_var(Cell_Variable a, Variable v)
00124 {
00125   typedef DVarDiff_25S_Op_convar<Cell_Variable, dzdz_FE_cell_variable> ExprT;
00126   return DExpr<ExprT>(ExprT(a,v));
00127 }
00128 
00129 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, helm_FE_cell_variable> >
00130 Helm_FE_var(Cell_Variable a, Variable v)
00131 {
00132   typedef DVarDiff_25S_Op_convar<Cell_Variable, helm_FE_cell_variable> ExprT;
00133   return DExpr<ExprT>(ExprT(a,v));
00134 }
00135 
00137 // Nichsymmetrische Terme
00139 
00140 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dxdy_FE_cell_variable> >
00141 DxDy_FE_var(Cell_Variable a, Variable v)
00142 {
00143   typedef DVarDiff_25S_Op_convar<Cell_Variable, dxdy_FE_cell_variable> ExprT;
00144   return DExpr<ExprT>(ExprT(a,v));
00145 }
00146 
00147 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dydx_FE_cell_variable> >
00148 DyDx_FE_var(Cell_Variable a, Variable v)
00149 {
00150   typedef DVarDiff_25S_Op_convar<Cell_Variable, dydx_FE_cell_variable> ExprT;
00151   return DExpr<ExprT>(ExprT(a,v));
00152 }
00153 
00154 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dxdz_FE_cell_variable> >
00155 DxDz_FE_var(Cell_Variable a, Variable v)
00156 {
00157   typedef DVarDiff_25S_Op_convar<Cell_Variable, dxdz_FE_cell_variable> ExprT;
00158   return DExpr<ExprT>(ExprT(a,v));
00159 }
00160 
00161 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dzdx_FE_cell_variable> >
00162 DzDx_FE_var(Cell_Variable a, Variable v)
00163 {
00164   typedef DVarDiff_25S_Op_convar<Cell_Variable, dzdx_FE_cell_variable> ExprT;
00165   return DExpr<ExprT>(ExprT(a,v));
00166 }
00167 
00168 
00169 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dydz_FE_cell_variable> >
00170 DyDz_FE_var(Cell_Variable a, Variable v)
00171 {
00172   typedef DVarDiff_25S_Op_convar<Cell_Variable, dydz_FE_cell_variable> ExprT;
00173   return DExpr<ExprT>(ExprT(a,v));
00174 }
00175 
00176 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dzdy_FE_cell_variable> >
00177 DzDy_FE_var(Cell_Variable a, Variable v)
00178 {
00179   typedef DVarDiff_25S_Op_convar<Cell_Variable, dzdy_FE_cell_variable> ExprT;
00180   return DExpr<ExprT>(ExprT(a,v));
00181 }
00182 
00183 
00184 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dxhelm_FE_cell_variable> >
00185 DX_FE_var(Cell_Variable a, Variable v)
00186 {
00187   typedef DVarDiff_25S_Op_convar<Cell_Variable, dxhelm_FE_cell_variable> ExprT;
00188   return DExpr<ExprT>(ExprT(a,v));
00189 }
00190 
00191 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dyhelm_FE_cell_variable> >
00192 DY_FE_var(Cell_Variable a, Variable v)
00193 {
00194   typedef DVarDiff_25S_Op_convar<Cell_Variable, dyhelm_FE_cell_variable> ExprT;
00195   return DExpr<ExprT>(ExprT(a,v));
00196 }
00197 
00198 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, dzhelm_FE_cell_variable> >
00199 DZ_FE_var(Cell_Variable a, Variable v)
00200 {
00201   typedef DVarDiff_25S_Op_convar<Cell_Variable, dzhelm_FE_cell_variable> ExprT;
00202   return DExpr<ExprT>(ExprT(a,v));
00203 }
00204 
00205 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, helmdx_FE_cell_variable> >
00206 DX_FE_var_t(Cell_Variable a, Variable v)
00207 {
00208   typedef DVarDiff_25S_Op_convar<Cell_Variable, helmdx_FE_cell_variable> ExprT;
00209   return DExpr<ExprT>(ExprT(a,v));
00210 }
00211 
00212 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, helmdy_FE_cell_variable> >
00213 DY_FE_var_t(Cell_Variable a, Variable v)
00214 {
00215   typedef DVarDiff_25S_Op_convar<Cell_Variable, helmdy_FE_cell_variable> ExprT;
00216   return DExpr<ExprT>(ExprT(a,v));
00217 }
00218 
00219 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, helmdz_FE_cell_variable> >
00220 DZ_FE_var_t(Cell_Variable a, Variable v)
00221 {
00222   typedef DVarDiff_25S_Op_convar<Cell_Variable, helmdz_FE_cell_variable> ExprT;
00223   return DExpr<ExprT>(ExprT(a,v));
00224 }
00225 
00226 /*
00228 // Rand-operatoren
00230 
00231 DExpr<DVarDiff_25S_Op_convar<Cell_Variable, L2boundary_variable> >
00232 Int_boundary_var(Cell_Variable a, Variable v)
00233 {
00234   typedef DVarDiff_25S_Op_convar<Cell_Variable, L2boundary_variable> ExprT;
00235   return DExpr<ExprT>(ExprT(a,v));
00236 }
00237 */
00238 
00239 /* Unary operators */
00240 
00241 // Laplace
00242 DExpr<DiagonalDiff_Op_convar<Cell_Variable, laplace_FE_cell_variable> >
00243 Diag_Laplace_FE_var(Cell_Variable a)
00244 {
00245  typedef DiagonalDiff_Op_convar<Cell_Variable, laplace_FE_cell_variable> ExprT;
00246   return DExpr<ExprT>(ExprT(a));
00247 }
00248 
00249 // DxDx
00250 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dxdx_FE_cell_variable> >
00251 Diag_DxDx_FE_var(Cell_Variable a)
00252 {
00253   typedef DiagonalDiff_Op_convar<Cell_Variable, dxdx_FE_cell_variable> ExprT;
00254   return DExpr<ExprT>(ExprT(a));
00255 }
00256 
00257 // DyDy
00258 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dydy_FE_cell_variable> >
00259 Diag_DyDy_FE_var(Cell_Variable a)
00260 {
00261   typedef DiagonalDiff_Op_convar<Cell_Variable, dydy_FE_cell_variable> ExprT;
00262   return DExpr<ExprT>(ExprT(a));
00263 }
00264 
00265 // DzDz
00266 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dzdz_FE_cell_variable> >
00267 Diag_DzDz_FE_var(Cell_Variable a)
00268 {
00269   typedef DiagonalDiff_Op_convar<Cell_Variable, dzdz_FE_cell_variable> ExprT;
00270   return DExpr<ExprT>(ExprT(a));
00271 }
00272 
00273 // Helm
00274 DExpr<DiagonalDiff_Op_convar<Cell_Variable, helm_FE_cell_variable> >
00275 Diag_Helm_FE_var(Cell_Variable a)
00276 {
00277   typedef DiagonalDiff_Op_convar<Cell_Variable, helm_FE_cell_variable> ExprT;
00278   return DExpr<ExprT>(ExprT(a));
00279 }
00280 
00282 // Nichsymmetrische Terme
00284 
00285 // DxDy
00286 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dxdy_FE_cell_variable> >
00287 Diag_DxDy_FE_var(Cell_Variable a)
00288 {
00289   typedef DiagonalDiff_Op_convar<Cell_Variable, dxdy_FE_cell_variable> ExprT;
00290   return DExpr<ExprT>(ExprT(a));
00291 }
00292 
00293 // DyDx
00294 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dydx_FE_cell_variable> >
00295 Diag_DyDx_FE_var(Cell_Variable a)
00296 {
00297   typedef DiagonalDiff_Op_convar<Cell_Variable, dydx_FE_cell_variable> ExprT;
00298   return DExpr<ExprT>(ExprT(a));
00299 }
00300 
00301 
00302 // DxDz
00303 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dxdz_FE_cell_variable> >
00304 Diag_DxDz_FE_var(Cell_Variable a)
00305 {
00306   typedef DiagonalDiff_Op_convar<Cell_Variable, dxdz_FE_cell_variable> ExprT;
00307   return DExpr<ExprT>(ExprT(a));
00308 }
00309 
00310 // DzDx
00311 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dzdx_FE_cell_variable> >
00312 Diag_DzDx_FE_var(Cell_Variable a)
00313 {
00314   typedef DiagonalDiff_Op_convar<Cell_Variable, dzdx_FE_cell_variable> ExprT;
00315   return DExpr<ExprT>(ExprT(a));
00316 }
00317 
00318 // DyDz
00319 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dydz_FE_cell_variable> >
00320 Diag_DyDz_FE_var(Cell_Variable a)
00321 {
00322   typedef DiagonalDiff_Op_convar<Cell_Variable, dydz_FE_cell_variable> ExprT;
00323   return DExpr<ExprT>(ExprT(a));
00324 }
00325 
00326 // DzDy
00327 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dzdy_FE_cell_variable> >
00328 Diag_DzDy_FE_var(Cell_Variable a)
00329 {
00330   typedef DiagonalDiff_Op_convar<Cell_Variable, dzdy_FE_cell_variable> ExprT;
00331   return DExpr<ExprT>(ExprT(a));
00332 }
00333 
00334 // DX
00335 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dxhelm_FE_cell_variable> >
00336 Diag_DX_FE_var(Cell_Variable a)
00337 {
00338   typedef DiagonalDiff_Op_convar<Cell_Variable, dxhelm_FE_cell_variable> ExprT;
00339   return DExpr<ExprT>(ExprT(a));
00340 }
00341 
00342 // DY
00343 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dyhelm_FE_cell_variable> >
00344 Diag_DY_FE_var(Cell_Variable a)
00345 {
00346   typedef DiagonalDiff_Op_convar<Cell_Variable, dyhelm_FE_cell_variable> ExprT;
00347   return DExpr<ExprT>(ExprT(a));
00348 }
00349 
00350 // DZ
00351 DExpr<DiagonalDiff_Op_convar<Cell_Variable, dzhelm_FE_cell_variable> >
00352 Diag_DZ_FE_var(Cell_Variable a)
00353 {
00354   typedef DiagonalDiff_Op_convar<Cell_Variable, dzhelm_FE_cell_variable> ExprT;
00355   return DExpr<ExprT>(ExprT(a));
00356 }
00357 
00358 // DX
00359 DExpr<DiagonalDiff_Op_convar<Cell_Variable, helmdx_FE_cell_variable> >
00360 Diag_DX_FE_var_t(Cell_Variable a)
00361 {
00362   typedef DiagonalDiff_Op_convar<Cell_Variable, helmdx_FE_cell_variable> ExprT;
00363   return DExpr<ExprT>(ExprT(a));
00364 }
00365 
00366 // DY
00367 DExpr<DiagonalDiff_Op_convar<Cell_Variable, helmdy_FE_cell_variable> >
00368 Diag_DY_FE_var_t(Cell_Variable a)
00369 {
00370   typedef DiagonalDiff_Op_convar<Cell_Variable, helmdy_FE_cell_variable> ExprT;
00371   return DExpr<ExprT>(ExprT(a));
00372 }
00373 
00374 // DZ
00375 DExpr<DiagonalDiff_Op_convar<Cell_Variable, helmdz_FE_cell_variable> >
00376 Diag_DZ_FE_var_t(Cell_Variable a)
00377 {
00378   typedef DiagonalDiff_Op_convar<Cell_Variable, helmdz_FE_cell_variable> ExprT;
00379   return DExpr<ExprT>(ExprT(a));
00380 }
00381 
00382 
00383 /*
00385 // Rand-operatoren
00387 
00388 DExpr<DiagonalDiff_Op_convar<Cell_Variable, L2boundary_con_variable> >
00389 Diag_Int_boundary_var(Cell_Variable a)
00390 {
00391   typedef DiagonalDiff_Op_convar<Cell_Variable, L2boundary_variable> ExprT;
00392   return DExpr<ExprT>(ExprT(a));
00393 }
00394 */
00395 
00396    
00397 
00398 

Generated on Fri Nov 2 01:25:56 2007 for IPPL by doxygen 1.3.5