00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef LOCA_HOPF_MOORESPENCE_SOLVERSTRATEGY_H
00043 #define LOCA_HOPF_MOORESPENCE_SOLVERSTRATEGY_H
00044
00045 #include "Teuchos_RCP.hpp"
00046
00047 #include "NOX_Abstract_Group.H"
00048
00049
00050 namespace LOCA {
00051 namespace Hopf {
00052 namespace MooreSpence {
00053 class AbstractGroup;
00054 class ExtendedGroup;
00055 class ExtendedMultiVector;
00056 }
00057 }
00058 }
00059
00060 namespace LOCA {
00061
00062 namespace Hopf {
00063
00064 namespace MooreSpence {
00065
00100 class SolverStrategy {
00101
00102 public:
00103
00105 SolverStrategy() {}
00106
00108 virtual ~SolverStrategy() {}
00109
00111
00125 virtual void setBlocks(
00126 const Teuchos::RCP<LOCA::Hopf::MooreSpence::AbstractGroup>& group,
00127 const Teuchos::RCP<LOCA::Hopf::MooreSpence::ExtendedGroup>& hopfGroup,
00128 const Teuchos::RCP<const NOX::Abstract::Vector>& yVector,
00129 const Teuchos::RCP<const NOX::Abstract::Vector>& zVector,
00130 const Teuchos::RCP<const NOX::Abstract::Vector>& CeRealVector,
00131 const Teuchos::RCP<const NOX::Abstract::Vector>& CeImagVector,
00132 const Teuchos::RCP<const NOX::Abstract::Vector>& dfdp,
00133 const Teuchos::RCP<const NOX::Abstract::Vector>& dCedpReal,
00134 const Teuchos::RCP<const NOX::Abstract::Vector>& dCedpImag,
00135 const Teuchos::RCP<const NOX::Abstract::Vector>& ByVector,
00136 const Teuchos::RCP<const NOX::Abstract::Vector>& mBzVector,
00137 double w) = 0;
00138
00145 virtual NOX::Abstract::Group::ReturnType
00146 solve(
00147 Teuchos::ParameterList& params,
00148 const LOCA::Hopf::MooreSpence::ExtendedMultiVector& input,
00149 LOCA::Hopf::MooreSpence::ExtendedMultiVector& result) const = 0;
00150
00151 private:
00152
00154 SolverStrategy(const SolverStrategy&);
00155
00157 SolverStrategy& operator = (const SolverStrategy&);
00158
00159 };
00160
00161 }
00162
00163 }
00164
00165 }
00166
00167 #endif // LOCA_HOPF_MOORESPENCE_SOLVERSTRATEGY_H