Skip to content
Snippets Groups Projects
CreatorMap.cc 3.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • //
    // Software License for AMDiS
    //
    // Copyright (c) 2010 Dresden University of Technology 
    // All rights reserved.
    // Authors: Simon Vey, Thomas Witkowski et al.
    //
    // This file is part of AMDiS
    //
    // See also license.opensource.txt in the distribution.
    
    
    
    #include "CreatorMap.h"
    
    #include "MTL4Types.h"
    
    #include "OEMSolver.h"
    
    #include "ITL_Solver.h"
    #include "ITL_Preconditioner.h"
    
    #include "MatrixVector.h"
    #include "SystemVector.h"
    #include "Estimator.h"
    #include "RecoveryEstimator.h"
    
    #include "LeafData.h"
    #include "SurfaceRegion_ED.h"
    #include "ElementRegion_ED.h"
    
    #include "UmfPackSolver.h"
    
    #include "time/RosenbrockMethod.h"
    
    #include "nonlin/NonLinSolver.h"
    
    
    namespace AMDiS {
    
      template<>
    
      void CreatorMap<OEMSolver>::addDefaultCreators()
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new CGSolver::Creator;
    
        addCreator("cg", creator);
    
    
        creator = new CGSSolver::Creator;
        addCreator("cgs", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new BiCGSolver::Creator;
    
        creator = new BiCGStabSolver::Creator;
    
        addCreator("bicgstab", creator);
    
    
        creator = new BiCGStab2Solver::Creator;
    
        addCreator("bicgstab2", creator);
    
    
        creator = new BiCGStabEllSolver::Creator;
    
        addCreator("bicgstab_ell", creator);
    
        creator = new QMRSolver::Creator;
        addCreator("qmr", creator);
    
        creator = new TFQMRSolver::Creator;
        addCreator("tfqmr", creator);
    
        creator = new GMResSolver::Creator;
        addCreator("gmres", creator);
    
        creator = new IDRsSolver::Creator;
        addCreator("idr_s", creator);
    
    
        creator = new MinResSolver::Creator;
        addCreator("minres", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new UmfPackSolver::Creator;
    
      void CreatorMap<BasePreconditioner>::addDefaultCreators()
    
        PreconditionCreator *creator;
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator =  new DiagonalPreconditioner::Creator;
    
        addCreator("diag", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new ILUPreconditioner::Creator;
    
        addCreator("ilu", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new ICPreconditioner::Creator;
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator =  new IdentityPreconditioner::Creator;
    
        addCreator("no", creator);
      }
    
      template<>
      void CreatorMap<Estimator>::addDefaultCreators()
      {
        EstimatorCreator *creator;
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new ResidualEstimator::Creator;
    
        addCreator("residual", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new RecoveryEstimator::Creator;
    
        addCreator("recovery", creator);
      }
    
    
      template<>
      void CreatorMap<ElementData>::addDefaultCreators()
      {
        CreatorInterface<ElementData> *creator;
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new LeafDataEstimatable::Creator;
    
        addCreator("LeafDataEstimatable", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new LeafDataEstimatableVec::Creator;
    
        addCreator("LeafDataEstimatableVec", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new LeafDataCoarsenable::Creator;
    
        addCreator("LeafDataCoarsenable", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new LeafDataCoarsenableVec::Creator;
    
        addCreator("LeafDataCoarsenableVec", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new LeafDataPeriodic::Creator;
    
        addCreator("LeafDataPeriodic", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new SurfaceRegion_ED::Creator;
    
        addCreator("SurfaceRegion_ED", creator);
    
    
    Thomas Witkowski's avatar
    Thomas Witkowski committed
        creator = new ElementRegion_ED::Creator;
    
        addCreator("ElementRegion_ED", creator);
      }
    
    
      template<>
      void CreatorMap<RosenbrockMethod>::addDefaultCreators()
      {
        addCreator("ros2", new Ros2::Creator);
        addCreator("rowda3", new Rowda3::Creator);
        addCreator("ros3p", new Ros3p::Creator);
        addCreator("rodasp", new Rodasp::Creator);
      }
    
    
    
      template<>
      void CreatorMap<NonLinSolver>::addDefaultCreators()
      {
        addCreator("newton", new Newton::Creator);
      }