<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 14, 2015 at 8:03 PM, Jared Crean <span dir="ltr"><<a href="mailto:jcrean01@gmail.com" target="_blank">jcrean01@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> Hello,<br>
PETSC_USE_COMPLEX isn't a symbol in the shared library
when Petsc is built with complex scalars, so I don't see a way to
access it at runtime. I'll have to write a simple C program that
uses sizeof() and write the value to a file.<br></div></div></blockquote><div><br></div><div>That is crazy. How about</div><div><br></div><div> isComplex = PETSC_COMPLEX == PETSC_SCALAR</div><div><br></div><div> Matt</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><div>
As for the MPI communicator, the julia MPI package uses a
C int to store it, so I will typealias to that to ensure
consistency. If an MPI implementation uses an 8 byte pointer,
MPI.jl will have to change too.<span class=""><font color="#888888"><br>
<br>
Jared Crean</font></span><div><div class="h5"><br>
<br>
On 7/14/2015 1:04 PM, Matthew Knepley wrote:<br>
</div></div></div><div><div class="h5">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Jul 14, 2015 at 10:56 AM,
Jared Crean <span dir="ltr"><<a href="mailto:jcrean01@gmail.com" target="_blank">jcrean01@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> Hello everyone,<br>
I got the package in a reasonably working
state and Travis testing setup, so I am putting the
package up on Github.<br>
<br>
<a href="https://github.com/JaredCrean2/PETSc.jl" target="_blank">https://github.com/JaredCrean2/PETSc.jl</a><br>
<br>
There is still a lot more work to do, but its
a start.<br>
<br>
A couple questions:<br>
When looking though the code, I noticed the
MPI communicator is being passed as a 64 bit integer.
mpi.h typedefs it as an int, so shouldn't it be a 32
bit integer?<br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Some MPI implementations store the communicator as a
pointer, which may be 64 bits. I think the only thing the
standard says is</div>
<div>that MPI_Comm should be defined.</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div> Also, is there a way to find out at
runtime what datatype a PetscScalar is? It appears
PetscDataTypeGetSize does not accept PetscScalar as an
argument.</div>
</div>
</blockquote>
<div><br>
</div>
<div>If PETSC_USE_COMPLEX is defined its PETSC_COMPLEX,
otherwise its PETSC_REAL. You can also just use
sizeof(PetscScalar). What do you</div>
<div>want to do?</div>
<div><br>
</div>
<div> Thanks,</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div><span><font color="#888888"><br>
Jared Crean</font></span>
<div>
<div><br>
<br>
<br>
On 07/06/2015 09:02 AM, Matthew Knepley wrote:<br>
</div>
</div>
</div>
<div>
<div>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Mon, Jul 6, 2015
at 4:59 AM, Patrick Sanan <span dir="ltr"><<a href="mailto:patrick.sanan@gmail.com" target="_blank">patrick.sanan@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr">I had a couple of brief
discussions about this at Juliacon as
well. I think it would be useful, but
there are a couple of things to think
about from the start of any new attempt
to do this:
<div>1. As Jack pointed out, one issue
is that the PETSc library must be
compiled for a particular precision.
This raises some questions - should
several versions of the library be
built to allow for flexibility?</div>
<div>2. An issue with wrapping PETSc is
always that the flexibility of using
the PETSc options paradigm is reduced
- how can this be addressed?
Could/should an expert user be able to
access the options database directly,
or would this be too much violence to
the wrapper abstraction?</div>
</div>
</blockquote>
<div><br>
</div>
<div>I have never understood why this is an
issue. Can't you just wrap our interface
level, and use the options just as we do?
That</div>
<div>is essentially what petsc4py does. What
is limiting in this methodology? On the
other hand, requiring specific types, ala
FEniCS,</div>
<div>is very limiting.</div>
<div><br>
</div>
<div> Matt</div>
<div> </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="gmail_extra">
<div class="gmail_quote">On Sat, Jul 4,
2015 at 11:00 PM, Jared Crean <span dir="ltr"><<a href="mailto:jcrean01@gmail.com" target="_blank">jcrean01@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"> <big>Hello,<br>
I am a graduate student
working on a CFD code written in
Julia, and I am interested in
using Petsc as a linear solver
(and possibly for the non-linear
solves as well) for the code. I
discovered the Julia wrapper
file Petsc.jl in Petsc and have
updated it to work with the
current version of Julia and the
MPI.jl package, using only MPI
for communication (I don't think
Julia's internal parallelism
will scale well enough, at least
not in the near future).<br>
<br>
I read the discussion on
Github [<a href="https://github.com/JuliaLang/julia/issues/2645" target="_blank">https://github.com/JuliaLang/julia/issues/2645</a>],
and it looks like <br>
there currently is not a
complete package to access Petsc
from Julia. With your
permission, I would like to use
the Petsc.jl file as the basis
for developing a package. My
plan is create a lower level
interface that exactly wraps
Petsc functions, and then
construct a higher level
interface, probably an object
that is a subtype of Julia's
AbstractArray, that allows users
to store values into Petsc
vectors and matrices. I am less
interested in integrating
tightly with Julia's existing
linear algebra capabilities than
ensuring good scalability. The
purpose of the high level
interface it simple to populate
the vector or matrix.<br>
<br>
What do you think, both
about using the Petsc.jl file
and the overall approach?<span><font color="#888888"><br>
<br>
Jared Crean</font></span></big><br>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>What most experimenters take for granted
before they begin their experiments is
infinitely more interesting than any results
to which their experiments lead.<br>
-- Norbert Wiener</div>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<div>What most experimenters take for
granted before they begin their experiments is infinitely
more interesting than any results to which their experiments
lead.<br>
-- Norbert Wiener</div>
</div>
</div>
</blockquote>
<br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>