[Trilinos-Users] Moocho question.

Luca Heltai luca.heltai at gmail.com
Tue Jun 10 10:57:24 MDT 2008


Ross,

thanks a lot for the pointer! I got the examples working with finite  
differences, as well as another small custom example I wrote on my  
own, just to make sure things were the way I expected them to be...

Now the next question... Is it possible to eliminate the need to  
compute explicitly DfDx=W as well? I'm stuck in trying to find the  
correct interpretation for the

	Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> >
	    lowsFactory = lowsfCreator.createLinearSolveStrategy("");


object, which in the EpetraModelEvaluator documentation is also  
referred to as W_factory...

   EpetraModelEvaluator(
     const RCP<const EpetraExt::ModelEvaluator> &epetraModel,
     const RCP<LinearOpWithSolveFactoryBase<double> > &W_factory
     );

I'm trying to find a reasonable explanation for all these function  
calls and constructors, but I don't think I found my way in the  
documentation yet... Is there a good starting point to find out about  
these? Moocho is not very verbose about them, and EpetraExt isn't too  
talkative either...

Thanks in advance!

Luca

--
Luca Heltai <luca.heltai at gmail.com>
http://www-dimat.unipv.it/heltai
--
There are no answers, only cross references.



On 10/giu/08, at 16:31, Bartlett, Roscoe A wrote:

> Luca,
>
> To see the exact input that the executables are designed to run  
> with, see:
>
>   Trilinos/packages/moocho/test/definition
>
> There you will see the exact inputs that are tested.  If you turn  
> off derivative support in this example, you have to turn on finite  
> differencing explicitly.  The above moocho/test/definition file  
> will show you how that is done.
>
> - Ross
>
>
>
> -----Original Message-----
> From: trilinos-users-bounces at software.sandia.gov [mailto:trilinos- 
> users-bounces at software.sandia.gov] On Behalf Of Luca Heltai
> Sent: Tuesday, June 10, 2008 8:07 AM
> To: trilinos-users at software.sandia.gov
> Subject: [Trilinos-Users] Moocho question.
>
> Dear Trilinos Users,
>
> I'm trying to use the Moocho module solve a minimization problem  
> for which I only have access to the (nonlinear) target g(x,p) and  
> the equality constraint f(x,p), and I'm having some difficulties on  
> figuring out a couple of things:
>
> I tried running the example
>
> NLPThyraEpetraModelEval4DOpt.exe --no-support-derivs
>
> where I understood from the source code that in this way, all  
> derivatives (except W=DfDx) should be computed by Finite Differences.
> Is this assumption correct? If this is correct, then there must be  
> a problem somewhere else, since the above does not work: I get the  
> following error
>
> ---
> test_nlp = true: Testing the NLP! ...
>
> Testing the supported NLPFirstOrder interface ...
>
> MoochoSolver: Caught an std::exception of type std::logic_error  
> described as : /usr/local/trilinos-8.0.5/packages/thyra/src/
> interfaces/nonlinear/model_evaluator/ana/fundamental/
> Thyra_ModelEvaluatorBase.hpp:2292:
>
> Throw number = 1
>
> Throw test that evaluated to true: !deriv.isSupportedBy(derivSupport)
>
> Thyra::ModelEvaluatorBase::OutArgs<Scalar>::assert_supports
> (OUT_ARG_DfDp,l):
>
> model = 'Thyra::DefaultFinalPointCaptureModelEvaluator
> {thyraModel='Thyra::DefaultNominalBoundsOverrideModelEvaluator
> {thyraModel='Thyra::DefaultEvaluationLoggerModelEvaluator
> {thyraModel='Thyra::EpetraModelEvaluator
> {epetraModel='EpetraModelEval4DOpt',W_factory='Thyra::AmesosLinearOpWi 
> th
> SolveFactory{solverType=Klu}'}'}'}'}':
>
> Error, The argument DfDp(0) = Derivative  
> {derivMultiVec=DerivativeMultiVector
> {multiVec=Thyra::DefaultSpmdMultiVector<double>
> {rangeDim=2,domainDim=2},orientation=DERIV_MV_BY_COL}}
> is not supported!
>
> The supported types include DerivativeSupport{none}!
> ---
>
>  From the above error lines, I understood that the thing which was  
> giving me a problem was "simply" the testing of the NLP interface...
> I switched this off in the config file, run again, and now I get the
> following:
>
>
> ********************************
> *** Start of rSQP Iterations ***
> n = 4, m = 2, nz = 0
>
>   k    f         ||c||s    ||rGL||s  QN ||Ypy||2 ||Zpz||2 ||d||inf
> alpha    time(sec)
>   ---- --------- --------- --------- -- -------- -------- --------
> -------- ---------
>      0         0         -         -  -        -        -
> -        -  0.013418
>
> Total time = 0.013452 sec
>
> Oops!  Not the solution.  Some error has occured!
>
>
> -----
>
> The program then hangs for a while, until I just kill it...
>
>  From the above, my conclusions are:
> 1. I did not understand how this works
> 2. There is a problem somewhere (probably in point 1  
> above ... ;-) ...)
>
> One last question: In the documentation it is stated:
>
> "MOOCHO also includes a minimally invasive mode for reduced-space  
> SQP where the simulator application only needs to compute the  
> objective and constraint functions f (xD , xI): R(n+m) -> R,  c 
> (xD , xI ): R(n+m) -> Rn and solve only forward linear systems  
> involving  DcDxD. All other derivatives can be approximated with  
> directional finite differences but any exact derivatives that can  
> be computed by the application are happily accepted and fully  
> utilized by MOOCHO through the Thyra::ModelEvaluator interface."
>
> Does this mean that one can also approximate DfDx (=DcDxD) in  
> Moocho by finite differences? From the above statement I couldn't  
> figure it out (I was hoping yes, but then in the example codes  
> create_W is always specified, and trying not to specify it gives  
> errors like the one I printed out above).
>
> Assuming that one could calculate W=DfDx in some way, then how do  
> we specify that all other derivatives are to be computed by finite  
> difference approximations? My understanding was that this is the  
> default behavior, unless the various outArgs properties are set  
> accordingly. Is this correct? And if so, what is wrong in the  
> example test problem when --no-support-derivs is set? The effect of  
> this is precisely not to specify the unknown derivatives...
>
> Thanks in advance,
>
> Luca.
>
> --
> Luca Heltai <luca.heltai at gmail.com>
> http://www-dimat.unipv.it/heltai
> --
> There are no answers, only cross references.
>
>
>
>
> _______________________________________________
> Trilinos-Users mailing list
> Trilinos-Users at software.sandia.gov
> http://software.sandia.gov/mailman/listinfo/trilinos-users
>




More information about the Trilinos-Users mailing list