• VTF
  • FSI
  • AMROC
  • SFC
  • Motion
  • STLIB
  • Main Page
  • Related Pages
  • Classes
  • Files
  • File List
  • File Members

amroc/lbm/LBMStdGFMProblem.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 // Copyright (C) 2013 Oak Ridge National Laboratory
00004 // Ralf Deiterding, deiterdingr@ornl.gov
00005 
00006 #ifndef AMROC_LBM_STD_GFM_PROBLEM_H
00007 #define AMROC_LBM_STD_GFM_PROBLEM_H
00008 
00016 #define OWN_AMRSOLVER
00017 #include "LBMStdProblem.h"
00018 
00019 #include "AMRGFMSolver.h"
00020 #include "Interfaces/SchemeGFMBoundary.h"
00021 #include "Interfaces/SchemeGFMFileOutput.h"
00022 
00023 #ifndef OWN_GFMAMRSOLVER
00024 class SolverSpecific : 
00025   public AMRGFMSolver<MicroType,FixupType,FlagType,DIM> {
00026   typedef AMRGFMSolver<MicroType,FixupType,FlagType,DIM> base;
00027 public:
00028   SolverSpecific(IntegratorSpecific& integ, 
00029                  base::initial_condition_type& init,
00030                  base::boundary_conditions_type& bc) : base(integ, init, bc) {
00031     SetLevelTransfer(new LBMF77LevelTransfer<LBMType,DIM>(integ.Scheme(), f_prolong, f_restrict));
00032     SetFileOutput(new SchemeGFMFileOutput<LBMType,FixupType,FlagType,DIM>(*this,integ.Scheme())); 
00033     SetFixup(new FixupSpecific(integ.Scheme()));
00034     SetFlagging(new FlaggingSpecific(*this,integ.Scheme())); 
00035     AddGFM(new GhostFluidMethodSpecific(new GFMBoundarySpecific(integ.Scheme()),
00036                                         new GFMLevelSetSpecific()));
00037   }  
00038 
00039   ~SolverSpecific() {
00040     DeleteGFM(_GFM[0]);
00041     delete _LevelTransfer;
00042     delete _Flagging;
00043     delete _Fixup;
00044     delete _FileOutput;
00045   }
00046 
00047   virtual void SetupData() {
00048     base::SetupData();
00049     base::NAMRTimeSteps = 1;
00050     base::Step[0].LastTime = 1.e37;
00051     base::Step[0].VariableTimeStepping = -1;
00052     base::Step[0].dtv[0] = ((LBMIntegrator<LBMType,DIM> &)Integrator_()).LBM().TimeScale();
00053   }
00054 }; 
00055 
00056 #endif
00057 
00058 #endif
00059