diff --git a/src/incflo.H b/src/incflo.H index 3cd0a68a..9aa125fd 100644 --- a/src/incflo.H +++ b/src/incflo.H @@ -327,13 +327,16 @@ private: // Be verbose? int m_verbose = 0; + // number of tracers + int m_ntrac = 1; + // Member variables for initial conditions int m_probtype = 0; amrex::Real m_ic_u = amrex::Real(0.0); amrex::Real m_ic_v = amrex::Real(0.0); amrex::Real m_ic_w = amrex::Real(0.0); amrex::Real m_ic_p = amrex::Real(0.0); - amrex::Real m_ic_t = amrex::Real(0.0); + amrex::Vector m_ic_t = amrex::Vector (m_ntrac, amrex::Real(0.0)); amrex::Vector m_t_old; amrex::Vector m_t_new; @@ -670,8 +673,6 @@ private: amrex::Vector m_iconserv_tracer; amrex::Gpu::DeviceVector m_iconserv_tracer_d; - int m_ntrac = 1; - std::unique_ptr m_diffusion_tensor_op; std::unique_ptr m_diffusion_scalar_op; diff --git a/src/prob/prob_init_fluid.cpp b/src/prob/prob_init_fluid.cpp index 5ad06959..0e50205f 100644 --- a/src/prob/prob_init_fluid.cpp +++ b/src/prob/prob_init_fluid.cpp @@ -20,7 +20,9 @@ void incflo::prob_init_fluid (int lev) ld.velocity.setVal(m_ic_v, 1, 1);, ld.velocity.setVal(m_ic_w, 2, 1);); - if (m_ntrac > 0) ld.tracer.setVal(0.0); + for (int comp = 0; comp < m_ntrac; comp++) { + ld.tracer.setVal(m_ic_t[comp], comp, 1); + } for (MFIter mfi(ld.density); mfi.isValid(); ++mfi) { diff --git a/src/setup/init.cpp b/src/setup/init.cpp index a7ded2b4..33a62b0d 100644 --- a/src/setup/init.cpp +++ b/src/setup/init.cpp @@ -129,7 +129,7 @@ void incflo::ReadParameters () pp.query("ic_v", m_ic_v); pp.query("ic_w", m_ic_w); pp.query("ic_p", m_ic_p); - pp.query("ic_t", m_ic_t); + pp.queryarr("ic_t", m_ic_t); // Viscosity (if constant) pp.query("mu", m_mu);