7 #ifndef INTEGRATOR_DENDRITE_H // Include guards
8 #define INTEGRATOR_DENDRITE_H //
15 #include "AMReX_ParallelDescriptor.H"
16 #include "AMReX_ParmParse.H"
25 #include "Numeric/Stencil.H"
95 for (amrex::MFIter mfi(*
temp_mf[lev], amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
98 const amrex::Box& bx = mfi.tilebox();
101 amrex::Array4<const Set::Scalar>
const& temp = (*
temp_old_mf[lev]).array(mfi);
102 amrex::Array4<Set::Scalar>
const& temp_new = (*
temp_mf[lev]).array(mfi);
103 amrex::Array4<const Set::Scalar>
const& phi = (*
phi_old_mf[lev]).array(mfi);
104 amrex::Array4<Set::Scalar>
const& phi_new = (*
phi_mf[lev]).array(mfi);
107 amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
117 gradphi(0) * gradphi(0) * gradphi(0) * gradphi(0),
118 +gradphi(1) * gradphi(1) * gradphi(1) * gradphi(1),
119 +gradphi(2) * gradphi(2) * gradphi(2) * gradphi(2));
120 Set::Scalar v22 = gradphi.squaredNorm(); v22 *= v22;
135 Set::Scalar Dphi = (
eps *
eps * lapphi + phi(i, j, k) * (1.0 - phi(i, j, k)) * (phi(i, j, k) - 0.5 + m)) /
tau;
136 phi_new(i, j, k) = phi(i, j, k) +
dt * Dphi;
143 temp_new(i, j, k) = temp(i, j, k) +
dt * (laptemp + Dphi);
154 Set::Scalar dr = sqrt(AMREX_D_TERM(DX[0] * DX[0], +DX[1] * DX[1], +DX[2] * DX[2]));
157 for (amrex::MFIter mfi(*
temp_mf[lev], amrex::TilingIfNotGPU()); mfi.isValid(); ++mfi)
160 const amrex::Box& bx = mfi.tilebox();
161 amrex::Array4<char>
const& tags = a_tags.array(mfi);
162 amrex::Array4<Set::Scalar>
const& temp = (*
temp_mf[lev]).array(mfi);
163 amrex::Array4<Set::Scalar>
const& phi = (*
phi_mf[lev]).array(mfi);
166 amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
175 tags(i, j, k) = amrex::TagBox::SET;
177 tags(i, j, k) = amrex::TagBox::SET;