| 104 | } |
| 105 | |
| 106 | void ca_deruplusc(const Box& bx, FArrayBox& derfab, int /*dcomp*/, int /*ncomp*/, |
| 107 | const FArrayBox& datfab, const Geometry& /*geom*/, |
| 108 | Real /*time*/, const int* /*bcrec*/, int /*level*/) |
| 109 | { |
| 110 | |
| 111 | auto const dat = datfab.array(); |
| 112 | auto const der = derfab.array(); |
| 113 | |
| 114 | amrex::ParallelFor(bx, |
| 115 | [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept |
| 116 | { |
| 117 | |
| 118 | |
| 119 | Real rhoInv = 1.0_rt / dat(i,j,k,URHO); |
| 120 | |
| 121 | eos_rep_t eos_state; |
| 122 | eos_state.rho = dat(i,j,k,URHO); |
| 123 | eos_state.T = dat(i,j,k,UTEMP); |
| 124 | eos_state.e = dat(i,j,k,UEINT) * rhoInv; |
| 125 | for (int n = 0; n < NumSpec; n++) { |
| 126 | eos_state.xn[n] = dat(i,j,k,UFS+n) * rhoInv; |
| 127 | } |
| 128 | #if NAUX_NET > 0 |
| 129 | for (int n = 0; n < NumAux; n++) { |
| 130 | eos_state.aux[n] = dat(i,j,k,UFX+n) * rhoInv; |
| 131 | } |
| 132 | #endif |
| 133 | |
| 134 | eos(eos_input_re, eos_state); |
| 135 | |
| 136 | der(i,j,k,0) = dat(i,j,k,UMX) / dat(i,j,k,URHO) + eos_state.cs; |
| 137 | |
| 138 | }); |
| 139 | } |
| 140 | |
| 141 | void ca_deruminusc(const Box& bx, FArrayBox& derfab, int /*dcomp*/, int /*ncomp*/, |
| 142 | const FArrayBox& datfab, const Geometry& /*geom*/, |
nothing calls this directly
no outgoing calls
no test coverage detected