// // 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 "est/Estimator.h" #include "LeafData.h" #include "SurfaceRegion_ED.h" #include "ElementRegion_ED.h" #include "DOFMatrix.h" #include "UmfPackSolver.h" #include "est/RecoveryEstimator.h" #include "est/ResidualEstimator.h" #include "est/SimpleResidualEstimator.h" #include "time/RosenbrockMethod.h" #include "nonlin/NonLinSolver.h" namespace AMDiS { template<> void CreatorMap<OEMSolver>::addDefaultCreators() { OEMSolverCreator *creator; creator = new CGSolver::Creator; addCreator("cg", creator); creator = new CGSSolver::Creator; addCreator("cgs", creator); creator = new BiCGSolver::Creator; addCreator("bicg", 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); #ifdef HAVE_UMFPACK creator = new UmfPackSolver::Creator; addCreator("umfpack", creator); #endif } template<> void CreatorMap<BasePreconditioner>::addDefaultCreators() { PreconditionCreator *creator; creator = new DiagonalPreconditioner::Creator; addCreator("diag", creator); creator = new ILUPreconditioner::Creator; addCreator("ilu", creator); creator = new ICPreconditioner::Creator; addCreator("ic", creator); creator = new IdentityPreconditioner::Creator; addCreator("no", creator); } template<> void CreatorMap<Estimator>::addDefaultCreators() { EstimatorCreator *creator; creator = new ResidualEstimator::Creator; addCreator("residual", creator); creator = new SimpleResidualEstimator::Creator; addCreator("simple-residual", creator); creator = new RecoveryEstimator::Creator; addCreator("recovery", creator); } template<> void CreatorMap<ElementData>::addDefaultCreators() { CreatorInterface<ElementData> *creator; creator = new LeafDataEstimatable::Creator; addCreator("LeafDataEstimatable", creator); creator = new LeafDataEstimatableVec::Creator; addCreator("LeafDataEstimatableVec", creator); creator = new LeafDataCoarsenable::Creator; addCreator("LeafDataCoarsenable", creator); creator = new LeafDataCoarsenableVec::Creator; addCreator("LeafDataCoarsenableVec", creator); creator = new LeafDataPeriodic::Creator; addCreator("LeafDataPeriodic", creator); creator = new SurfaceRegion_ED::Creator; addCreator("SurfaceRegion_ED", creator); 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); addCreator("newtonArmijo", new NewtonArmijo::Creator); } }