[Trilinos-Users] ilut setting
Erik Boman
egboman at sandia.gov
Thu Sep 26 15:04:55 MDT 2013
I don't think one iteration of GMRES is a linear operator because the
step length is nonlinear. This is true even for CG. It may still work as
a preconditioner in most cases, but the safer approach would be to use
FGMRES in the outer iteration.
Erik
Bartlett, Roscoe A. wrote:
>
> *Bui,*
>
> * *
>
> *Let me try to throw an example together which should not be hard if
> this indeed will work (the only using would be if a single GMRES
> iteration is not really a linear operator). If it get it working I
> will commit it to the set of Stratimikos examples in Trilinos and
> then send out the git patch (which should work on the public clone of
> Trilinos).*
>
> * *
>
> *-Ross*
>
> * *
>
>
>
> *From:* Hoang Giang Bui [mailto:hgbk2008 at gmail.com]
> *Sent:* Wednesday, September 25, 2013 7:16 PM
> *To:* Pawlowski, Roger P; Bartlett, Roscoe A.
> *Cc:* Heroux, Michael A; Cyr, Eric C; trilinos-users at software.sandia.gov
> *Subject:* Re: [Trilinos-Users] ilut setting
>
>
>
>
> Dear Ross, Pawlowski et al
>
> The idea of using NOX is quite simple but is not familiar to me since
> I didn't use NOX. Additionally, I would want to use AztecOO as
> sub-preconditioner in block preconditioning. Therefore, I prefer the
> approach of Ross and wrap it under Teko. However, I didn't quite get
> the idea since so many interfaces involved. I wrote a snippet to see
> if I understand this concept correctly:
>
>
> //create the Stratimikos linear solver builder
> Stratimikos::DefaultLinearSolverBuilder strat;
> strat.setParameterList(xtraParam); //xtraParam is where I define GMRES
> and related params
>
> //first create a DefaultInverseLinearOp which contains an AztecOO solver
> Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> >
> PrecOpFactory = strat.createLinearSolveStrategy("AztecOO");
>
> Teuchos::RCP<Thyra::LinearOpWithSolveBase<double> > PrecOp =
> PrecOpFactory->createOp();
>
> Teuchos::RCP<Thyra::DefaultInverseLinearOp<double> > InverseOp =
> Teuchos::rcp(new Thyra::DefaultInverseLinearOp<double>(PrecOp));
>
> //second create a LinearOpWithSolveBase to hold the solver as
> preconditioner
> Teuchos::RCP<Thyra::LinearOpWithSolveFactoryBase<double> >
> SolveOpFactory = strat.createLinearSolveStrategy("AztecOO"); //I reuse
> AztecOO here for simplicity
>
> Teuchos::RCP<Thyra::LinearOpWithSolveBase<double> > SolveOp =
> SolveOpFactory->createOp();
>
> SolveOpFactory->initializePreconditionedOp(....,
>
> &*SolveOp,Thyra::SUPPORT_SOLVE_FORWARD_ONLY);
>
> I wonder what should be put under dot in initializePreconditionedOp ?
>
> Bui
>
>
>
>
>
> On Tue, Sep 24, 2013 at 2:59 PM, Pawlowski, Roger P
> <rppawlo at sandia.gov <mailto:rppawlo at sandia.gov>> wrote:
>
> Just to follow up on Ross's comment. The NOX epetra group does allow
> you to use the aztecoo preconditioners by performing a single GMRES
> step as he said. You can get access to this by calling the
> NOX::Epetra::Group::applyRightPreconditioning() method and selecting
> the aztecoo preconditioner in the parameter list for building the
> aztecoo linear system.
>
> Roger
>
> ------------------------------------------------------------------------
>
> *From:* trilinos-users-bounces at software.sandia.gov
> <mailto:trilinos-users-bounces at software.sandia.gov>
> [trilinos-users-bounces at software.sandia.gov
> <mailto:trilinos-users-bounces at software.sandia.gov>] on behalf of
> Heroux, Michael A [maherou at sandia.gov <mailto:maherou at sandia.gov>]
> *Sent:* Monday, September 23, 2013 12:13 PM
> *To:* Bartlett, Roscoe A.; Cyr, Eric C; Hoang Giang Bui
> *Cc:* trilinos-users at software.sandia.gov
> <mailto:trilinos-users at software.sandia.gov>
> *Subject:* Re: [Trilinos-Users] ilut setting
>
> Ross' approach is a reasonable path. AztecOO does have a
> SetPreconditioner, ConstructPrecondition, and DestroyPreconditioner
> method. But it does not have an ApplyPreconditioner. It would be
> very straightforward to create such a method using
> ConstructPreconditioner as the starting point, but I hesitate add code
> to AztecOO if the suggested approach that Ross outlined works for you.
>
>
>
> Mike
>
>
>
> *From: *<Bartlett>, Ross Bartlett <bartlettra at ornl.gov
> <mailto:bartlettra at ornl.gov>>
> *Date: *Monday, September 23, 2013 10:55 AM
>
> *To: *Eric Cyr <hgbk2008 at gmail.com <mailto:hgbk2008 at gmail.com>>
>
>
> *Cc: *"trilinos-users at software.sandia.gov
> <mailto:trilinos-users at software.sandia.gov>>
> *Subject: *Re: [Trilinos-Users] [EXTERNAL] Re: ilut setting
>
>
>
> I think NOX uses AztecOO as a precoditioner by doing a single GMRES
> iteration. Roger Pawlowski would know more.
>
>
>
> Stratimikos does not directly support such a usage but you could use
> Stratimikos and Thyra to construct such a thing. You would use one
> Stratikmikos linear solver builder to create an AztecOO
> LinearOpWtihSolveBase object with GMRES and a single iteration then
> you would wrap this within a Thyra::DefaultInverseLinearOp object (see
> http://trilinos.sandia.gov/packages/docs/dev/packages/thyra/doc/html/classThyra_1_1DefaultInverseLinearOp.html
> ). You would then use another Stratimikos linear solver build to
> create a Thyra::LinearOpWithSolveFactoryBase object (i.e. Belos) and
> then create a new LinearOpWithSolveBase object where you set the
> AztecOO GMRESS solver set that as a preconditioner using
> Thyra::LinearOpWithSolveFactoryBase::initializePreconditionedOp() (see
> http://trilinos.sandia.gov/packages/docs/dev/packages/thyra/doc/html/classThyra_1_1LinearOpWithSolveFactoryBase.html#a3c0e4b3df20383b09eb0f4b671576783
> ).
>
>
>
> This is only a few lines of code once you have the two
> Stratimikos::DefaultLinearSolverBuilder objects created.
>
>
>
> -Ross
>
>
>
> *From:* trilinos-users-bounces at software.sandia.gov
> <mailto:trilinos-users-bounces at software.sandia.gov>
> [mailto:trilinos-users-bounces at software.sandia.gov] *On Behalf Of
> *Cyr, Eric C
> *Sent:* Monday, September 23, 2013 11:02 AM
> *To:* Hoang Giang Bui
> *Cc:* trilinos-users at software.sandia.gov
> <mailto:trilinos-users at software.sandia.gov>
> *Subject:* Re: [Trilinos-Users] [EXTERNAL] Re: ilut setting
>
>
>
> Bui
>
>
>
> So to clarify you would like to use only the preconditioners within
> AztecOO? Furthermore you want to apply this repeatedly with out
> rebuilding at each iteration?
>
>
>
> I'm not sure if only the preconditioners from AztecOO can be used, can
> someone else answer this?
>
>
>
> Eric
>
>
> On Sep 23, 2013, at 5:28 AM, "Hoang Giang Bui" <hgbk2008 at gmail.com
> <mailto:hgbk2008 at gmail.com>> wrote:
>
> I think the problem lies in line 1044 of
> Thyra_AztecOOLinearOpWithSolveFactory.cpp. The
> ConstructPreconditioner try to set AZ_pre_calc to AZ_reuse so the
> method failed as the previous message showed. However, I'm not
> sure that uncomment the next line will do the thing correctly.
> Because I tried to uncomment and it can pass the AZ_pre_calc error
> but the preconditioner take so long to compute. I think the
> Stratimikos's AztecOO interface try to run several iteration steps
> to compute the approximation instead of applying the
> preconditioner directly. This is not what I want, I think there
> should be option to apply AztecOO's preconditioner directly
> instead of trial solving steps. This will lead to recomputing the
> preconditioner at every iteration steps of outer loop.
>
> Bui
>
> This is the parameter list I used for my test:
> <ParameterList name="AztecOO">
> <Parameter name="Type" type="string" value="AztecOO"/>
> <ParameterList name="Forward Solve">
> <ParameterList name="AztecOO Settings">
> <Parameter name="Aztec Solver" type="string"
> value="BiCGStab"/>
> <Parameter name="Aztec Preconditioner" type="string"
> value="ilut"/>
> <Parameter name="Overlap" type="int" value="1"/>
> <Parameter name="Graph Fill" type="int" value="0"/>
> <Parameter name="Drop Tolerance" type="double" value="0.0"/>
> <Parameter name="Fill Factor" type="double" value="10.0"/>
> <Parameter name="Steps" type="int" value="3"/>
> <Parameter name="Polynomial Order" type="int" value="3"/>
> <Parameter name="RCM Reordering" type="string"
> value="Enabled"/>
> <Parameter name="Orthogonalization" type="string"
> value="Classical"/>
> <Parameter name="Size of Krylov Subspace" type="int"
> value="1000"/>
> <Parameter name="Convergence Test" type="string"
> value="r0"/>
> <Parameter name="Ill-Conditioning Threshold"
> type="double" value="1e+11"/>
> <Parameter name="Output Frequency" type="int" value="1"/>
> </ParameterList>
> <Parameter name="Max Iterations" type="int" value="1"/>
> <Parameter name="Tolerance" type="double" value="1e-9"/>
> </ParameterList>
> <Parameter name="Output Every RHS" type="bool" value="false"/>
> <ParameterList name="VerboseObject">
> <Parameter name="Output File" type="string" value="none"/>
> <Parameter name="Verbosity Level" type="string" value="none"/>
> </ParameterList>
> </ParameterList>
>
>
> On 09/20/2013 06:04 PM, Cyr, Eric C wrote:
>
> I don't know why. I've never used the native Aztec
> preconditioners and always use IFPACK (though not the ILUT).
> Its possible (likely even) that the default AztecOO parameters
> specified in Stratimikos don't satisfy the requirements of
> Aztec as stated in the error text you sent below. I'd look at
> AZ_pre_calc and try to see if its set to "reuse". If so I
> think thats the problem.
>
>
>
> Eric
>
>
>
> *From: *Hoang Giang Bui <hgbk2008 at gmail.com
> <mailto:hgbk2008 at gmail.com>>
> *Date: *Friday, September 20, 2013 3:04 AM
> *To: *Eric Cyr <eccyr at sandia.gov <mailto:eccyr at sandia.gov>>
> *Subject: *Re: [EXTERNAL] Re: [Trilinos-Users] ilut setting
>
>
>
>
> Hi again,
>
> I realized that this was not correct since
> Thyra::LinearOpBase and Epetra_Operator are not
> incompatible. I fixed that using Thyra::block1x1 and it
> seems working. However with this setting
>
> <ParameterList name="AztecOO">
> <Parameter name="Type" type="string" value="AztecOO"/>
> <ParameterList name="Forward Solve">
> <ParameterList name="AztecOO Settings">
> <Parameter name="Aztec Solver" type="string"
> value="BiCGStab"/>
> <Parameter name="Aztec Preconditioner"
> type="string" value="ilut"/>
> <Parameter name="Overlap" type="int" value="1"/>
> <Parameter name="Graph Fill" type="int" value="0"/>
> <Parameter name="Drop Tolerance" type="double"
> value="0.0"/>
> <Parameter name="Fill Factor" type="double"
> value="10.0"/>
> <Parameter name="Steps" type="int" value="3"/>
> <Parameter name="Polynomial Order" type="int"
> value="3"/>
> <Parameter name="RCM Reordering" type="string"
> value="Enabled"/>
> <Parameter name="Orthogonalization"
> type="string" value="Classical"/>
> <Parameter name="Size of Krylov Subspace"
> type="int" value="1000"/>
> <Parameter name="Convergence Test" type="string"
> value="r0"/>
> <Parameter name="Ill-Conditioning Threshold"
> type="double" value="1e+11"/>
> <Parameter name="Output Frequency" type="int"
> value="1"/>
> </ParameterList>
> <Parameter name="Max Iterations" type="int"
> value="1"/>
> <Parameter name="Tolerance" type="double"
> value="1e-9"/>
> </ParameterList>
> <Parameter name="Output Every RHS" type="bool"
> value="true"/>
> <ParameterList name="VerboseObject">
> <Parameter name="Output File" type="string"
> value="none"/>
> <Parameter name="Verbosity Level" type="string"
> value="default"/>
> </ParameterList>
> </ParameterList>
>
>
>
> generates a runtime error:
>
>
> *******************************************************
> ***** Problem: Epetra::CrsMatrix
> ***** Preconditioned BICGSTAB solution
> *****
> Thyra::DefaultInverseLinearOp<double>{lows=Thyra::AztecOOLinearOpWithSolve{fwdOp=Thyra::EpetraLinearOp{op='Epetra_CrsMatrix',rangeDim=41443,domainDim=41443}},fwdSolveCriteria=DEFAULT,adjSolveCriteria=DEFAULT}
> ***** No scaling
>
> *******************************************************
>
> iter: 0 residual = 1.000000e+00
>
>
> *******************************************************
> ***** Problem: Epetra::CrsMatrix
> ***** Preconditioned BICGSTAB solution
> ***** ILUT( fill-in = 1.000e+01, drop = 0.000e+00)
> ***** with overlap = 1
> ***** No scaling
> ***** NOTE: convergence VARIES when the total
> number of
> ***** processors is changed.
>
> *******************************************************
>
> Error: Did not find previous factorization (requested
> by setting options[AZ_pre_calc] to AZ_reuse).
> To find this factorization, the following
> parameters must match the previous factorization:
> 1) Total number of unknowns.
> 2) options[AZ_overlap]
> 3) options[AZ_scaling]
> 4) options[AZ_precond]
> 5) options[AZ_reorder]
> 6) options[AZ_type_overlap]
> 7) options[AZ_subdomain_solve]
> 8) options[AZ_graph_fill]
> 9) params[AZ_ilut_fill]
> 10) params[AZ_drop]
> 11) data_org[AZ_name]
>
> Do you know why ?
>
> Bui
>
>
>
>
> On 09/20/2013 12:19 AM, Hoang Giang Bui wrote:
>
>
> Hi Eric
>
> I manage to know all the AztecOO settings by reading
> Stratimikos. However, it still didn't work as I
> expected. Even with the setting "Aztec Solver" as "LU"
> doesn't work as well. That's kind of strange. I want
> to ask if I did program correctly or not. In my case
> for the first step there are no pressure, so matrix
> has just one block. To build preconditioner using
> Teko, I invoke:
>
> Teuchos::RCP<const Teko::InverseFactory> inverseA =
> mInverseLibrary->getInverseFactory("AztecOO");
>
> Teko::LinearOp opA =
> Thyra::epetraLinearOp(blkExtractor.GetBlock(0, 0));
>
> Teko::LinearOp inv_rA = Teko::buildInverse(*inverseA,
> opA); //build the preconditioner using Teko InverseFactory
>
> Teuchos::RCP<const Epetra_Operator> opPrec =
> Teuchos::rcp_dynamic_cast<const Epetra_Operator>(inv_rA);
>
> Teuchos::RCP<Epetra_Operator> mPrec =
> Teuchos::rcp_const_cast<Epetra_Operator>(opPrec);
>
> .............
>
> aztec_solver.SetPrecOperator(*mPrec);
>
> Do you think this is correct?
>
> Bui
>
>
>
>
>
> On Thu, Sep 19, 2013 at 8:14 PM, Cyr, Eric C
> <eccyr at sandia.gov <mailto:eccyr at sandia.gov>> wrote:
>
> Yeah, thats what you want. Instead of using the string
> "Ifpack" when you
> call the sub solve, use "AztecOO". Teko is "smart"
> enough to know that a
> solver can be used as a preconditioner. (You can also
> use Amesos, if you
> want a direct solver) If you'd like to know how to
> specify a
> preconditioner for Azteco when used as a sub solve let
> me know.
>
> Eric
>
>
> On 9/19/13 12:04 PM, "Hoang Giang Bui"
> <hgbk2008 at gmail.com <mailto:hgbk2008 at gmail.com>> wrote:
>
> >Hi Eric
> >
> >Yes, that what I currently use. For example in
> attached file. (The
> >AztecOO section is irrelevant)
> >
> >Bui
> >
> >On 09/19/2013 07:45 PM, Cyr, Eric C wrote:
> >> Are you using the Teko parameter list, and defining
> an InverseFactory
> >> through it?
> >>
> >> Eric
> >>
> >> On 9/19/13 11:08 AM, "Hoang Giang Bui"
> <hgbk2008 at gmail.com <mailto:hgbk2008 at gmail.com>> wrote:
> >>
> >>> Dear Eric
> >>>
> >>> I think Stratimikos support wrapping AztecOO as
> solver but not
> >>> preconditioner. Do you have a working script that
> allows AztecOO as
> >>> preconditioner ?
> >>>
> >>> Bui
> >>>
> >>>
> >>> On 09/19/2013 03:42 PM, Cyr, Eric C wrote:
> >>>> It is already an inverse factory in Teko. AztecOO
> is wrapped by
> >>>> Stratimikos. Anything in Stratimikos is
> accessible to Teko (This is
> >>>>how
> >>>> you access Ifpack for instance). If you go to the
> Stratimikos page and
> >>>> look up the AztecOO parameters you should be able
> to modify those to
> >>>>be
> >>>> accessible by Teko. Let me know if you need more
> help.
> >>>>
> >>>> Regarding the ILUT in Ifpack. I have to say that
> I don't use it and
> >>>> think
> >>>> there may be problems with its implementation.
> The ILU in Ifpack is
> >>>> solid
> >>>> and we get a lot of use out it.
> >>>>
> >>>> Eric
> >>>>
> >>>> On 9/19/13 4:43 AM, "Hoang Giang Bui"
> <hgbk2008 at gmail.com <mailto:hgbk2008 at gmail.com>> wrote:
> >>>>
> >>>>> That's fine. I can use AztecOO with ilut since
> it works well in my
> >>>>> case.
> >>>>> In fact, I used Ifpack as sub-preconditioner for
> my block
> >>>>> preconditioner. This block preconditioner
> doesn't work since
> >>>>> Ifpack_ILUT
> >>>>> failed. It is not sure that AztecOO ILUT will be
> success if it's
> >>>>> applied
> >>>>> as sub-preconditioners though. However I wonder
> if there is a way to
> >>>>> introduce AztecOO as an InverseFactory in Teko?
> >>>>>
> >>>>> Best regards
> >>>>> Giang Bui
> >>>>>
> >>>>>
> >>>>>
> >>>>> On 09/18/2013 07:16 PM, Erik Boman wrote:
> >>>>>> Unfortunately, the incomplete factorization
> parameters are not well
> >>>>>> documented so looking at the source code is
> best. Yes, Ifpack_ILUT
> >>>>>> interprets "ilut level-of-fill" to be the ratio
> of nonzeros in the
> >>>>>> preconditioner relative to the original matrix,
> so a value of 1.0
> >>>>>>or a
> >>>>>> bit higher is reasonable. (Note: 1.0 in Ifpack
> roughly corresponds
> >>>>>>to
> >>>>>> 0 in AztecOO.) If you set it to 50, you will in
> most cases compute a
> >>>>>> complete factorization (but in a very slow
> way!). As a sanity check,
> >>>>>> you can try using Amesos (by default, KLU) as
> your subdomain solver.
> >>>>>>
> >>>>>> There are several other parameters in Ifpack
> that may be helpful.
> >>>>>>For
> >>>>>> example, the absolute and relative threshold
> parameters may make
> >>>>>>your
> >>>>>> preconditioner more robust. Confusingly, these
> prescribe a diagonal
> >>>>>> perturbation (aka Manteuffel shift).
> >>>>>>
> >>>>>> Erik
> >>>>>>
> >>>>>> Hoang Giang Bui wrote:
> >>>>>>> Hi Chris
> >>>>>>>
> >>>>>>> I didn't see the range of value of ilut level
> of fill in Ifpack
> >>>>>>>user
> >>>>>>> guide yet. But looking in the code of
> Ifpack_ILUT, I'm quite sure
> >>>>>>> that the level of fill indicates the number of
> nonzeros in the
> >>>>>>> preconditioner compare to initial nonzeros.
> Therefore its value can
> >>>>>>> be bigger than 1.
> >>>>>>>
> >>>>>>> Giang Bui
> >>>>>>>
> >>>>>>>
> >>>>>>> On 09/18/2013 04:43 AM, Chris Jackson wrote:
> >>>>>>>> I don¹t know if this applies to the one you
> are talking about,
> >>>>>>>>but I
> >>>>>>>> recall that with one of the ILUT
> preconditioners the fill value is
> >>>>>>>> expected to be between 0.0 and 1.0. 1.0
> meant essentially we were
> >>>>>>>> finding the inverse of the matrix. Before we
> figured that out we
> >>>>>>>> were always astounded that BiCGStab was
> converging in 2
> >>>>>>>>iterationsŠ
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Chris Jackson
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> *From:*
> trilinos-users-bounces at software.sandia.gov
> <mailto:trilinos-users-bounces at software.sandia.gov>
> >>>>>>>>
> [mailto:trilinos-users-bounces at software.sandia.gov
> <mailto:trilinos-users-bounces at software.sandia.gov>]
> *On Behalf Of
> >>>>>>>> *Hoang Giang Bui
> >>>>>>>> *Sent:* Tuesday, September 17, 2013 6:28 PM
> >>>>>>>> *To:* Erik Boman
> >>>>>>>> *Cc:* trilinos-users at software.sandia.gov
> <mailto:trilinos-users at software.sandia.gov>
> >>>>>>>> *Subject:* Re: [Trilinos-Users] ilut setting
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Hi Erik
> >>>>>>>>
> >>>>>>>> I tried to increase "fact: ilut
> level-of-fill" to 50.0 and it
> >>>>>>>>still
> >>>>>>>> doesn't converge. In fact, with this value
> the preconditioner take
> >>>>>>>> very long to compute. Is there other option
> we can set for Ifpack
> >>>>>>>> ILUT?
> >>>>>>>>
> >>>>>>>> Giang Bui
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Tue, Sep 17, 2013 at 8:01 PM, Erik Boman
> <egboman at sandia.gov <mailto:egboman at sandia.gov>
> >>>>>>>> <mailto:egboman at sandia.gov
> <mailto:egboman at sandia.gov>>> wrote:
> >>>>>>>>
> >>>>>>>> Giang Bui,
> >>>>>>>>
> >>>>>>>> You will not get exactly the same answer
> because the ILUT
> >>>>>>>> implementations are different in AztecOO and
> Ifpack. Also, the
> >>>>>>>> meaning of "fill" may be slightly different.
> Try increase the
> >>>>>>>>value
> >>>>>>>> of "fact: ilut level-of-fill" in the Ifpack
> parameter to see if
> >>>>>>>>you
> >>>>>>>> can make it converge.
> >>>>>>>>
> >>>>>>>> Erik
> >>>>>>>>
> >>>>>>>> Hoang Giang Bui wrote:
> >>>>>>>>
> >>>>>>>> Dear Trilinos developers,
> >>>>>>>>
> >>>>>>>> Is there difference between 2 settings:
> >>>>>>>>
> >>>>>>>> solver_parameters.set("AZ_solver", "AZ_bicgstab")
> >>>>>>>> solver_parameters.set("AZ_kspace", 1000)
> >>>>>>>> solver_parameters.set("AZ_output", 100)
> >>>>>>>> solver_parameters.set("AZ_precond",
> "AZ_dom_decomp")
> >>>>>>>> solver_parameters.set("AZ_subdomain_solve",
> "AZ_ilut")
> >>>>>>>> solver_parameters.set("AZ_drop", 0.0)
> >>>>>>>> solver_parameters.set("AZ_ilut_fill", 10.0)
> >>>>>>>> aztec_solver.SetParameters(solver_parameter,
> true);
> >>>>>>>>
> >>>>>>>> And:
> >>>>>>>> solver_parameters.set("AZ_solver", "AZ_bicgstab")
> >>>>>>>> solver_parameters.set("AZ_kspace", 1000)
> >>>>>>>> solver_parameters.set("AZ_output", 100)
> >>>>>>>> solver_parameters.set("AZ_precond", "AZ_none")
> >>>>>>>> aztec_solver.SetParameters(solver_parameter,
> true);
> >>>>>>>> IFPreconditionerType = "ILUT"
> >>>>>>>> preconditioner_parameters.set("fact: ilut
> level-of-fill", 10.0);
> >>>>>>>> preconditioner_parameters.set("fact: drop
> tolerance", 0.0);
> >>>>>>>> overlap_level = 1
> >>>>>>>> mPrec =
> Teuchos::rcp(Factory.Create(IFPreconditionerType, &rA,
> >>>>>>>> overlap_level));
> >>>>>>>> mPrec->SetParameters(preconditioner_parameters);
> >>>>>>>>
> aztec_solver.SetPrecOperator(&*(mpPrec->GetOperator()))
> >>>>>>>>
> >>>>>>>> I thought it all resulted in
> Additive-Schwartz preconditioner with
> >>>>>>>> ILUT as local subdomain preconditioner. But
> it gives different
> >>>>>>>> performance. The first setting works well but
> the second failed to
> >>>>>>>> converge.
> >>>>>>>>
> >>>>>>>> Best regards
> >>>>>>>> Giang Bui
> >>>>>>>>
> >>>>>>>> _______________________________________________
> >>>>>>>> Trilinos-Users mailing list
> >>>>>>>> Trilinos-Users at software.sandia.gov
> <mailto:Trilinos-Users at software.sandia.gov>
> >>>>>>>> <mailto:Trilinos-Users at software.sandia.gov
> <mailto:Trilinos-Users at software.sandia.gov>>
> >>>>>>>>
> http://software.sandia.gov/mailman/listinfo/trilinos-users
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> With Best Regards !
> >>>>>>>> Giang Bui
> >>>>>>>>
> >>>>>>>> To learn and to excel
> >>>>>>>>
> >>>>> _______________________________________________
> >>>>> Trilinos-Users mailing list
> >>>>> Trilinos-Users at software.sandia.gov
> <mailto:Trilinos-Users at software.sandia.gov>
> >>>>>
> http://software.sandia.gov/mailman/listinfo/trilinos-users
> >
>
>
>
>
> --
> With Best Regards !
> Giang Bui
>
> To learn and to excel
>
>
>
>
>
>
>
>
> --
> With Best Regards !
> Giang Bui
>
> To learn and to excel
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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