Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F80909414
options.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Tue, Sep 3, 05:11
Size
2 KB
Mime Type
text/x-c
Expires
Thu, Sep 5, 05:11 (2 d)
Engine
blob
Format
Raw Data
Handle
20331072
Attached To
rSPECMICP SpecMiCP / ReactMiCP
options.hpp
View Options
#ifndef SPECMICP_REACTMICP_SATURATED_DIFFUSION_OPTIONS_HPP
#define SPECMICP_REACTMICP_SATURATED_DIFFUSION_OPTIONS_HPP
#include "common.hpp"
namespace
specmicp
{
namespace
reactmicp
{
namespace
systems
{
namespace
siasaturated
{
//! \brief Return codes for the SIASaturatedReactiveTransportSolver
enum
class
SIASaturatedReactiveTransportSolverReturnCode
{
LolThatsNotSuposedToHappen
=
-
30
,
//!< Well, have fun debugging that...
// Transport error codes
ErrorInTransport
=
-
20
,
//!< Error in the transport solver
MaxIterationsInTransport
=
-
21
,
//!< Maximum iterations reached in the transport solver
StationaryPointsInTransport
=
-
22
,
//!< Stationnary points in the transport solver
// Speciation error codes
ErrorInSpeciation
=
-
10
,
//!< Error in the speciation solver
MaxIterationsInSpeciation
=
-
11
,
//!< Maximum iterations reached in the speciation solver
StationaryPointsInSpeciation
=
-
12
,
//!< Stationnary points in the speciation solver
// Coupling algorithm
MaxIterations
=
-
1
,
//!< Maximum iterations of the coupling solver
StationaryPoints
=
-
2
,
//!< Stationary points reached in the coupling solver
// The good ones
NotConvergedYet
=
0
,
//!< Problem is not converged yet
Success
=
1
//!< The problem is succesfully solved
};
//! \brief Options for the SIASaturatedReactiveTransportSolver
struct
SIASaturatedReactiveTransportSolverOptions
{
int
max_iterations
;
//!< Maximum number of fixed-point iterations
scalar_t
residual_tolerance
;
//!< The tolerance for fixed-point convergence
scalar_t
good_enough_transport_residual_tolerance
;
//!< If transport failed, this value is used to check if it is 'good' enough
scalar_t
threshold_update_transport
;
//!< Threshold to accept a step if the update is too small
scalar_t
threshold_update_disable_speciation
;
//!< Threshold to disable next computation of speciation at a node
SIASaturatedReactiveTransportSolverOptions
()
:
max_iterations
(
50
),
residual_tolerance
(
1e-3
),
good_enough_transport_residual_tolerance
(
1e-2
),
threshold_update_transport
(
1e-10
),
threshold_update_disable_speciation
(
1e-10
)
{}
//! \brief Use a sequential non-iterative algorithm
void
use_snia
()
{
max_iterations
=
1
;}
//! \brief Use a sequential iterative algorithm
void
use_sia
(
int
nb_iter
=
50
)
{
max_iterations
=
nb_iter
;}
//! \brief Set the tolerance
void
set_tolerance
(
scalar_t
tol
)
{
residual_tolerance
=
tol
;}
};
}
// end namespace siasaturated
}
// end namespace systems
}
// end namespace reactmicp
}
// end namespace specmicp
#endif
// SPECMICP_REACTMICP_SATURATED_DIFFUSION_OPTIONS_HPP
Event Timeline
Log In to Comment