/*
 * Copyright (C) 2008-2012 Delft University of Technology - All rights reserved.
 *
 * Author: Reijer Idema
 */

/**
 * @file PetscUtils.def
 * PETSc Utilities namespace definitions.
 */
#ifndef PetscUtils_Namespace_def
#define PetscUtils_Namespace_def

#define PETSCUTILS_NAMESPACE_NAME	PetscUtils_Idema								///< Full name of the PetscUtils namespace.
#define PETSCUTILS_NAMESPACE_BEGIN	namespace PETSCUTILS_NAMESPACE_NAME {			///< Begin a PetscUtils namespace block.
#define PETSCUTILS_NAMESPACE_END	}												///< End a PetscUtils namespace block.
#define PETSCUTILS_NAMESPACE_USING	using namespace PETSCUTILS_NAMESPACE_NAME;		///< Using the PetscUtils namespace.

#define PETSC_UTILS_IMPL_TRUECONST	1	///< If nonzero use low level re-implementation that is const correct, else use PETSc implementation with const_cast 

/**
 * @namespace PetscUtils_Idema
 * PETSc Utilities namespace.
 * @par Aliases
 * PetscUtils
 */
PETSCUTILS_NAMESPACE_BEGIN
PETSCUTILS_NAMESPACE_END

namespace PetscUtils = PetscUtils_Idema;

#endif // PetscUtils_Namespace_def
