29 namespace it = Input::Type;
33 "Identifier of the isotope.")
35 "Half life parameter.");
49 "Identifier of the isotope.")
51 "Half life parameter.");
62 "How accurate should the simulation be, decimal places(?).")
64 "Isothermal reaction, thermodynamic temperature.")
66 "Thermodynamic parameter.")
68 "Thermodynamic parameter.")
70 "Thermodynamic parameter.")
72 "Thermodynamic parameter.")
74 "Simulation parameter.")
76 "Simulation parameter.");
80 :semchem_on(false), dual_porosity_on(false), fw_chem(NULL), mesh_(NULL), cross_section(NULL)
85 xprintf(
Msg,
"Semchem output file name is %s\n",semchem_output_fname.c_str());
151 double celkova_molalita;
153 double **conc_mob_arr = conc[
MOBILE];
154 double **conc_immob_arr = conc[
IMMOBILE];
170 switch (ppelm->
dim()) {
173 case 3 : pomoc = ppelm->
measure() *
182 G_prm.
splocha = (pomoc / el_por_m) * (el_phi) * (1 - el_por_m - el_por_imm);
183 celkova_molalita=0.0;
189 P_lat[i].
m0 = (double)((conc_mob_arr[i][poradi])) / (
P_lat[i].M);
190 celkova_molalita += (
P_lat[i].
m0);
195 if (celkova_molalita > 1e-16)
209 conc_mob_arr[i][poradi] = (double)(
P_lat[i].m0 *
P_lat[i].M);
217 switch (ppelm->
dim()) {
220 case 3 : pomoc = ppelm->
measure() *
228 G_prm.
splocha = (pomoc / el_por_imm) * (1 - el_phi) * (1 - el_por_m - el_por_imm);
229 celkova_molalita = 0.0;
235 P_lat[i].
m0 = (double)(conc_immob_arr[i][poradi] /
P_lat[i].M);
236 celkova_molalita +=
P_lat[i].
m0;
240 if (celkova_molalita > 1e-16)
308 strcpy(
fw_chem,semchem_output_file.c_str());
void set_el_4_loc(int *el_for_loc)
Semchem_interface(double timeStep, Mesh *mesh, int nrOfSpecies, bool dualPorosity)
void che_presun_poc_p_(void)
Class template representing a field with values dependent on: point, element, and region...
void compute_reaction(bool porTyp, ElementIter ppelm, int poradi, double ***conc)
void update_solution(void)
bool OptGetBool(const char *section, const char *key, const char *defval)
Distribution * distribution
void set_nr_of_elements(int nrOfElements)
void set_cross_section(Field< 3, FieldValue< 3 >::Scalar > *cross_section)
Sets pointer to data of other equations.
void che_pocitej_soubor(char *soubor, int *poc_krok)
static Input::Type::AbstractRecord input_type
unsigned int n_elements() const
static Input::Type::Record input_type
Field< 3, FieldValue< 3 >::Scalar > * por_imm
void set_dual_porosity(void)
#define START_TIMER(tag)
Starts a timer with specified tag.
Field< 3, FieldValue< 3 >::Scalar > * phi
void set_mesh_(Mesh *mesh)
virtual Value::return_type const & value(const Point &p, const ElementAccessor< spacedim > &elm) const
static Input::Type::Record input_type
double *** concentration_matrix
static Input::Type::AbstractRecord input_type
void * xmalloc(size_t size)
Memory allocation with checking.
void set_sorption_fields(Field< 3, FieldValue< 3 >::Scalar > *por_m_, Field< 3, FieldValue< 3 >::Scalar > *por_imm_, Field< 3, FieldValue< 3 >::Scalar > *phi_)
void set_timestep(double new_timestep)
Dedicated class for storing path to input and output files.
arma::vec3 centre() const
void set_fw_chem(std::string semchem_output_file)
Field< 3, FieldValue< 3 >::Scalar > * por_m
pointers to sorption fields from transport
void set_chemistry_computation(void)
#define END_TIMER(tag)
Ends a timer with specified tag.
ElementAccessor< 3 > element_accessor() const
Gets ElementAccessor of this element.
void set_concentration_matrix(double ***ConcentrationsMatrix, Distribution *conc_distr, int *el_4_loc)
ElementVector element
Vector of elements of the mesh.
Field< 3, FieldValue< 3 >::Scalar > * cross_section
unsigned int lsize(int proc) const
get local size