Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages  

jacobi_poisson/JacobiPoissonX.h.sed

Go to the documentation of this file.
00001 /*
00002   Id:           $Id: JacobiPoissonX.h.sed,v 1.1.2.1 2002/03/16 02:07:00 gunney Exp $
00003   Copyright:    (c) 1997-2000 The Regents of the University of California
00004   Release:      $Name: v_0_1_7 $
00005   Revision:     $Revision: 1.1.2.1 $
00006   Modified:     $Date: 2002/03/16 02:07:00 $
00007   Description:  JacobiPoissonX class declaration
00008 */
00009 
00010 #ifndef included_JacobiPoissonX_h
00011 #define included_JacobiPoissonX_h
00012 
00013 
00014 #include <string.h>
00015 #include <tbox_Pointer.h>
00016 #include <tbox_Database.h>
00017 
00018 
00019 /*
00020   SAMRAI classes
00021 */
00022 #include <mesh_StandardTagAndInitStrategy2.h>
00023 #include <plot_CartesianVizamraiDataWriter2.h>
00024 #include <pdat_CellVariable2.h>
00025 #include <pdat_SideVariable2.h>
00026 #include <hier_Patch2.h>
00027 #include <hier_PatchHierarchy2.h>
00028 #include <hier_PatchLevel2.h>
00029 #include <hier_IntVector2.h>
00030 #include <mesh_StandardTagAndInitStrategy2.h>
00031 #include <hier_Box2.h>
00032 #include <plot_VizamraiDerivedDataStrategy2.h>
00033 
00034 
00035 using namespace SAMRAI;
00036 
00037 
00048 class JacobiPoissonX
00049   : public mesh_StandardTagAndInitStrategyX
00050   , public plot_VizamraiDerivedDataStrategyX
00051 {
00052 
00053 public:
00054 
00064   JacobiPoissonX(
00066     const string &object_name
00067   , 
00068     tbox_Pointer<SAMRAI::tbox_Database> database
00069   );
00070 
00071 
00072 
00074 
00075 public:
00076 
00087   virtual void initializeLevelData (
00089       const tbox_Pointer< SAMRAI::hier_PatchHierarchyX > hierarchy
00090     , 
00091       const int level_number
00092     , const double init_data_time
00093     , const bool can_be_refined
00094     , 
00095       const bool initial_time
00096     , 
00097       const tbox_Pointer< SAMRAI::hier_PatchLevelX > old_level
00098         = tbox_Pointer< SAMRAI::hier_PatchLevelX >((0))
00099     , 
00100       const bool allocate_data = true
00101     );
00102 
00103   virtual void resetHierarchyConfiguration (
00104       const tbox_Pointer< SAMRAI::hier_PatchHierarchyX > hierarchy
00105     , const int coarsest_level
00106     , const int finest_level
00107       ) { /* Nothing is needed. */ }
00108 
00110 
00112 
00116   void JacobiPoissonX::writeDerivedDataToStream(
00117     tbox_AbstractStream &stream
00118   , const hier_PatchX &patch
00119   , int patch_level_number
00120   , const hier_BoxX &region
00121   , const string &variable_name
00122   , int plot_type
00123   );
00124 
00126 
00127 
00128 
00129 public:
00130 
00134   int registerVariablesWithPlotter(
00136     tbox_Pointer<plot_CartesianVizamraiDataWriterX> viz_writer
00137     ) const;
00138 
00142   int jacobiIteration(
00144       const tbox_Pointer< SAMRAI::hier_PatchHierarchyX > hierarchy
00145     , 
00146       double relax_coef = 1
00147     );
00148 
00149 
00153   int JacobiPoissonX::computeError(
00154     const tbox_Pointer< SAMRAI::hier_PatchHierarchyX > hierarchy
00155   , double *l2norm
00156   , double *linorm
00157   ) const;
00158 
00159 
00160 
00161 
00163 private:
00171   SAMRAI::hier_VariableContext d_context_persistent;
00172 
00176   SAMRAI::hier_VariableContext d_context_scratch;
00177 
00181   SAMRAI::pdat_SideVariableX<double> d_diffcoef;
00182 
00186   SAMRAI::pdat_CellVariableX<double> d_scalar;
00187 
00191   SAMRAI::pdat_CellVariableX<double> d_source;
00192 
00196   SAMRAI::pdat_CellVariableX<double> d_exact;
00197 
00205   SAMRAI::pdat_CellVariableX<double> d_weight;
00206 
00207 
00219   int d_scalar_persistent, d_scalar_scratch, d_diffcoef_persistent
00220     , d_source_persistent, d_weight_persistent, d_exact_persistent;
00221 
00223 
00224 };
00225 
00226 
00227 #endif  // included_JacobiPoissonX_h

Generated on Wed Apr 17 12:51:44 2002 for samtut by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001