/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Platforms/OMPTarget/OMPTargetMath.hpp: 38 - 38
--------------------------------------------------------------------------------

38:   return a < b ? a : b;
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Particle/SoaDistanceTableABOMPTarget.h: 61 - 233
--------------------------------------------------------------------------------

61:     if (num_sources_ * num_targets_ == 0)
62:       return;
63:     if (distances_.size())
64:       return;
65: 
66:     // initialize memory containers and views
67:     const size_t num_padded  = getAlignedSize<T>(num_sources_);
68:     const size_t stride_size = getPerTargetPctlStrideSize();
69:     r_dr_memorypool_.resize(stride_size * num_targets_);
70: 
71:     distances_.resize(num_targets_);
72:     displacements_.resize(num_targets_);
73:     for (int i = 0; i < num_targets_; ++i)
74:     {
75:       distances_[i].attachReference(r_dr_memorypool_.data() + i * stride_size, num_sources_);
76:       displacements_[i].attachReference(num_sources_, num_padded,
77:                                         r_dr_memorypool_.data() + i * stride_size + num_padded);
[...]
180:   size_t getPerTargetPctlStrideSize() const override { return getAlignedSize<T>(num_sources_) * (D + 1); }
181: 
182:   /** evaluate the full table */
183:   inline void evaluate(ParticleSet& P) override
184:   {
185:     resize();
186: 
187:     ScopedTimer local_timer(evaluate_timer_);
188:     // be aware of the sign of Displacement
189:     const int num_targets_local = num_targets_;
190:     const int num_sources_local = num_sources_;
191:     const int num_padded        = getAlignedSize<T>(num_sources_);
192: 
193:     target_pos.resize(num_targets_ * D);
194:     for (size_t iat = 0; iat < num_targets_; iat++)
195:       for (size_t idim = 0; idim < D; idim++)
196:         target_pos[iat * D + idim] = P.R[iat][idim];
197: 
198:     auto* target_pos_ptr = target_pos.data();
199:     auto* source_pos_ptr = origin_.getCoordinates().getAllParticlePos().data();
[...]
205:     const size_t num_teams     = (num_sources_ + ChunkSizePerTeam - 1) / ChunkSizePerTeam;
206:     const size_t stride_size   = getPerTargetPctlStrideSize();
207: 
208:     {
209:       ScopedTimer offload(offload_timer_);
210:       PRAGMA_OFFLOAD("omp target teams distribute collapse(2) num_teams(num_targets_*num_teams) \
211:                         map(to: source_pos_ptr[:num_padded*D]) \
212:                         map(always, to: target_pos_ptr[:num_targets_*D]) \
213:                         map(always, from: r_dr_ptr[:num_targets_*stride_size])")
214:       for (int iat = 0; iat < num_targets_local; ++iat)
215:         for (int team_id = 0; team_id < num_teams; team_id++)
216:         {
217:           const int first = ChunkSizePerTeam * team_id;
218:           const int last  = omptarget::min(first + ChunkSizePerTeam, num_sources_local);
219: 
220:           T pos[D];
221:           for (int idim = 0; idim < D; idim++)
222:             pos[idim] = target_pos_ptr[iat * D + idim];
223: 
224:           auto* r_iat_ptr  = r_dr_ptr + iat * stride_size;
225:           auto* dr_iat_ptr = r_iat_ptr + num_padded;
226: 
227:           PRAGMA_OFFLOAD("omp parallel for")
228:           for (int iel = first; iel < last; iel++)
229:             DTD_BConds<T, D, SC>::computeDistancesOffload(pos, source_pos_ptr, num_padded, r_iat_ptr, dr_iat_ptr,
230:                                                           num_padded, iel);
231:         }
232:     }
233:   }
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Platforms/CPU/SIMD/Mallocator.hpp: 78 - 79
--------------------------------------------------------------------------------

78:     free(p);
79:   }
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Numerics/OhmmsPETE/TinyVector.h: 169 - 169
--------------------------------------------------------------------------------

169:   inline Type_t& operator[](unsigned int i) { return X[i]; }
/usr/include/c++/14/bits/stl_vector.h: 993 - 1131
--------------------------------------------------------------------------------

993:       { return size_type(this->_M_impl._M_finish - this->_M_impl._M_start); }
[...]
1128:       operator[](size_type __n) _GLIBCXX_NOEXCEPT
1129:       {
1130: 	__glibcxx_requires_subscript(__n);
1131: 	return *(this->_M_impl._M_start + __n);
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Numerics/OhmmsPETE/OhmmsVector.h: 149 - 248
--------------------------------------------------------------------------------

149:     if (nAllocated)
[...]
157:     nAllocated = 0;
158:     X          = ref;
[...]
223:     return X[i];
[...]
248:   inline pointer data() { return X; }
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Numerics/OhmmsPETE/VectorSoAContainer.h: 154 - 267
--------------------------------------------------------------------------------

154:     nAllocated = 0;
[...]
167:     if (nAllocated)
[...]
174:     nLocal  = n;
175:     nGhosts = n_padded;
176:     myData  = ptr;
[...]
267:   inline const T* data() const { return myData; }
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Particle/Lattice/ParticleBConds3DSoa.h: 280 - 298
--------------------------------------------------------------------------------

280:     T displ_0 = px[iat] - x0;
281:     T displ_1 = py[iat] - y0;
282:     T displ_2 = pz[iat] - z0;
283: 
284:     T ar_0 = displ_0 * g00 + displ_1 * g10 + displ_2 * g20;
285:     T ar_1 = displ_0 * g01 + displ_1 * g11 + displ_2 * g21;
286:     T ar_2 = displ_0 * g02 + displ_1 * g12 + displ_2 * g22;
287: 
288:     //put them in the box
289:     ar_0 -= round(ar_0);
290:     ar_1 -= round(ar_1);
291:     ar_2 -= round(ar_2);
292: 
293:     //unit2cart
294:     dx[iat] = ar_0 * r00 + ar_1 * r10 + ar_2 * r20;
295:     dy[iat] = ar_0 * r01 + ar_1 * r11 + ar_2 * r21;
296:     dz[iat] = ar_0 * r02 + ar_1 * r12 + ar_2 * r22;
297: 
298:     temp_r[iat] = std::sqrt(dx[iat] * dx[iat] + dy[iat] * dy[iat] + dz[iat] * dz[iat]);
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Utilities/NewTimer.h: 242 - 249
--------------------------------------------------------------------------------

242:   ScopeGuard(TIMER& t) : timer(t) { timer.start(); }
[...]
249:   ~ScopeGuard() { timer.stop(); }
/usr/include/c++/14/bits/unique_ptr.h: 193 - 193
--------------------------------------------------------------------------------

193:       pointer    _M_ptr() const noexcept { return std::get<0>(_M_t); }
/home/eoseret/qaas/qaas_runs/178-212-9071/intel/miniqmc/build/miniqmc/src/Platforms/CPU/SIMD/aligned_allocator.hpp: 46 - 46
--------------------------------------------------------------------------------

46:   return ((n + ND - 1) / ND) * ND;
