defaultfactory.cpp

来自「利用C」· C++ 代码 · 共 68 行

CPP
68
字号
// Copyright (C) 2008 Anders Logg.// Licensed under the GNU LGPL Version 2.1.//// First added:  2008-05-17// Last changed: 2008-05-19#include <dolfin/parameter/parameters.h>#include "uBlasFactory.h"#include "PETScFactory.h"#include "EpetraFactory.h"#include "DefaultFactory.h"#include "AssemblyFactory.h"using namespace dolfin;//-----------------------------------------------------------------------------GenericMatrix* DefaultFactory::createMatrix() const{  return factory().createMatrix();}//-----------------------------------------------------------------------------GenericVector* DefaultFactory::createVector() const{  return factory().createVector();}//-----------------------------------------------------------------------------GenericSparsityPattern * DefaultFactory::createPattern() const{  return factory().createPattern();}//-----------------------------------------------------------------------------LinearAlgebraFactory& DefaultFactory::factory() const{  // Fallback  std::string default_backend = "uBLAS";  typedef uBlasFactory<> DefaultFactory;  // Get backend from parameter system  std::string backend = dolfin_get("linear algebra backend");  // Choose backend  if (backend == "uBLAS")  {    return uBlasFactory<>::instance();  }  else if (backend == "PETSc")  {#ifdef HAS_PETSC    return PETScFactory::instance();#endif  }  else if (backend == "Epetra")  {#ifdef HAS_TRILINOS    return EpetraFactory::instance();#endif  }  else if (backend == "Assembly")  {     return AssemblyFactory::instance();  }  // Fallback  message("Linear algebra backend \"" + backend + "\" not available, using " + default_backend + ".");  return DefaultFactory::instance();}//-----------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?