mirror of
https://git.gfz-potsdam.de/naaice/iphreeqc.git
synced 2025-12-16 00:28:23 +01:00
Saved surface for numerical derivatives
This commit is contained in:
parent
df0d68b9d5
commit
56975a7e0c
@ -5560,6 +5560,7 @@ numerical_jacobian(void)
|
||||
std::vector<class phase> base_phases;
|
||||
double base_mass_water_bulk_x = 0, base_moles_h2o = 0;
|
||||
cxxGasPhase base_gas_phase;
|
||||
cxxSurface base_surface;
|
||||
|
||||
if (!
|
||||
(numerical_deriv ||
|
||||
@ -5571,6 +5572,10 @@ numerical_jacobian(void)
|
||||
|
||||
calculating_deriv = TRUE;
|
||||
//jacobian_sums();
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
//cxxGasPhase* gas_phase_ptr = use.Get_gas_phase_ptr();
|
||||
@ -5761,6 +5766,10 @@ numerical_jacobian(void)
|
||||
x[i]->moles -= d2;
|
||||
break;
|
||||
}
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
*use.Get_gas_phase_ptr() = base_gas_phase;
|
||||
|
||||
27
pitzer.cpp
27
pitzer.cpp
@ -1951,6 +1951,7 @@ jacobian_pz(void)
|
||||
std::vector<class phase*> phase_ptrs;
|
||||
std::vector<class phase> base_phases;
|
||||
cxxGasPhase base_gas_phase;
|
||||
cxxSurface base_surface;
|
||||
LDBLE d, d1, d2;
|
||||
int i, j;
|
||||
Restart:
|
||||
@ -1962,6 +1963,10 @@ Restart:
|
||||
}
|
||||
mb_sums();
|
||||
residuals();
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
cxxGasPhase* gas_phase_ptr = use.Get_gas_phase_ptr();
|
||||
@ -2141,6 +2146,10 @@ Restart:
|
||||
reset();
|
||||
break;
|
||||
}
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
*use.Get_gas_phase_ptr() = base_gas_phase;
|
||||
@ -2155,15 +2164,15 @@ Restart:
|
||||
mb_sums();
|
||||
residuals();
|
||||
}
|
||||
//for (i = 0; i < count_unknowns; i++)
|
||||
//{
|
||||
// //Debugging
|
||||
// if (fabs(2.0 * (residual[i] - base[i]) / (residual[i] + base[i])) > 1e-2 &&
|
||||
// fabs(residual[i]) + fabs(base[i]) > 1e-8)
|
||||
// {
|
||||
// std::cerr << i << ": " << x[i]->description << " " << residual[i] << " " << base[i] << std::endl;
|
||||
// }
|
||||
//}
|
||||
for (i = 0; i < count_unknowns; i++)
|
||||
{
|
||||
//Debugging
|
||||
if (fabs(2.0 * (residual[i] - base[i]) / (residual[i] + base[i])) > 1e-2 &&
|
||||
fabs(residual[i]) + fabs(base[i]) > 1e-6)
|
||||
{
|
||||
std::cerr << i << ": " << x[i]->description << " " << residual[i] << " " << base[i] << std::endl;
|
||||
}
|
||||
}
|
||||
base.clear();
|
||||
calculating_deriv = 0;
|
||||
return OK;
|
||||
|
||||
10
sit.cpp
10
sit.cpp
@ -967,7 +967,12 @@ jacobian_sit(void)
|
||||
std::vector<class phase> base_phases;
|
||||
double base_mass_water_bulk_x = 0, base_moles_h2o = 0;
|
||||
cxxGasPhase base_gas_phase;
|
||||
cxxSurface base_surface;
|
||||
Restart:
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
cxxGasPhase* gas_phase_ptr = use.Get_gas_phase_ptr();
|
||||
@ -1120,7 +1125,10 @@ Restart:
|
||||
x[i]->moles -= d2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (use.Get_surface_ptr() != NULL)
|
||||
{
|
||||
base_surface = *use.Get_surface_ptr();
|
||||
}
|
||||
if (use.Get_gas_phase_ptr() != NULL)
|
||||
{
|
||||
*use.Get_gas_phase_ptr() = base_gas_phase;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user