/usr/include/trilinos/fei_Factory.hpp is in libtrilinos-dev 10.4.0.dfsg-1ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | /*--------------------------------------------------------------------*/
/* Copyright 2005 Sandia Corporation. */
/* Under the terms of Contract DE-AC04-94AL85000, there is a */
/* non-exclusive license for use of this work by or on behalf */
/* of the U.S. Government. Export of this program may require */
/* a license from the United States Government. */
/*--------------------------------------------------------------------*/
#ifndef _fei_Factory_hpp_
#define _fei_Factory_hpp_
#include "fei_macros.hpp"
#include "fei_mpi.h"
#include "fei_VectorSpace.hpp"
#include "fei_MatrixGraph.hpp"
#include "fei_Matrix.hpp"
#include "fei_Vector.hpp"
#include "fei_LinearSystem.hpp"
#include "fei_Solver.hpp"
#include "fei_LibraryWrapper.hpp"
#include "FEI.hpp"
namespace fei {
//first, a forward declaration...
class ParameterSet;
/** Interface for creating fei:: instances.
In all cases, input arguments (arguments required to construct the
requested class) are followed by the result or output argument.
This interface inherits the various fei:: factory interfaces as a
convenience mechanism, so that user code can deal with one factory
object instead of a different factory for each class. In addition
to inheriting the fei:: factories, this interface also provides
methods for creating instances of the 'old' FEI class.
*/
class Factory : public virtual fei::VectorSpace::Factory,
public virtual fei::MatrixGraph::Factory,
public virtual fei::Matrix::Factory,
public virtual fei::Vector::Factory,
public virtual fei::LinearSystem::Factory,
public virtual fei::Solver::Factory {
public:
/** constructor */
Factory(MPI_Comm comm);
/** virtual destructor */
virtual ~Factory();
/** Create and return a new Factory of the same type. */
virtual fei::SharedPtr<Factory> clone() const = 0;
/** Set parameters.
*/
virtual void parameters(const fei::ParameterSet& paramset);
/** Produce an instance of the "old" FEI class (implements the FEI 2.1
interface specification).
This function is virtual, but not pure-virtual. An implementation
is provided by this class, and can be inherited by derived classes
if desired.
*/
virtual fei::SharedPtr<FEI> createFEI(fei::SharedPtr<LibraryWrapper> wrapper,
MPI_Comm comm);
/** Produce an instance of the "old" FEI class (implements the FEI 2.1
interface specification).
This function is virtual, but not pure-virtual. An implementation
is provided by this class, and can be inherited by derived classes
if desired.
*/
virtual fei::SharedPtr<FEI> createFEI(MPI_Comm comm);
/** Query screen output-level (set by parameter-string "outputLevel n"
via parameters())
*/
virtual int getOutputLevel() const = 0;
private:
Factory();
Factory(const Factory& src);
};//class Factory
}//namespace fei
#endif // _fei_Factory_hpp_
|