49 #include "Teuchos_Assert.hpp" 57 Teuchos::RCP<Stokhos::SGOperator>
59 build(
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.
An Epetra operator representing the block stochastic Galerkin operator.
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.
An Epetra operator representing the block stochastic Galerkin operator.
An Epetra operator representing the block stochastic Galerkin operator generated by fully assembling ...