Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F79363203
equilibrium_stagger.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
Mon, Aug 26, 00:53
Size
2 KB
Mime Type
text/x-c++
Expires
Wed, Aug 28, 00:53 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
20127585
Attached To
rSPECMICP SpecMiCP / ReactMiCP
equilibrium_stagger.hpp
View Options
#ifndef SPECMICP_REACTMICP_SYSTEMS_SATURATED_EQUILIBRIUMSTAGGER_HPP
#define SPECMICP_REACTMICP_SYSTEMS_SATURATED_EQUILIBRIUMSTAGGER_HPP
#include "reactmicp/solver/staggers_base/chemistry_stagger_base.hpp"
#include "variablesfwd.hpp"
#include "specmicp/adimensional/adimensional_system_solver_structs.hpp"
namespace
specmicp
{
namespace
reactmicp
{
namespace
systems
{
namespace
satdiff
{
using
VariablesBasePtr
=
solver
::
VariablesBasePtr
;
//! \brief Solve the equilibrium problem
class
EquilibriumStagger
:
public
solver
::
ChemistryStaggerBase
{
public
:
EquilibriumStagger
(
index_t
nb_nodes
,
AdimensionalSystemConstraints
constraints
,
AdimensionalSystemSolverOptions
options
)
:
m_id_constraints
(
nb_nodes
,
0
),
m_list_constraints
({
constraints
,}),
m_options
(
options
)
{}
EquilibriumStagger
(
std
::
vector
<
AdimensionalSystemConstraints
>
list_constraints
,
std
::
vector
<
int
>
index_constraints
,
AdimensionalSystemSolverOptions
options
)
:
m_id_constraints
(
index_constraints
),
m_list_constraints
(
list_constraints
),
m_options
(
options
)
{}
//! \brief Initialize the stagger at the beginning of the computation
void
initialize
(
VariablesBasePtr
var
)
{}
//! \brief Initialize the stagger at the beginning of an iteration
void
initialize_timestep
(
scalar_t
dt
,
VariablesBasePtr
var
)
override
;
//! \brief Solve the equation for the timestep
solver
::
StaggerReturnCode
restart_timestep
(
VariablesBasePtr
var
)
override
;
//! \brief Solve the speciation problem at one node
int
solve_one_node
(
index_t
node
,
SaturatedVariablesPtr
var
);
//! \brief Return the constraints for 'node'
//!
//! \param node Index of the node
AdimensionalSystemConstraints
&
get_constraints
(
index_t
node
)
{
return
m_list_constraints
[
m_id_constraints
[
node
]];
}
private
:
scalar_t
m_dt
;
std
::
vector
<
int
>
m_id_constraints
;
std
::
vector
<
AdimensionalSystemConstraints
>
m_list_constraints
;
AdimensionalSystemSolverOptions
m_options
;
};
}
// end namespace satdiff
}
// end namespace systems
}
// end namespace reactmicp
}
// end namespace specmicp
#endif
// SPECMICP_REACTMICP_SYSTEMS_SATURATED_EQUILIBRIUMSTAGGER_HPP
Event Timeline
Log In to Comment