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

src/expde/formulas/subdiv.h

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 //
00019 // subdiv.h
00020 //
00021 //
00022 // ------------------------------------------------------------
00023 
00024 #ifndef SUBDIV_H_
00025 #define SUBDIV_H_
00026 
00027 inline void Tell_about_round_of_problem(double a, double b) {
00028   if(tell_round_off_problem) {
00029     if(ABS(a - b) < eps_round_off_problem)
00030       cout << " there may be a round off problem"
00031              << " in the subdivision of the boundary cells! " << endl;
00032   }
00033 }
00034 
00035 
00037 // Klasse zur Berechnung von FE auf Randzellen
00039 
00040 
00041 class Calculator_FE {
00042 public:
00043   void Start(Bo_description* desc, BoCeData* boc) {
00044     bo_desc = desc;
00045     bo_cell = boc;
00046   } 
00047   void Tetraeder(Edge_Corner_point p0, Edge_Corner_point p1,
00048                  Edge_Corner_point p2, Edge_Corner_point p3);
00049   // local_coord_normi ist lokale Koordinate in [-0.5,0.5]^3 Zelle
00050   void Add_Bo_freedom(D3vector local_coord_normi) {
00051     bo_cell->Add_Bo_freedom(local_coord_normi*bo_cell->Meshsize());
00052   };
00053 private:
00054   Bo_description* bo_desc;
00055   BoCeData* bo_cell;
00056 };
00057 
00058 
00060 void Act_on_subdivision(Bo_description* Description, Calculator_FE* Act);
00061 
00062 
00063 #endif
00064    

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