<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jul 14, 2015 at 9:35 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_SCALAR is not a symbol either. I skimmed through
the names in the shared library, and it doesn't look like any data
type information is there.</div></div></blockquote><div><br></div><div>Damn, yes PETSC_SCALAR and PETSC_REAL are defines. I think we are careful about this so that you can use</div><div>a real and complex PETSc together by building multiple versions of the library (no symbol clash). However, I believe</div><div>you can use</div><div><br></div><div> PetscDataTypeFromString("scalar", &stype, &found);</div><div> PetscDataTypeFromString("complex", &ctype, &found);</div><div> isComplex = stype == ctype;</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 class=""><font color="#888888"><br>
Jared Crean</font></span><div><div class="h5"><br>
<br>
On 7/14/2015 9:22 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 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><font color="#888888"><br>
<br>
Jared Crean</font></span>
<div>
<div><br>
<br>
On 7/14/2015 1:04 PM, Matthew Knepley wrote:<br>
</div>
</div>
</div>
<div>
<div>
<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>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>