Optika GUI Toolik  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
test/gui/basic/main.cpp
Go to the documentation of this file.
1 // @HEADER
2 // ***********************************************************************
3 //
4 // Optika: A Tool For Developing Parameter Obtaining GUIs
5 // Copyright (2009) Sandia Corporation
6 //
7 // Under terms of Contract DE-AC04-94AL85000, with Sandia Corporation, the
8 // U.S. Government retains certain rights in this software.
9 //
10 // Redistribution and use in source and binary forms, with or without
11 // modification, are permitted provided that the following conditions are
12 // met:
13 //
14 // 1. Redistributions of source code must retain the above copyright
15 // notice, this list of conditions and the following disclaimer.
16 //
17 // 2. Redistributions in binary form must reproduce the above copyright
18 // notice, this list of conditions and the following disclaimer in the
19 // documentation and/or other materials provided with the distribution.
20 //
21 // 3. Neither the name of the Corporation nor the names of the
22 // contributors may be used to endorse or promote products derived from
23 // this software without specific prior written permission.
24 //
25 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 //
37 // Questions? Contact Kurtis Nusbaum (klnusbaum@gmail.com)
38 //
39 // ***********************************************************************
40 // @HEADER
41 #include "Optika_GUI.hpp"
44 #include "Teuchos_FancyOStream.hpp"
45 
46 namespace Optika{
47 
48 
50 
54  using Teuchos::tuple;
55  using Teuchos::rcp;
56 
57  RCP<FancyOStream> out = VerboseObjectBase::getDefaultOStream();
58 
59  //Basic Test
61 
62  double *pointer = 0;
63  My_List->set("Double pointer", pointer);
64  My_List->set("Max Iters", 1550, "Determines the maximum number of iterations in the solver");
65  My_List->set("Tolerance", 1e-10, "The tolerance used for the convergence check");
66 
68  solverValidator = rcp(
69  new StringToIntegralParameterEntryValidator<int>(
70  tuple<std::string>( "GMRES", "CG", "TFQMR" )
71  ,"Solver"
72  )
73  );
74  My_List->set(
75  "Solver"
76  ,"GMRES" // This will be validated by solverValidator right here!
77  ,"The type of solver to use."
78  ,solverValidator
79  );
80 
81  RCP<EnhancedNumberValidator<int> > awesomenessValidator =
83  My_List->set("Awesomeness", 5, "Rate the awesomeness!!!", awesomenessValidator);
84 
85  Array<double> testArray( 10, 0.0 );
86 
87  My_List->set("Initial Guess", testArray, "The initial guess as a RCP to an array object.");
88 
90  Prec_List = My_List->sublist("Preconditioner",false,"Sublist that defines the preconditioner.");
91 
92  Prec_List.set("Type", "ILU", "The tpye of preconditioner to use");
93  Prec_List.set("Drop Tolerance", 1e-3
94  ,"The tolerance below which entries from the\n""factorization are left out of the factors.");
95 
96  getInput(My_List);
97 
98  writeParameterListToXmlOStream(*My_List, *out);
99 
100 
101 }
102 
103 
104 }
105 
106 int main(){
108  return 0;
109 }
110 
ParameterList & set(std::string const &name, T const &value, std::string const &docString="", RCP< const ParameterEntryValidator > const &validator=null)
A collection of functions and an Object that serve as the primary interface to the Optika package all...
RCP< ParameterList > sublist(const RCP< ParameterList > &paramList, const std::string &name, bool mustAlreadyExist=false, const std::string &docString="")
int main()
void getInput(RCP< ParameterList > validParameters, RCP< DependencySheet > dependencySheet, void(*customFunc)(RCP< const ParameterList >))
Retreives the input for a Teuchos Parameter List using a GUI. Note the Parameter List will be edited...
Definition: Optika_GUI.cpp:47
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
void RUN_BASIC_OPTIKA_TESTS()
bool testArray(const int n, Teuchos::FancyOStream &out)
basic_FancyOStream< char > FancyOStream