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