BALL 1.5.0
Loading...
Searching...
No Matches
poissonBoltzmann.h
Go to the documentation of this file.
1// -*- Mode: C++; tab-width: 2; -*-
2// vi: set ts=2:
3//
4// $Id: poissonBoltzmann.h,v 1.31 2005/12/23 17:02:00 amoll Exp $
5//
6
7// Finite Difference Poisson Boltzmann Solver
8
9#ifndef BALL_SOLVATION_POISSONBOLTZMANN_H
10#define BALL_SOLVATION_POISSONBOLTZMANN_H
11
12#ifndef BALL_COMMON_H_
13# include <BALL/common.h>
14#endif
15
16#ifndef BALL_DATATYPE_REGULARDATA3D_H
18#endif
19
20#ifndef BALL_KERNEL_SYSTEM_H
21# include <BALL/KERNEL/system.h>
22#endif
23
24#ifndef BALL_DATATYPE_OPTIONS_H
26#endif
27
28#include <vector>
29using std::vector;
30
31namespace BALL
32{
37 {
38
39 public:
40
210
217 {
225 static const String VERBOSITY;
226
236 static const String PRINT_TIMING;
237
245 static const String SPACING;
246
255 static const String BORDER;
256
265 static const String IONIC_STRENGTH;
266
272 static const String SOLUTE_DC;
273
279 static const String SOLVENT_DC;
280
286 static const String PROBE_RADIUS;
287
292 static const String ION_RADIUS;
293
299 static const String TEMPERATURE;
300
308 static const String BOUNDARY;
309
318
330
338 static const String OFFSET;
339
348 static const String RMS_CRITERION;
349
357 static const String MAX_CRITERION;
358
366
375 static const String MAX_ITERATIONS;
376
385 static const String LOWER;
386
391 static const String UPPER;
392
399
405
406 };
407
412 {
419 static const String ZERO;
420
431 static const String DEBYE;
432
436 static const String COULOMB;
437
440 static const String DIPOLE;
441
448 static const String FOCUSING;
449 };
450
454 {
458 static const String TRILINEAR;
459
463 static const String UNIFORM;
464 };
465
473 {
476 static const String NONE;
477
485 static const String UNIFORM;
486
494 static const String HARMONIC;
495 };
496
502 {
507 static const int VERBOSITY;
508
513 static const bool PRINT_TIMING ;
514
519 static const float SPACING;
520
525 static const float BORDER;
526
531 static const float IONIC_STRENGTH;
532
537 static const float TEMPERATURE;
538
545 static const float PROBE_RADIUS;
546
551 static const float ION_RADIUS;
552
558 static const String BOUNDARY;
559
566
573
578 static const float SOLVENT_DC;
579
584 static const float SOLUTE_DC;
585
592 static const float RMS_CRITERION;
593
600 static const float MAX_CRITERION;
601
607 static const Index MAX_ITERATIONS;
608
614 };
615
628 {
629 float q;
630 float r;
631 float x, y, z;
633 };
634
635 typedef struct FastAtomStruct FastAtom;
636
637
641
646
650 FDPB(const FDPB& fdpb);
651
658 FDPB(System& system);
659
666 FDPB(Options& new_options);
667
675 FDPB(System& system, Options& new_options);
676
679 virtual ~FDPB();
680
683 void destroy();
684
694
696
701
721 bool setup(System& system);
722
731 bool setup(System& system, Options& options);
732
757 bool setupEpsGrid(System& system);
758
759
760 // ?????
764 bool setupSASGrid(System& system);
765
776 bool setupAtomArray(System& system);
777
781
785
789
793
795
798
801 bool solve();
802
810 double getEnergy() const;
811
816
821
831
833
837
846
851 static String getErrorMessage(Index error_code);
853
854
858
862
866
868
871
877
882
892
903
907
911 vector<FDPB::FastAtom>* atom_array;
912
914
915 protected:
916
920
922
923 float spacing_;
924
925 // final energy of the last calculation
926 double energy_;
927
928 // the reaction field energy of the last calculation
930
931 // the indices of the boundary points,
932 // i.e., the points that have at least one neighbouring
933 // grid point that is inside the solute
934 vector<Position> boundary_points_;
935
936 // number of iterations of the last calculation
938
939 // error code. use getErrorMessage to access the corresponding
940 // error message
942
943 static const char* error_message_[];
944 };
945
946} // namespace BALL
947
948#endif
bool setupQGrid()
TRegularData3D< float > * q_grid
void destroy()
virtual ~FDPB()
TRegularData3D< char > * SAS_grid
@ ERROR__NOT_A_VECTOR_IN_UPPER_LOWER
@ ERROR__UNKNOWN_DIELECTRIC_SMOOTHING_METHOD
@ ERROR__CANNOT_CREATE_KAPPA_GRID
@ ERROR__CANNOT_CREATE_ATOM_ARRAY
@ ERROR__UNKNOWN_CHARGE_DISTRIBUTION_METHOD
@ ERROR__CANNOT_CREATE_CHARGE_GRID
@ ERROR__UNKNOWN_BOUNDARY_CONDITION_TYPE
@ ERROR__ILLEGAL_VALUE_FOR_LOWER_UPPER
@ ERROR__CANNOT_CREATE_SAS_GRID
@ ERROR__CANNOT_CREATE_PHI_GRID
@ ERROR__CANNOT_CREATE_EPSILON_GRID
void destroyGrids()
double getReactionFieldEnergy() const
FDPB(System &system, Options &new_options)
bool setupBoundary()
FDPB(const FDPB &fdpb)
bool solve()
bool setup(System &system, Options &options)
bool setupSASGrid(System &system)
bool setupEpsGrid(System &system)
double calculateReactionFieldEnergy() const
FDPB(Options &new_options)
bool setupKappaGrid()
bool setup(System &system)
vector< FDPB::FastAtom > * atom_array
double reaction_field_energy_
Size getNumberOfIterations() const
Index getErrorCode() const
FDPB(System &system)
bool setupAtomArray(System &system)
static String getErrorMessage(Index error_code)
TRegularData3D< float > * kappa_grid
Size number_of_iterations_
bool setupPhiGrid()
vector< Position > boundary_points_
double getEnergy() const
TRegularData3D< Vector3 > * eps_grid
TRegularData3D< float > * phi_grid
static const String SOLUTE_DC
static const String PRINT_TIMING
static const String MAX_ITERATIONS
static const String VERBOSITY
static const String SOLVENT_DC
static const String CHARGE_DISTRIBUTION
static const String PROBE_RADIUS
static const String OFFSET
static const String LOWER
static const String BOUNDARY
static const String CHECK_AFTER_ITERATIONS
static const String ION_RADIUS
static const String DIELECTRIC_SMOOTHING
static const String TEMPERATURE
static const String BORDER
static const String MAX_CRITERION
static const String BOUNDING_BOX_UPPER
static const String UPPER
static const String BOUNDING_BOX_LOWER
static const String IONIC_STRENGTH
static const String SPACING
static const String RMS_CRITERION
static const String DEBYE
static const String COULOMB
static const String FOCUSING
static const String ZERO
static const String DIPOLE
static const bool PRINT_TIMING
static const float SPACING
static const String DIELECTRIC_SMOOTHING
static const float BORDER
static const Index CHECK_AFTER_ITERATIONS
static const int VERBOSITY
static const float RMS_CRITERION
static const float SOLVENT_DC
static const float TEMPERATURE
static const float SOLUTE_DC
static const float MAX_CRITERION
static const String CHARGE_DISTRIBUTION
static const String BOUNDARY
static const float IONIC_STRENGTH
static const float ION_RADIUS
static const float PROBE_RADIUS
static const Index MAX_ITERATIONS
#define BALL_EXPORT