#include <NOX_Direction_Factory.H>
Public Member Functions | |
Factory () | |
Constructor. | |
~Factory () | |
Destructor. | |
Teuchos::RCP < NOX::Direction::Generic > | buildDirection (const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) |
Factory to build a direction object. |
Parameters
Using a User-Defined Direction
The user has the option of passing in a user-defined direction. First, they must implement their own direction, deriving from the base class interface NOX::Direction::Generic:
class MyDirection : public NOX::Direction::Generic { // Ctor that takes the standard direction arguments. MyDirection(const Teuchos::RCP<NOX::GlobalData>& gd, Teuchos::ParameterList& params); . . . };
Next they must write a factory to build their object, deriving from the NOX::Direction::UserDefinedFactory base class interface:
class MyFactory { MyDirFactory(); ~MyDirFactory(); Teuchos::RCP<NOX::Direction::Generic> buildDirection(const Teuchos::RCP< NOX::GlobalData > &gd, Teuchos::ParameterList ¶ms) . . . };
Then under the "Direction" parameter sublist, they need to set the method to "User Defined" and register the factory:
using namespace Teuchos; // for RCP and ParameterList ParameterList& dir_params = p.sublist("Direction"); RCP<NOX::Direction::UserDefinedFactory> dir_facotry = rcp(new MyDirectionFactory); dir_params.set("Method", "User Defined"); dir_params.set("User Defined Direction Factory", dir_factory);
It is critical that the user defined factory be set in the parameter list as a base class type object: NOX::Direction::UserDefinedFactory.
Definition at line 138 of file NOX_Direction_Factory.H.
NOX::Direction::Factory::Factory | ( | ) |
NOX::Direction::Factory::~Factory | ( | ) |
Teuchos::RCP< NOX::Direction::Generic > buildDirection | ( | const Teuchos::RCP< NOX::GlobalData > & | gd, | |
Teuchos::ParameterList & | params | |||
) |
Factory to build a direction object.
gd | A global data pointer that contains the top level parameter list. Without storing this inside the direction object, there is no guarantee that the second parameter params will still exist. It can be deleted by the top level RCP. | |
params | Sublist with direction construction parameters. |
Definition at line 74 of file NOX_Direction_Factory.C.