Commit a4f8379d authored by Yaroslav's avatar Yaroslav

Resolving conflict

parents f5709f23 a0ec2f25
......@@ -136,8 +136,8 @@ AX_LIB_PETSC()
AC_LANG_PUSH([C++])
AC_CHECK_HEADER(quadmath.h, , [])
AC_CHECK_LIB(quadmath, sinq, [ AC_CHECK_HEADER( quadmath.h ,[AC_DEFINE(HAVE_LIBQUADMATH,[],[Have quad math lib])
LIBQUADMATH=" -lquadmath "],[])
AC_CHECK_LIB(quadmath, sinq, [ AC_DEFINE(HAVE_LIBQUADMATH,[],[Have quad math lib])
LIBQUADMATH=" -lquadmath "
], [])
AC_LANG_POP([C++])
......@@ -159,6 +159,14 @@ AX_LIB_HILBERT([],[echo "Cannot detect libhilbert, use the --with-libhilbert opt
INCLUDES_PATH+=" -I/usr/local/include -I. -I../../openfpm_devices/src -I../../openfpm_data/src -I../../openfpm_io/src -I../../openfpm_vcluster/src -I../../src"
####### Detect OpenMP
AX_OPENMP([CFLAGS="$OPENMP_CFLAGS"
LDFLAGS="$OPENMP_LDFLAGS"],[])
AC_SUBST(OPENMP_CFLAGS)
AC_SUBST(OPENMP_LDFLAGS)
###### Check for se-class1
AC_MSG_CHECKING(whether to build with security enhancement class1)
......
......@@ -102,8 +102,10 @@ AC_DEFUN([AX_LIB_PETSC], [
old_CC=$CC
old_CFLAGS=$CFLAGS
old_LDFLAGS=$LDFLAGS
CFLAGS="-I$with_petsc/include $HDF5_INCLUDE $METIS_INCLUDE "
LDFLAGS="-L$with_petsc/lib $HDF5_LDFLAGS $HDF5_LIBS $METIS_LIB -lmetis "
AX_OPENMP([CFLAGS="$OPENMP_CFLAGS"
LDFLAGS="$OPENMP_LDFLAGS"],[])
CFLAGS="$CFLAGS -I$with_petsc/include $HDF5_INCLUDE $METIS_INCLUDE "
LDFLAGS="$LDFLAGS -L$with_petsc/lib $HDF5_LDFLAGS $HDF5_LIBS $METIS_LIB -lmetis "
CC=$CXX
AC_LANG_SAVE
......
#! /bin/bash
echo "RUN numerics test"
source $HOME/openfpm_vars
mpirun -np $3 ./src/numerics
if [ $? -ne 0 ]; then
curl -X POST --data "payload={\"icon_emoji\": \":jenkins:\", \"username\": \"jenkins\" , \"attachments\":[{ \"title\":\"Error:\", \"color\": \"#FF0000\", \"text\":\"$2 failed to complete the openfpm_numerics test \" }] }" https://hooks.slack.com/services/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
exit 1 ;
fi
curl -X POST --data "payload={\"icon_emoji\": \":jenkins:\", \"username\": \"jenkins\" , \"attachments\":[{ \"title\":\"Info:\", \"color\": \"#00FF00\", \"text\":\"$2 completed succeffuly the openfpm_numerics test \" }] }" https://hooks.slack.com/services/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
......@@ -45,7 +45,7 @@ class Avg
* In case of non staggered case this function just return a null grid_key, in case of staggered,
* it calculate how the operator shift the calculation in the cell
*
* \param position where we are calculating the derivative
* \param pos position where we are calculating the derivative
* \param gs Grid info
* \param s_pos staggered position of the properties
*
......@@ -77,7 +77,7 @@ class Avg<d,arg,Sys_eqs,CENTRAL>
* conditions it is a distributed map
*
* \param g_map It is the map explained in FDScheme
* \param k_map position where the average is calculated
* \param kmap position where the average is calculated
* \param gs Grid info
* \param cols non-zero colums calculated by the function
* \param coeff coefficent (constant in front of the derivative)
......@@ -113,7 +113,7 @@ class Avg<d,arg,Sys_eqs,CENTRAL>
*
* It follow the same concept of central derivative
*
* \param position where we are calculating the derivative
* \param pos position where we are calculating the derivative
* \param gs Grid info
* \param s_pos staggered position of the properties
*
......@@ -160,7 +160,7 @@ class Avg<d,arg,Sys_eqs,FORWARD>
* conditions it is a distributed map
*
* \param g_map It is the map explained in FDScheme
* \param k_map position where the average is calculated
* \param kmap position where the average is calculated
* \param gs Grid info
* \param cols non-zero colums calculated by the function
* \param coeff coefficent (constant in front of the derivative)
......@@ -188,7 +188,7 @@ class Avg<d,arg,Sys_eqs,FORWARD>
* In case of non staggered case this function just return a null grid_key, in case of staggered,
* the FORWARD scheme return the position of the staggered property
*
* \param position where we are calculating the derivative
* \param pos position where we are calculating the derivative
* \param gs Grid info
* \param s_pos staggered position of the properties
*
......@@ -220,7 +220,7 @@ class Avg<d,arg,Sys_eqs,BACKWARD>
* conditions it is a distributed map
*
* \param g_map It is the map explained in FDScheme
* \param k_map position where the average is calculated
* \param kmap position where the average is calculated
* \param gs Grid info
* \param cols non-zero colums calculated by the function
* \param coeff coefficent (constant in front of the derivative)
......@@ -247,7 +247,7 @@ class Avg<d,arg,Sys_eqs,BACKWARD>
* In case of non staggered case this function just return a null grid_key, in case of staggered,
* the BACKWARD scheme return the position of the staggered property
*
* \param position where we are calculating the derivative
* \param pos position where we are calculating the derivative
* \param gs Grid info
* \param s_pos staggered position of the properties
*
......
......@@ -22,57 +22,56 @@
BOOST_AUTO_TEST_SUITE( eq_test_suite_3d )
//!
//! Specify the general caratteristic of system to solve
struct lid_nn_3d_eigen
{
// dimensionaly of the equation ( 3D problem ...)
//! dimensionaly of the equation ( 3D problem ...)
static const unsigned int dims = 3;
// number of fields in the system
//! number of fields in the system
static const unsigned int nvar = 4;
// boundary at X and Y
//! boundary at X and Y
static const bool boundary[];
// type of space float, double, ...
//! type of space float, double, ...
typedef float stype;
// type of base grid
//! type of base grid
typedef grid_dist_id<3,float,aggregate<float[3],float>,CartDecomposition<3,float>> b_grid;
// type of SparseMatrix for the linear solver
//! type of SparseMatrix for the linear solver
typedef SparseMatrix<double,int> SparseMatrix_type;
// type of Vector for the linear solver
//! type of Vector for the linear solver
typedef Vector<double> Vector_type;
// Define the underline grid is staggered
//! Define the underline grid is staggered
static const int grid_type = STAGGERED_GRID;
};
struct lid_nn_3d_petsc
{
// dimensionaly of the equation ( 3D problem ...)
//! dimensionaly of the equation ( 3D problem ...)
static const unsigned int dims = 3;
// number of fields in the system
//! number of fields in the system
static const unsigned int nvar = 4;
// boundary at X and Y
//! boundary at X and Y
static const bool boundary[];
// type of space float, double, ...
//! type of space float, double, ...
typedef float stype;
// type of base grid
//! type of base grid
typedef grid_dist_id<3,float,aggregate<float[3],float>,CartDecomposition<3,float>> b_grid;
// type of SparseMatrix for the linear solver
//! type of SparseMatrix for the linear solver
typedef SparseMatrix<double,int,PETSC_BASE> SparseMatrix_type;
// type of Vector for the linear solver
//! type of Vector for the linear solver
typedef Vector<double,PETSC_BASE> Vector_type;
// Define the underline grid is staggered
//! Define the underline grid is staggered
static const int grid_type = STAGGERED_GRID;
};
......@@ -84,14 +83,13 @@ const bool lid_nn_3d_petsc::boundary[] = {NON_PERIODIC,NON_PERIODIC,NON_PERIODIC
// Constant Field
struct eta
{
//! define that eta is a constant field
typedef void const_field;
//! therutn the value of the constant
static float val() {return 1.0;}
};
//#define SYSEQ_TYPE lid_nn_3d_eigen;
//#include "Equations/stoke_flow_eq_3d.hpp"
template<typename solver_type,typename lid_nn_3d> void lid_driven_cavity_3d()
{
#include "Equations/stoke_flow_eq_3d.hpp"
......
LINKLIBS = $(LIBHILBERT_LIB) $(PETSC_LIB) $(SUITESPARSE_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(METIS_LIB) $(PARMETIS_LIB) $(DEFAULT_LIB) $(PTHREAD_LIBS) $(OPT_LIBS) $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_IOSTREAMS_LIB) $(HDF5_LDFLAGS) $(HDF5_LIBS) $(LIBQUADMATH)
LINKLIBS = $(OPENMP_LDFLAGS) $(LIBHILBERT_LIB) $(PETSC_LIB) $(SUITESPARSE_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS) $(METIS_LIB) $(PARMETIS_LIB) $(DEFAULT_LIB) $(PTHREAD_LIBS) $(OPT_LIBS) $(BOOST_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LIB) $(BOOST_IOSTREAMS_LIB) $(HDF5_LDFLAGS) $(HDF5_LIBS) $(LIBQUADMATH) $(OPENMP_LDFLAGS)
noinst_PROGRAMS = numerics
numerics_SOURCES = main.cpp ../../openfpm_vcluster/src/VCluster.cpp ../../openfpm_devices/src/memory/HeapMemory.cpp ../../openfpm_devices/src/memory/PtrMemory.cpp ../../openfpm_devices/src/Memleak_check.cpp
numerics_CXXFLAGS = $(AM_CXXFLAGS) $(HDF5_CPPFLAGS) $(INCLUDES_PATH) $(BOOST_CPPFLAGS) $(SUITESPARSE_INCLUDE) $(METIS_INCLUDE) $(PARMETIS_INCLUDE) $(EIGEN_INCLUDE) -I/usr/local/libhilbert/include -Wno-deprecated-declarations -Wno-unused-local-typedefs
numerics_CXXFLAGS = $(OPENMP_CFLAGS) $(LIBHILBERT_INCLUDE) $(AM_CXXFLAGS) $(HDF5_CPPFLAGS) $(INCLUDES_PATH) $(BOOST_CPPFLAGS) $(SUITESPARSE_INCLUDE) $(METIS_INCLUDE) $(PARMETIS_INCLUDE) $(EIGEN_INCLUDE) $(PETSC_INCLUDE) -Wno-deprecated-declarations -Wno-unused-local-typedefs
numerics_CFLAGS = $(CUDA_CFLAGS)
numerics_LDADD = $(LINKLIBS) -lparmetis -lmetis
nobase_include_HEADERS = Matrix/SparseMatrix.hpp Matrix/SparseMatrix_Eigen.hpp Matrix/SparseMatrix_petsc.hpp \
......
......@@ -24,22 +24,42 @@
template<typename T>
class triplet<T,PETSC_BASE>
{
//! Row of the sparse matrix
PetscInt row_;
//! Colum of the sparse matrix
PetscInt col_;
//! Value of the Matrix
PetscScalar val_;
public:
/*! \brief Return the row of the triplet
*
* \return the row index
*
*/
PetscInt & row()
{
return row_;
}
/*! \brief Return the colum of the triplet
*
* \return the colum index
*
*/
PetscInt & col()
{
return col_;
}
/*! \brief Return the value of the triplet
*
* \return the value
*
*/
PetscScalar & value()
{
return val_;
......
......@@ -499,12 +499,15 @@ public:
template<unsigned int prp>
class vector_dist_expression<prp,float>
{
//! constant value
float d;
public:
//! type of object the structure return then evaluated
typedef float vtype;
//! constrictir from constant value
inline vector_dist_expression(const float & d)
:d(d)
{}
......@@ -519,7 +522,9 @@ public:
/*! \brief Evaluate the expression
*
* It just return the velue set in the constructor
* It just return the value set in the constructor
*
* \return the constant value set in the constructor
*
*/
inline float value(const vect_dist_key_dx & k) const
......
......@@ -49,14 +49,6 @@ fun_name(const vector_dist_expression_op<exp1,exp2_,op1> & va)\
return exp_sum;\
}\
\
template<typename exp1, typename exp2_, unsigned int op1>\
inline vector_dist_expression_op<vector_dist_expression<0,double>,void,OP_ID>\
fun_name(double d)\
{\
vector_dist_expression_op<vector_dist_expression<0,double>,void,OP_ID> exp_sum( (vector_dist_expression<0,double>(d)) );\
\
return exp_sum;\
}\
\
template<unsigned int prp1, typename v1>\
inline vector_dist_expression_op<vector_dist_expression<prp1,v1>,void,OP_ID>\
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment