49#include "Teuchos_Assert.hpp"
57Teuchos::RCP<Stokhos::SGOperator>
59build(
const Teuchos::RCP<const EpetraExt::MultiComm>& sg_comm,
61 const Teuchos::RCP<const Stokhos::EpetraSparse3Tensor>& epetraCijk,
62 const Teuchos::RCP<const Epetra_Map>& domain_base_map,
63 const Teuchos::RCP<const Epetra_Map>& range_base_map,
64 const Teuchos::RCP<const Epetra_Map>& domain_sg_map,
65 const Teuchos::RCP<const Epetra_Map>& range_sg_map)
67 Teuchos::RCP<Stokhos::SGOperator> sg_op;
68 std::string op_method = params->get(
"Operator Method",
"Matrix Free");
69 if (op_method ==
"Matrix Free") {
71 sg_comm, sg_basis, epetraCijk,
72 domain_base_map, range_base_map,
73 domain_sg_map, range_sg_map, params));
75 else if (op_method ==
"KL Matrix Free") {
77 sg_comm, sg_basis, epetraCijk,
78 domain_base_map, range_base_map,
79 domain_sg_map, range_sg_map, params));
81 else if (op_method ==
"KL Reduced Matrix Free") {
83 sg_comm, sg_basis, epetraCijk,
84 domain_base_map, range_base_map,
85 domain_sg_map, range_sg_map, params));
87 else if (op_method ==
"Fully Assembled") {
88 Teuchos::RCP<const Epetra_CrsGraph> base_graph =
89 params->get< Teuchos::RCP<const Epetra_CrsGraph> >(
"Base Graph");
91 sg_comm, sg_basis, epetraCijk, base_graph,
92 domain_sg_map, range_sg_map, params));
95 TEUCHOS_TEST_FOR_EXCEPTION(
true, std::logic_error,
96 "Error! Unknown operator method " << op_method
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...
An Epetra operator representing the block stochastic Galerkin operator.
An Epetra operator representing the block stochastic Galerkin operator.
An Epetra operator representing the block stochastic Galerkin operator.
Abstract base class for multivariate orthogonal polynomials.
virtual Teuchos::RCP< Stokhos::SGOperator > build(const Teuchos::RCP< const EpetraExt::MultiComm > &sg_comm, const Teuchos::RCP< const Stokhos::OrthogPolyBasis< int, double > > &sg_basis, const Teuchos::RCP< const Stokhos::EpetraSparse3Tensor > &epetraCijk, const Teuchos::RCP< const Epetra_Map > &domain_base_map, const Teuchos::RCP< const Epetra_Map > &range_base_map, const Teuchos::RCP< const Epetra_Map > &domain_sg_map, const Teuchos::RCP< const Epetra_Map > &range_sg_map)
Build preconditioner operator.
SGOperatorFactory(const Teuchos::RCP< Teuchos::ParameterList > ¶ms)
Constructor.