/** * @file com_set_coarser_dirichlet_values.cpp * @author Julian Iseringhausen * @date Mon Apr 18 12:50:00 2011 * * @brief Used for FAS-like multigrid algorithms, to set * all Dirichlet boundary values on all the coarse * levels in advance. * */ #ifdef HAVE_CONFIG_H #include #endif #include "base/command.hpp" #include "grid/grid.hpp" #include "grid/multigrid.hpp" #include "mg.hpp" using namespace VMG; class VMGCommandSetCoarserDirichletValues : public Command { public: Request Run(Command::argument_vector arguments) { Multigrid& rhs = *MG::GetRhs(); Multigrid& sol = *MG::GetSol(); rhs.SetCoarserDirichletValues(); for (int i=rhs.MinLevel(); i<=rhs.GlobalMaxLevel(); ++i) sol(i).SetBoundary(rhs(i)); return Continue; } static const char* Name() {return "SetCoarserDirichletValues";} static int Arguments() {return 0;} }; CREATE_INITIALIZER(VMGCommandSetCoarserDirichletValues);