mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 08:38:23 +01:00
starting on pitzer
This commit is contained in:
parent
bd0cad9434
commit
90e8412074
@ -1090,7 +1090,7 @@ void Phreeqc::init(void)
|
||||
use_etheta = TRUE;
|
||||
OTEMP = -100.;
|
||||
OPRESS = -100.;
|
||||
A0 = 0;
|
||||
A0 = 0;
|
||||
aphi = NULL;
|
||||
spec = NULL;
|
||||
cations = NULL;
|
||||
@ -1105,9 +1105,6 @@ void Phreeqc::init(void)
|
||||
mcb0 = NULL;
|
||||
mcb1 = NULL;
|
||||
mcc0 = NULL;
|
||||
IPRSNT = NULL;
|
||||
M = NULL;
|
||||
LGAMMA = NULL;
|
||||
for (int i = 0; i < 23; i++)
|
||||
{
|
||||
BK[i] = 0.0;
|
||||
@ -2109,7 +2106,7 @@ Phreeqc::InternalCopy(const Phreeqc *pSrc)
|
||||
*/
|
||||
if (pSrc->aphi != NULL)
|
||||
{
|
||||
aphi = (struct pitz_param *) malloc(sizeof(struct pitz_param));
|
||||
aphi = (struct pitz_param*)malloc(sizeof(struct pitz_param));
|
||||
memcpy(aphi, pSrc->aphi, sizeof(struct pitz_param));
|
||||
}
|
||||
/*
|
||||
|
||||
@ -1801,13 +1801,13 @@ protected:
|
||||
int use_etheta;
|
||||
LDBLE OTEMP, OPRESS;
|
||||
LDBLE A0;
|
||||
struct pitz_param *aphi;
|
||||
struct pitz_param* aphi;
|
||||
struct species **spec, **cations, **anions, **neutrals;
|
||||
int count_cations, count_anions, count_neutrals;
|
||||
int MAXCATIONS, FIRSTANION, MAXNEUTRAL;
|
||||
struct pitz_param *mcb0, *mcb1, *mcc0;
|
||||
int *IPRSNT;
|
||||
LDBLE *M, *LGAMMA;
|
||||
std::vector<int> IPRSNT;
|
||||
std::vector<double> M, LGAMMA;
|
||||
LDBLE BK[23], DK[23];
|
||||
|
||||
LDBLE dummy;
|
||||
|
||||
35
pitzer.cpp
35
pitzer.cpp
@ -78,22 +78,9 @@ pitzer_tidy(void)
|
||||
/*
|
||||
* allocate other arrays for Pitzer
|
||||
*/
|
||||
if (IPRSNT != NULL)
|
||||
IPRSNT = (int *) free_check_null(IPRSNT);
|
||||
IPRSNT = (int *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(int)));
|
||||
if (IPRSNT == NULL)
|
||||
malloc_error();
|
||||
if (M != NULL)
|
||||
M = (LDBLE *) free_check_null(M);
|
||||
M = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (M == NULL)
|
||||
malloc_error();
|
||||
if (LGAMMA != NULL)
|
||||
LGAMMA = (LDBLE *) free_check_null(LGAMMA);
|
||||
LGAMMA = (LDBLE *) PHRQ_malloc((size_t) (3 * s.size() * sizeof(LDBLE)));
|
||||
if (LGAMMA == NULL)
|
||||
malloc_error();
|
||||
|
||||
IPRSNT.resize(3 * s.size());
|
||||
M.resize(3 * s.size());
|
||||
LGAMMA.resize(3 * s.size());
|
||||
|
||||
for (i = 0; i < (int)s.size(); i++)
|
||||
{
|
||||
@ -1660,11 +1647,11 @@ pitzer_clean_up(void)
|
||||
(struct theta_param *) free_check_null(theta_params[i]);
|
||||
}
|
||||
theta_params.clear();
|
||||
LGAMMA = (LDBLE *) free_check_null(LGAMMA);
|
||||
IPRSNT = (int *) free_check_null(IPRSNT);
|
||||
LGAMMA.clear();
|
||||
IPRSNT.clear();
|
||||
spec = (struct species **) free_check_null(spec);
|
||||
aphi = (struct pitz_param *) free_check_null(aphi);
|
||||
M = (LDBLE *) free_check_null(M);
|
||||
M.clear();
|
||||
|
||||
return OK;
|
||||
}
|
||||
@ -1959,7 +1946,7 @@ int Phreeqc::
|
||||
jacobian_pz(void)
|
||||
/* ---------------------------------------------------------------------- */
|
||||
{ // calculate the derivatives numerically
|
||||
LDBLE *base;
|
||||
std::vector<double> base;
|
||||
LDBLE d, d1, d2;
|
||||
int i, j;
|
||||
|
||||
@ -1973,9 +1960,7 @@ Restart:
|
||||
pitzer();
|
||||
residuals();
|
||||
}
|
||||
base = (LDBLE *) PHRQ_malloc((size_t) count_unknowns * sizeof(LDBLE));
|
||||
if (base == NULL)
|
||||
malloc_error();
|
||||
base.resize(count_unknowns);
|
||||
for (i = 0; i < count_unknowns; i++)
|
||||
{
|
||||
base[i] = residual[i];
|
||||
@ -2073,7 +2058,7 @@ Restart:
|
||||
molalities(TRUE);
|
||||
if (max_unknowns > pz_max_unknowns)
|
||||
{
|
||||
base = (LDBLE *) free_check_null(base);
|
||||
base.clear();
|
||||
gammas_pz(false);
|
||||
jacobian_sums();
|
||||
goto Restart;
|
||||
@ -2144,7 +2129,7 @@ Restart:
|
||||
pitzer();
|
||||
mb_sums();
|
||||
residuals();
|
||||
free_check_null(base);
|
||||
base.clear();
|
||||
calculating_deriv = 0;
|
||||
return OK;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user