[Trilinos-Users] Best practices for parallel solutions?

Nico Schlömer nico.schloemer at gmail.com
Mon Dec 12 15:38:17 MST 2011


You basically want to specialize

NOX::Epetra::Interface::Required,
http://trilinos.sandia.gov/packages/docs/r10.8/packages/nox/doc/html/classNOX_1_1Epetra_1_1Interface_1_1Required.html
NOX::Epetra::Interface::Jacobian,
NOX::Epetra::Interface::Preconditioner,

depending on how much information you want to pass to NOX.
NOX::Epetra::Interface::Required should be okay to start with and test
your nonlinear problem without Jacobian (NOX will do finite
differencing).
computeF() in NOX::Epetra::Interface::Required required you to get
familar with Epetra_Vectors, but that's not too much of a deal.

For an example, you could look at
$TRILINOS_DIR/packages/nox/examples/epetra/NOX_1DFEMNonlinear/.

--Nico




On Mon, Dec 12, 2011 at 11:30 PM, Paul Dionne <pjd at cfdrc.com> wrote:
> Thanks Mike and Nico.  I'll look into FECrsMatrix and NOX and let you know
> how it goes.  Can you point me to a good NOX example for a nonlinear
> solution of [A]{x}={b}?
>
>
> On 12/12/2011 4:18 PM, Nico Schlömer wrote:
>>
>> Hi Paul,
>>
>> for solving nonlinear problems, you might want to take a look at the
>> NOX package as well. You specify the linear (Jacobian) operator once
>> (e.g., as an Epetra_FECrsMatrix as suggested by Mike), and NOX will
>> take care of all the rest. -- No need for you to think about whether a
>> copy would be efficient or not.
>>
>> --Nico
>>
>>
>>
>>
>> On Mon, Dec 12, 2011 at 9:56 PM, Paul Dionne<pjd at cfdrc.com>  wrote:
>>>
>>> I'd like to know the recommended practice for solving parallel linear
>>> systems.  I have an implicit finite-volume solver and thus I have ghost cell
>>> links during assembly.  I found a presentation entitled
>>> "HerouxEpetraConcepts.pptx" that suggested using an assembly map and a
>>> solver map.  After assembly, the following commands were given in the
>>> presentation:
>>>
>>> Epetra_Export Exporter(AssemblyMap, SolverMap);
>>> Epetra_CrsMatrix SolverMatrix(Copy, SolverMap, 0);
>>> SolverMatrix.Export(AssemblyMatrix, Exporter, Add);
>>> SolverMatrix.FillComplete();
>>>
>>> My problems are nonlinear so I solve the linear system several times each
>>> time step.  Thus, I was wondering about the efficiency and memory
>>> requirements of having 2 matrices and performing this matrix copy each time
>>> I solve.
>>>
>>> Is this the current recommended practice?
>>>
>>> I'd also like to know how best to get the ghost cell values after the
>>> solution (without doing it myself through MPI).  I'm trying to get it to
>>> work using Epetra_Export but not having much luck.
>>>
>>> Thanks for any assistance.
>>>
>>>
>>> _______________________________________________
>>> Trilinos-Users mailing list
>>> Trilinos-Users at software.sandia.gov
>>> http://software.sandia.gov/mailman/listinfo/trilinos-users
>>>
>
> --
> Paul J. Dionne
> Technnical Fellow
> CFD Research Corporation
> 215 Wynn Drive, 5th floor
> Huntsville, Al  35805
> (256) 726-4837
> http://www.cfdrc.com
>
> Confidentiality Notice
>
> The information contained in this communication and its attachments is
> intended only for the use of the individual to whom it is addressed and may
> contain information that is legally privileged, confidential, or exempt from
> disclosure. If the reader of this message is not the intended recipient, you
> are hereby notified that any dissemination, distribution, copying, or
> reliance on this communication is strictly prohibited. If you have received
> this communication in error, please notify confidentiality at cfdrc.com
> (256-726-4800) and delete the communication without retaining any copies.
>




More information about the Trilinos-Users mailing list