Hi John,
I tried compiling my simple test code (pasted) with -DNDEBUG flag. I don't
get the error due to ghosted vector. The problem is
libmesh_init.comm().size() is always 1 irrespective of how many processes I
run it with. I also tried initializing MPI before libmesh and passing the
communicator, but the same happens.
I am completely lost on where I'm going wrong with the LibMesh build! Any
help is appreciated.
Thanks,
Harshad
petsc_vector_test.cpp:
#include "libmesh.h"
#include "petsc_vector.h"
using namespace libMesh;
int main(int argc, char* argv[])
{
MPI_Init(&argc, &argv);
int mpi_rank, mpi_size;
MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank);
MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
LibMeshInit libmesh_init(argc, argv, MPI_COMM_WORLD);
Parallel::Communicator comm;
libmesh_init.comm().duplicate(comm);
int num_procs = comm.size();
int rank = comm.rank();
unsigned int N = 60;
unsigned int n = 60/num_procs;
std::vector<unsigned int> send_list(2);
if(num_procs != 1)
{
if(rank != 0)
send_list[0] = rank*n-1;
else
send_list[0] = n+2;
if(rank != num_procs - 1)
send_list[1] = (rank+1)*n+1;
else
send_list[1] = rank*n-2;
}
else
{
send_list[0] = 0;
send_list[1] = N-1;
}
PetscVector<double> parallel(comm, N, n, PARALLEL);
for(unsigned int i=0; i<n; i++)
parallel.set(rank*n+i, rank*n+i);
parallel.close();
PetscVector<double> *ghosted = NULL;
if(num_procs != 1)
ghosted = new PetscVector<double>(comm, N, n+2, send_list, GHOSTED);
else
ghosted = new PetscVector<double>(comm, N, n, send_list, GHOSTED);
parallel.localize(*ghosted, send_list);
double a = (*ghosted)(send_list[0]);
double b = (*ghosted)(send_list[1]);
printf("MPI_num_procs = %d, LibMesh_num_procs = %d, MPI_rank = %d,
LibMesh_rank = %d, a = %f, b = %f\n", mpi_size, num_procs, mpi_rank, rank,
a, b);
delete ghosted;
}
On Tue, Mar 8, 2016 at 7:45 PM, Harshad Sahasrabudhe <[email protected]>
wrote:
> Forgot to mention, this probably indicates that something is very wrong
>> with your build, i.e. you are linking against a out-of-date debug version
>> of the library by accident, or something else equally weird. I would
>> definitely try to fix this issue before worrying about other issues.
>
>
> It seems NDEBUG is not defined in libmesh_config.h for me, which is very
> weird. I'm not sure if that's the place at which it should be defined, but
> looking at include/utils/restore_warnings.h, since it's used right after
> #include "libmesh_config.h" I'm guessing it should be there. I get
> libmesh_opt as the library, but NDEBUG still isn't defined! Here is the
> configure command I'm using:
>
> ./configure PETSC_DIR=$(PETSC_REAL_BUILD) MPIHOME=$(MPIHOME)
> PETSC_ARCH=$(PETSC_REAL_ARCH) \
> F77="$(MPIF77)" CC="$(MPICC)" GCC="$(GCC)" CXX="$(MPICXX)" --enable-vtk
> --with-vtk-include=$(VTKINC_PATH) \
> --with-vtk-lib=$(VTKLIB_PATH) --disable-tetgen --disable-nemesis
> --with-methods="opt" --with-metis=PETSc --enable-default-comm-world \
> --enable-amr --enable-shared=yes --disable-cxx11
> --enable-legacy-include-paths --disable-strict-lgpl --disable-examples
> --enable-slepc;
>
> I have attached the resultant config.log and libmesh_config.h. Any ideas
> what could be causing this issue?
>
> Thanks,
> Harshad
>
> On Tue, Mar 8, 2016 at 4:14 PM, Harshad Sahasrabudhe <[email protected]>
> wrote:
>
>> Hi John,
>>>
>>>
>>> Forgot to mention, this probably indicates that something is very wrong
>>> with your build, i.e. you are linking against a out-of-date debug version
>>> of the library by accident, or something else equally weird. I would
>>> definitely try to fix this issue before worrying about other issues.
>>
>>
>> It definitely looks like I'm linking with a debug version too. I need to
>> find out where that's happening. Thanks for your insights!
>>
>> Harshad
>>
>>>
>>
>
------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users