APBS  1.4.1
vhal.h File Reference

Contains generic macro definitions for APBS. More...

#include "stdio.h"
Include dependency graph for vhal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define APBS_TIMER_WALL_CLOCK   26
 APBS total execution timer ID.
 
#define APBS_TIMER_SETUP   27
 APBS setup timer ID.
 
#define APBS_TIMER_SOLVER   28
 APBS solver timer ID.
 
#define APBS_TIMER_ENERGY   29
 APBS energy timer ID.
 
#define APBS_TIMER_FORCE   30
 APBS force timer ID.
 
#define APBS_TIMER_TEMP1   31
 APBS temp timer #1 ID.
 
#define APBS_TIMER_TEMP2   32
 APBS temp timer #2 ID.
 
#define MAXMOL   5
 The maximum number of molecules that can be involved in a single PBE calculation.
 
#define MAXION   10
 The maximum number of ion species that can be involved in a single PBE calculation.
 
#define MAXFOCUS   5
 The maximum number of times an MG calculation can be focused.
 
#define VMGNLEV   4
 Minimum number of levels in a multigrid calculations.
 
#define VREDFRAC   0.25
 Maximum reduction of grid spacing during a focusing calculation.
 
#define VAPBS_NVS   4
 Number of vertices per simplex (hard-coded to 3D)
 
#define VAPBS_DIM   3
 Our dimension.
 
#define VAPBS_RIGHT   0
 Face definition for a volume. More...
 
#define MAX_SPHERE_PTS   50000
 Maximum number of points on a sphere. More...
 
#define VAPBS_FRONT   1
 Face definition for a volume. More...
 
#define VAPBS_UP   2
 Face definition for a volume. More...
 
#define VAPBS_LEFT   3
 Face definition for a volume. More...
 
#define VAPBS_BACK   4
 Face definition for a volume. More...
 
#define VAPBS_DOWN   5
 Face definition for a volume. More...
 
#define VPMGSMALL   1e-12
 A small number used in Vpmg to decide if points are on/off grid-lines or non-zer0 (etc.)
 
#define SINH_MIN   -85.0
 Used to set the min values acceptable for sinh chopping.
 
#define SINH_MAX   85.0
 Used to set the max values acceptable for sinh chopping.
 
#define MAX_HASH_DIM   75
 
#define VF77_MANGLE(name, NAME)   name
 Name-mangling macro for using FORTRAN functions in C code.
 
#define VFLOOR(value)   floor(value)
 Wrapped floor to fix floating point issues in the Intel compiler. More...
 
#define VEMBED(rctag)
 Allows embedding of RCS ID tags in object files. More...
 
#define PRINT_FUNC   __PRETTY_FUNCTION__
 
#define OS_SEP_STR   "/"
 
#define OS_SEP_CHAR   '/'
 
#define ANNOUNCE_FUNCTION
 
#define WARN_UNTESTED
 
#define WARN_PARTTESTED
 
#define VCHANNELEDMESSAGE0(channel, msg)
 
#define VCHANNELEDMESSAGE1(channel, msg, arg0)
 
#define VCHANNELEDMESSAGE2(channel, msg, arg0, arg1)
 
#define VCHANNELEDMESSAGE3(channel, msg, arg0, arg1, arg2)
 
#define VMESSAGE0(msg)   VCHANNELEDMESSAGE0(0, msg)
 
#define VMESSAGE1(msg, arg0)   VCHANNELEDMESSAGE1(0, msg, arg0)
 
#define VMESSAGE2(msg, arg0, arg1)   VCHANNELEDMESSAGE2(0, msg, arg0, arg1)
 
#define VMESSAGE3(msg, arg0, arg1, arg2)   VCHANNELEDMESSAGE3(0, msg, arg0, arg1, arg2)
 
#define VERRMSG0(msg)   VCHANNELEDMESSAGE0(2, msg)
 
#define VERRMSG1(msg, arg0)   VCHANNELEDMESSAGE1(2, msg, arg0)
 
#define VERRMSG2(msg, arg0, arg1)   VCHANNELEDMESSAGE2(2, msg, arg0, arg1)
 
#define VERRMSG3(msg, arg0, arg1, arg2)   VCHANNELEDMESSAGE3(2, msg, arg0, arg1, arg2)
 
#define VASSERT_MSG0(cnd, msg)
 
#define VASSERT_MSG1(cnd, msg, arg)
 
#define VASSERT_MSG2(cnd, msg, arg0, arg1)
 
#define VWARN_MSG0(cnd, msg)
 
#define VWARN_MSG1(cnd, msg, arg0)
 
#define VWARN_MSG2(cnd, msg, arg0, arg1)
 
#define VABORT_MSG0(msg)
 
#define VABORT_MSG1(msg, arg)
 
#define VABORT_MSG2(msg, arg0, arg1)
 
#define PRINT_INT(expr)
 
#define PRINT_DBL(expr)
 
#define VMALLOC(vmem, n, type)   ((type*)Vmem_malloc(vmem, n, sizeof(type)))
 
#define VFREE(vmem, n, type, ptr)   (Vmem_free(vmem, n, sizeof(type), (void **)&(ptr)))
 
#define VFILL(vec, n, val)
 
#define VCOPY(srcvec, dstvec, i, n)
 
#define VAT(array, i)   ((array)[(i) - 1])
 
#define RAT(array, i)   ((array) + i - 1)
 

Typedefs

typedef enum eVrc_Codes Vrc_Codes
 
typedef enum eVsol_Meth Vsol_Meth
 
typedef enum eVsurf_Meth Vsurf_Meth
 Declaration of the Vsurf_Meth type as the Vsurf_Meth enum.
 
typedef enum eVhal_PBEType Vhal_PBEType
 Declaration of the Vhal_PBEType type as the Vhal_PBEType enum.
 
typedef enum eVhal_IPKEYType Vhal_IPKEYType
 Declaration of the Vhal_IPKEYType type as the Vhal_IPKEYType enum.
 
typedef enum eVhal_NONLINType Vhal_NONLINType
 Declaration of the Vhal_NONLINType type as the Vhal_NONLINType enum.
 
typedef enum eVoutput_Format Voutput_Format
 Declaration of the Voutput_Format type as the VOutput_Format enum.
 
typedef enum eVbcfl Vbcfl
 Declare Vbcfl type.
 
typedef enum eVchrg_Meth Vchrg_Meth
 Declaration of the Vchrg_Meth type as the Vchrg_Meth enum.
 
typedef enum eVchrg_Src Vchrg_Src
 Declaration of the Vchrg_Src type as the Vchrg_Meth enum.
 
typedef enum eVdata_Type Vdata_Type
 Declaration of the Vdata_Type type as the Vdata_Type enum.
 
typedef enum eVdata_Format Vdata_Format
 Declaration of the Vdata_Format type as the Vdata_Format enum.
 

Enumerations

enum  eVrc_Codes { VRC_WARNING =-1, VRC_FAILURE =0, VRC_SUCCESS =1 }
 Return code enumerations. More...
 
enum  eVsol_Meth {
  VSOL_CGMG, VSOL_Newton, VSOL_MG, VSOL_CG,
  VSOL_SOR, VSOL_RBGS, VSOL_WJ, VSOL_Richardson,
  VSOL_CGMGAqua, VSOL_NewtonAqua
}
 Solution Method enumerations. More...
 
enum  eVsurf_Meth {
  VSM_MOL =0, VSM_MOLSMOOTH =1, VSM_SPLINE =2, VSM_SPLINE3 =3,
  VSM_SPLINE4 =4
}
 Types of molecular surface definitions. More...
 
enum  eVhal_PBEType {
  PBE_LPBE, PBE_NPBE, PBE_LRPBE, PBE_NRPBE,
  PBE_SMPBE
}
 Version of PBE to solve. More...
 
enum  eVhal_IPKEYType { IPKEY_SMPBE = -2, IPKEY_LPBE, IPKEY_NPBE }
 Type of ipkey to use for MG methods. More...
 
enum  eVhal_NONLINType {
  NONLIN_LPBE = 0, NONLIN_NPBE, NONLIN_SMPBE, NONLIN_LPBEAQUA,
  NONLIN_NPBEAQUA
}
 Type of nonlinear to use for MG methods.
 
enum  eVoutput_Format { OUTPUT_NULL, OUTPUT_FLAT }
 Output file format. More...
 
enum  eVbcfl {
  BCFL_ZERO =0, BCFL_SDH =1, BCFL_MDH =2, BCFL_UNUSED =3,
  BCFL_FOCUS =4, BCFL_MEM =5, BCFL_MAP =6
}
 Types of boundary conditions. More...
 
enum  eVchrg_Meth { VCM_TRIL =0, VCM_BSPL2 =1, VCM_BSPL4 =2 }
 Types of charge discretization methods. More...
 
enum  eVchrg_Src { VCM_CHARGE =0, VCM_PERMANENT =1, VCM_INDUCED =2, VCM_NLINDUCED =3 }
 Charge source. More...
 
enum  eVdata_Type {
  VDT_CHARGE, VDT_POT, VDT_ATOMPOT, VDT_SMOL,
  VDT_SSPL, VDT_VDW, VDT_IVDW, VDT_LAP,
  VDT_EDENS, VDT_NDENS, VDT_QDENS, VDT_DIELX,
  VDT_DIELY, VDT_DIELZ, VDT_KAPPA
}
 Types of (scalar) data that can be written out of APBS. More...
 
enum  eVdata_Format {
  VDF_DX =0, VDF_UHBD =1, VDF_AVS =2, VDF_MCSF =3,
  VDF_GZ =4, VDF_FLAT =5
}
 Format of data for APBS I/O. More...
 

Functions

char * wrap_text (char *str, int right_margin, int left_padding)
 

Variables

FILE * data
 

Detailed Description

Contains generic macro definitions for APBS.

Version
$Id$
Author
Nathan A. Baker
Attention
*
* APBS -- Adaptive Poisson-Boltzmann Solver
*
* Nathan A. Baker (nathan.baker@pnl.gov)
* Pacific Northwest National Laboratory
*
* Additional contributing authors listed in the code documentation.
*
* Copyright (c) 2010-2012 Battelle Memorial Institute. Developed at the Pacific Northwest National Laboratory, operated by Battelle Memorial Institute, Pacific Northwest Division for the U.S. Department Energy.  Portions Copyright (c) 2002-2010, Washington University in St. Louis.  Portions Copyright (c) 2002-2010, Nathan A. Baker.  Portions Copyright (c) 1999-2002, The Regents of the University of California. Portions Copyright (c) 1995, Michael Holst.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -  Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* - Neither the name of Washington University in St. Louis nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* 

Definition in file vhal.h.

Macro Definition Documentation

◆ PRINT_FUNC

#define PRINT_FUNC   __PRETTY_FUNCTION__

OS specific flags and etcetera

Definition at line 578 of file vhal.h.

◆ VABORT_MSG0

#define VABORT_MSG0 (   msg)
Value:
do { \
Vnm_print(2, "%[%s()]: ABORTING:\n" \
" %s\n\n", \
__FUNCTION__, msg); \
abort(); \
} while(0)

Definition at line 906 of file vhal.h.

◆ VABORT_MSG1

#define VABORT_MSG1 (   msg,
  arg 
)
Value:
do { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg ); \
Vnm_print(2, "[%s()]: ABORTING:\n" \
" %s\n\n", \
__FUNCTION__, buff); \
abort(); \
} while(0)

Definition at line 914 of file vhal.h.

◆ VABORT_MSG2

#define VABORT_MSG2 (   msg,
  arg0,
  arg1 
)
Value:
do { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg0, arg1); \
Vnm_print(2, "[%s()]: ABORTING:\n" \
" %s\n\n", \
__FUNCTION__, buff); \
abort(); \
} while(0)

Definition at line 924 of file vhal.h.

◆ VASSERT_MSG0

#define VASSERT_MSG0 (   cnd,
  msg 
)
Value:
do { \
if( (cnd) == 0 ) { \
Vnm_print(2, "%[%s()]: ERROR:\n" \
" Assertion Failed (%s): %s\n\n", \
__FUNCTION__, #cnd, msg); \
abort(); \
} \
} while(0)

Definition at line 738 of file vhal.h.

◆ VASSERT_MSG1

#define VASSERT_MSG1 (   cnd,
  msg,
  arg 
)
Value:
do { \
if( (cnd) == 0 ) { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg ); \
Vnm_print(2, "[%s()]: ERROR:\n" \
" Assertion Failed (%s): %s\n\n", \
__FUNCTION__, #cnd, buff); \
abort(); \
} \
} while(0)

Definition at line 748 of file vhal.h.

◆ VASSERT_MSG2

#define VASSERT_MSG2 (   cnd,
  msg,
  arg0,
  arg1 
)
Value:
do { \
if( (cnd) == 0 ) { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg0, arg1 ); \
Vnm_print(2, "[%s()]: ERROR:\n" \
" Assertion Failed (%s): %s\n\n", \
__FUNCTION__, #cnd, buff); \
abort(); \
} \
} while(0)

Definition at line 760 of file vhal.h.

◆ VCHANNELEDMESSAGE0

#define VCHANNELEDMESSAGE0 (   channel,
  msg 
)
Value:
do { \
Vnm_print(channel, "%s: %s\n", __FUNCTION__, msg); \
} while(0)

Definition at line 660 of file vhal.h.

◆ VCHANNELEDMESSAGE1

#define VCHANNELEDMESSAGE1 (   channel,
  msg,
  arg0 
)
Value:
do { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg0 ); \
Vnm_print(channel, "%s: %s\n", __FUNCTION__, buff); \
} while(0)

Definition at line 665 of file vhal.h.

◆ VCHANNELEDMESSAGE2

#define VCHANNELEDMESSAGE2 (   channel,
  msg,
  arg0,
  arg1 
)
Value:
do { \
char buff[1000]; \
snprintf( buff, 1000, msg, arg0, arg1 ); \
Vnm_print(channel, "%s: %s\n", __FUNCTION__, buff); \
} while(0)

Definition at line 672 of file vhal.h.

◆ VCHANNELEDMESSAGE3

#define VCHANNELEDMESSAGE3 (   channel,
  msg,
  arg0,
  arg1,
  arg2 
)
Value:
do { \
char buff[1000]; \
snprintf(buff, 1000, msg, arg0, arg1, arg2); \
Vnm_print(channel, "%s: %s\n", __FUNCTION__, buff); \
} while(0)

Definition at line 679 of file vhal.h.

◆ VCOPY

#define VCOPY (   srcvec,
  dstvec,
  i,
 
)
Value:
do { \
for (i = 0; i < n; i++) \
dstvec[i] = srcvec[i]; \
} while(0)

Definition at line 966 of file vhal.h.

◆ VFILL

#define VFILL (   vec,
  n,
  val 
)
Value:
do { \
int fill_idx; \
for (fill_idx = 0; fill_idx < n; fill_idx++) \
vec[fill_idx] = val; \
} while(0)

Definition at line 959 of file vhal.h.

◆ VWARN_MSG0

#define VWARN_MSG0 (   cnd,
  msg 
)
Value:
do { \
if( (cnd) == 0 ) { \
Vnm_print( \
2, \
"[%s()]: WARNING:\n" \
" %s\n\n", \
__FUNCTION__, \
msg \
); \
} \
} while(0)

Definition at line 832 of file vhal.h.

◆ VWARN_MSG1

#define VWARN_MSG1 (   cnd,
  msg,
  arg0 
)
Value:
do { \
if( (cnd) == 0 ) { \
char buff[1000]; \
snprintf(buff, 1000, msg, arg0); \
Vnm_print( \
2, \
"[%s()]: WARNING:\n" \
" %s\n\n", \
__FUNCTION__, \
buff \
); \
} \
} while(0)

Definition at line 845 of file vhal.h.

◆ VWARN_MSG2

#define VWARN_MSG2 (   cnd,
  msg,
  arg0,
  arg1 
)
Value:
do { \
if( (cnd) == 0 ) { \
char buff[1000]; \
snprintf(buff, 1000, msg, arg0, arg1); \
Vnm_print( \
2, \
"[%s()]: WARNING:\n" \
" %s\n\n", \
__FUNCTION__, \
buff \
); \
} \
} while(0)

Definition at line 860 of file vhal.h.