From cddb7b7ceac213b1432ce97a3828ac0ee885ffeb Mon Sep 17 00:00:00 2001 From: Andrew Myers Date: Tue, 7 Jan 2020 17:04:51 -0800 Subject: add code for computing common components in smart copy --- Source/Particles/ParticleCreation/SmartCopy.cpp | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Source/Particles/ParticleCreation/SmartCopy.cpp (limited to 'Source/Particles/ParticleCreation/SmartCopy.cpp') diff --git a/Source/Particles/ParticleCreation/SmartCopy.cpp b/Source/Particles/ParticleCreation/SmartCopy.cpp new file mode 100644 index 000000000..eaaa817eb --- /dev/null +++ b/Source/Particles/ParticleCreation/SmartCopy.cpp @@ -0,0 +1,34 @@ +#include "SmartCopy.H" + +SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) +{ + SmartCopyTag tag; + + // we use the fact that maps are sorted + auto i_src = src.begin(); + auto i_dst = dst.begin(); + while ( (i_src != src.end()) and (i_dst != dst.end()) ) + { + if (i_src->first < i_dst->first) + { + // names are not the same and src is lower + ++i_src; + } + else if (i_src->first > i_dst->first) + { + // names are not the same and dst is lower + ++i_dst; + } + else + { + // name is in both... + tag.common_names.push_back(i_src->first); + tag.src_comps.push_back(i_src->second); + tag.dst_comps.push_back(i_dst->second); + ++i_src; + ++i_dst; + } + } + + return tag; +} -- cgit v1.2.3 From bbaf7f627fc272c4d47849f42cadf29231648f5a Mon Sep 17 00:00:00 2001 From: Andrew Myers Date: Tue, 7 Jan 2020 17:20:10 -0800 Subject: fix white space --- Source/Particles/ParticleCreation/DefaultInitialization.H | 4 ++-- Source/Particles/ParticleCreation/SmartCopy.H | 2 +- Source/Particles/ParticleCreation/SmartCopy.cpp | 2 +- Source/Particles/WarpXParticleContainer.H | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'Source/Particles/ParticleCreation/SmartCopy.cpp') diff --git a/Source/Particles/ParticleCreation/DefaultInitialization.H b/Source/Particles/ParticleCreation/DefaultInitialization.H index 963587468..e2491a483 100644 --- a/Source/Particles/ParticleCreation/DefaultInitialization.H +++ b/Source/Particles/ParticleCreation/DefaultInitialization.H @@ -87,11 +87,11 @@ class DefaultInitializerFactory { amrex::Gpu::DeviceVector m_policies; bool m_defined; - + public: DefaultInitializerFactory () noexcept : m_defined(false) {}; - + void define (const std::map& comps) noexcept { m_policies.resize(comps.size()); diff --git a/Source/Particles/ParticleCreation/SmartCopy.H b/Source/Particles/ParticleCreation/SmartCopy.H index f60e2aba3..dffe5a773 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.H +++ b/Source/Particles/ParticleCreation/SmartCopy.H @@ -12,7 +12,7 @@ struct SmartCopyTag std::vector common_names; std::vector src_comps; std::vector dst_comps; - + int size () const noexcept { return common_names.size(); } }; diff --git a/Source/Particles/ParticleCreation/SmartCopy.cpp b/Source/Particles/ParticleCreation/SmartCopy.cpp index eaaa817eb..88e687503 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.cpp +++ b/Source/Particles/ParticleCreation/SmartCopy.cpp @@ -29,6 +29,6 @@ SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) ++i_dst; } } - + return tag; } diff --git a/Source/Particles/WarpXParticleContainer.H b/Source/Particles/WarpXParticleContainer.H index 1eec6f42d..33c10e8de 100644 --- a/Source/Particles/WarpXParticleContainer.H +++ b/Source/Particles/WarpXParticleContainer.H @@ -398,7 +398,7 @@ protected: amrex::Vector > > tmp_particle_data; DefaultInitializerFactory m_default_initializer_factory; - + private: virtual void particlePostLocate(ParticleType& p, const amrex::ParticleLocData& pld, const int lev) override; -- cgit v1.2.3 From 25315be1959c455f189987c24be54c4b30335eaf Mon Sep 17 00:00:00 2001 From: atmyers Date: Sun, 2 Feb 2020 18:38:23 -0800 Subject: new helper function --- .../ParticleCreation/DefaultInitialization.H | 4 +-- Source/Particles/ParticleCreation/SmartCopy.H | 31 ++++++---------------- Source/Particles/ParticleCreation/SmartCopy.cpp | 13 ++++++++- 3 files changed, 22 insertions(+), 26 deletions(-) (limited to 'Source/Particles/ParticleCreation/SmartCopy.cpp') diff --git a/Source/Particles/ParticleCreation/DefaultInitialization.H b/Source/Particles/ParticleCreation/DefaultInitialization.H index 87ebdc5cb..b2d085818 100644 --- a/Source/Particles/ParticleCreation/DefaultInitialization.H +++ b/Source/Particles/ParticleCreation/DefaultInitialization.H @@ -42,9 +42,9 @@ static std::map initialization_policies = { {"Bx", InitializationPolicy::Zero }, {"By", InitializationPolicy::Zero }, {"Bz", InitializationPolicy::Zero }, - #ifdef WARPX_DIM_RZ +#ifdef WARPX_DIM_RZ {"theta", InitializationPolicy::Zero}, - #endif +#endif {"tau", InitializationPolicy::RandomTau} }; diff --git a/Source/Particles/ParticleCreation/SmartCopy.H b/Source/Particles/ParticleCreation/SmartCopy.H index 827f23678..98ed7add7 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.H +++ b/Source/Particles/ParticleCreation/SmartCopy.H @@ -9,6 +9,8 @@ #include using NameMap = std::map; +using PolicyVec = amrex::Gpu::DeviceVector; + struct SmartCopyTag { @@ -19,14 +21,8 @@ struct SmartCopyTag int size () const noexcept { return common_names.size(); } }; -struct DefaultInitializationTag -{ - amrex::Gpu::DeviceVector m_policy_real; - amrex::Gpu::DeviceVector m_policy_int; - -}; - -SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst); +PolicyVec getPolicies (const NameMap& names) noexcept; +SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) noexcept; struct SmartCopy { @@ -90,8 +86,8 @@ class SmartCopyFactory { SmartCopyTag m_tag_real; SmartCopyTag m_tag_int; - amrex::Gpu::DeviceVector m_policy_real; - amrex::Gpu::DeviceVector m_policy_int; + PolicyVec m_policy_real; + PolicyVec m_policy_int; bool m_defined; public: @@ -102,19 +98,8 @@ public: m_tag_real = getSmartCopyTag(src.getParticleComps(), dst.getParticleComps()); m_tag_int = getSmartCopyTag(src.getParticleiComps(), dst.getParticleiComps()); - auto real_comps = dst.getParticleComps(); - m_policy_real.resize(real_comps.size()); - for (const auto& kv : real_comps) - { - m_policy_real[kv.second] = initialization_policies[kv.first]; - } - - auto int_comps = dst.getParticleiComps(); - m_policy_int.resize(int_comps.size()); - for (const auto& kv : int_comps) - { - m_policy_int[kv.second] = initialization_policies[kv.first]; - } + m_policy_real = getPolicies(dst.getParticleComps()); + m_policy_int = getPolicies(dst.getParticleiComps()); m_defined = true; } diff --git a/Source/Particles/ParticleCreation/SmartCopy.cpp b/Source/Particles/ParticleCreation/SmartCopy.cpp index 88e687503..da5d9a197 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.cpp +++ b/Source/Particles/ParticleCreation/SmartCopy.cpp @@ -1,6 +1,17 @@ #include "SmartCopy.H" -SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) +PolicyVec getPolicies (const NameMap& names) noexcept +{ + PolicyVec policies; + policies.resize(names.size()); + for (const auto& kv : names) + { + policies[kv.second] = initialization_policies[kv.first]; + } + return policies; +} + +SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) noexcept { SmartCopyTag tag; -- cgit v1.2.3 From 17abf92b4c61f62ffea57357e2159c1493094194 Mon Sep 17 00:00:00 2001 From: Andrew Myers Date: Mon, 3 Feb 2020 09:54:25 -0800 Subject: TABs -> spaces --- Source/Particles/MultiParticleContainer.cpp | 62 ++++++++--------- .../ParticleCreation/DefaultInitialization.H | 50 +++++++------- Source/Particles/ParticleCreation/SmartCopy.H | 80 +++++++++++----------- Source/Particles/ParticleCreation/SmartCopy.cpp | 12 ++-- Source/Particles/PhysicalParticleContainer.cpp | 12 ++-- 5 files changed, 108 insertions(+), 108 deletions(-) (limited to 'Source/Particles/ParticleCreation/SmartCopy.cpp') diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index dc04c7e5b..a73895a5a 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -652,10 +652,10 @@ MultiParticleContainer::doFieldIonization () // Get product species auto& pc_product = allcontainers[pc_source->ionization_product]; - SmartCopyFactory copy_factory(*pc_source, *pc_product); - auto Copier = copy_factory.getSmartCopy(); - auto IonizationFilter = static_cast(pc_source.get())->getIonizationFunc(); - + SmartCopyFactory copy_factory(*pc_source, *pc_product); + auto Copier = copy_factory.getSmartCopy(); + auto IonizationFilter = static_cast(pc_source.get())->getIonizationFunc(); + pc_source ->defineAllParticleTiles(); pc_product->defineAllParticleTiles(); @@ -678,41 +678,41 @@ MultiParticleContainer::doFieldIonization () // Loop over all grids (if not tiling) or grids and tiles (if tiling) for (MFIter mfi = pc_source->MakeMFIter(lev, info); mfi.isValid(); ++mfi) { - auto& src_tile = pc_source ->ParticlesAt(lev, mfi); - auto& dst_tile = pc_product->ParticlesAt(lev, mfi); + auto& src_tile = pc_source ->ParticlesAt(lev, mfi); + auto& dst_tile = pc_product->ParticlesAt(lev, mfi); - auto np_src = src_tile.numParticles(); - auto np_dst = dst_tile.numParticles(); + auto np_src = src_tile.numParticles(); + auto np_dst = dst_tile.numParticles(); - dst_tile.resize(np_dst + np_src); + dst_tile.resize(np_dst + np_src); - auto num_filter = filterAndTransformParticles(dst_tile, src_tile, - IonizationFilter, - IonizationTransformFunc(), - Copier); + auto num_filter = filterAndTransformParticles(dst_tile, src_tile, + IonizationFilter, + IonizationTransformFunc(), + Copier); - dst_tile.resize(np_dst + num_filter); + dst_tile.resize(np_dst + num_filter); - // Update NextID to include particles created in this function - int pid; + // Update NextID to include particles created in this function + int pid; #ifdef _OPENMP #pragma omp critical (ionization_nextid) #endif - { - pid = Particle<0,0>::NextID(); - Particle<0,0>::NextID(pid+num_filter); - } - const int cpuid = ParallelDescriptor::MyProc(); - auto pp = dst_tile.GetArrayOfStructs()().data() + np_dst; - amrex::For(num_filter, [=] AMREX_GPU_DEVICE (int ip) noexcept - { - auto& p = pp[ip]; - p.id() = pid+ip; - p.cpu() = cpuid; - }); - } - } - } + { + pid = Particle<0,0>::NextID(); + Particle<0,0>::NextID(pid+num_filter); + } + const int cpuid = ParallelDescriptor::MyProc(); + auto pp = dst_tile.GetArrayOfStructs()().data() + np_dst; + amrex::For(num_filter, [=] AMREX_GPU_DEVICE (int ip) noexcept + { + auto& p = pp[ip]; + p.id() = pid+ip; + p.cpu() = cpuid; + }); + } + } + } } void diff --git a/Source/Particles/ParticleCreation/DefaultInitialization.H b/Source/Particles/ParticleCreation/DefaultInitialization.H index b2d085818..41a0c2c36 100644 --- a/Source/Particles/ParticleCreation/DefaultInitialization.H +++ b/Source/Particles/ParticleCreation/DefaultInitialization.H @@ -51,36 +51,36 @@ static std::map initialization_policies = { AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::ParticleReal initializeRealValue (const InitializationPolicy policy) noexcept { - switch (policy) { - case InitializationPolicy::Zero : return 0.0; - case InitializationPolicy::One : return 1.0; - case InitializationPolicy::SignalingNan : { - return 1.0; - } - case InitializationPolicy::RandomTau : { - return 1.0; - } - default : { - amrex::Abort("Initialization Policy not recognized"); - return 1.0; - } - } + switch (policy) { + case InitializationPolicy::Zero : return 0.0; + case InitializationPolicy::One : return 1.0; + case InitializationPolicy::SignalingNan : { + return 1.0; + } + case InitializationPolicy::RandomTau : { + return 1.0; + } + default : { + amrex::Abort("Initialization Policy not recognized"); + return 1.0; + } + } } AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int initializeIntValue (const InitializationPolicy policy) noexcept { - switch (policy) { - case InitializationPolicy::Zero : return 0; - case InitializationPolicy::One : return 1; - case InitializationPolicy::SignalingNan : { - return 1; - } - default : { - amrex::Abort("Initialization Policy not recognized"); - return 1; - } - } + switch (policy) { + case InitializationPolicy::Zero : return 0; + case InitializationPolicy::One : return 1; + case InitializationPolicy::SignalingNan : { + return 1; + } + default : { + amrex::Abort("Initialization Policy not recognized"); + return 1; + } + } } #endif diff --git a/Source/Particles/ParticleCreation/SmartCopy.H b/Source/Particles/ParticleCreation/SmartCopy.H index d7a47d82f..f26aa8a7d 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.H +++ b/Source/Particles/ParticleCreation/SmartCopy.H @@ -35,29 +35,29 @@ struct SmartCopy const int* m_src_comps_i; const int* m_dst_comps_i; - const InitializationPolicy* m_policy_real; - const InitializationPolicy* m_policy_int; - - template + const InitializationPolicy* m_policy_real; + const InitializationPolicy* m_policy_int; + + template AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void operator() (DstData& dst, const SrcData& src, int i_src, int i_dst) const noexcept { - // the particle struct is always copied over + // the particle struct is always copied over dst.m_aos[i_dst] = src.m_aos[i_src]; - // initialize the real components - for (int j = 0; j < DstData::NAR; ++j) - dst.m_rdata[j][i_dst] = initializeRealValue(m_policy_real[j]); - for (int j = 0; j < dst.m_num_runtime_real; ++j) - dst.m_rdata[j][i_dst] = initializeRealValue(m_policy_real[j+DstData::NAR]); - - // initialize the int components - for (int j = 0; j < DstData::NAI; ++j) - dst.m_idata[j][i_dst] = initializeIntValue(m_policy_int[j]); - for (int j = 0; j < dst.m_num_runtime_int; ++j) - dst.m_idata[j][i_dst] = initializeIntValue(m_policy_int[j+DstData::NAI]); - - // copy the shared real components + // initialize the real components + for (int j = 0; j < DstData::NAR; ++j) + dst.m_rdata[j][i_dst] = initializeRealValue(m_policy_real[j]); + for (int j = 0; j < dst.m_num_runtime_real; ++j) + dst.m_rdata[j][i_dst] = initializeRealValue(m_policy_real[j+DstData::NAR]); + + // initialize the int components + for (int j = 0; j < DstData::NAI; ++j) + dst.m_idata[j][i_dst] = initializeIntValue(m_policy_int[j]); + for (int j = 0; j < dst.m_num_runtime_int; ++j) + dst.m_idata[j][i_dst] = initializeIntValue(m_policy_int[j+DstData::NAI]); + + // copy the shared real components for (int j = 0; j < m_num_copy_real; ++j) { int src_comp = (m_src_comps_r[j] < SrcData::NAR) ? m_src_comps_r[j] : m_src_comps_r[j] - SrcData::NAR; @@ -69,7 +69,7 @@ struct SmartCopy dst_data[i_dst] = src_data[i_src]; } - // copy the shared int components + // copy the shared int components for (int j = 0; j < m_num_copy_int; ++j) { int src_comp = (m_src_comps_i[j] < SrcData::NAI) ? m_src_comps_i[j] : m_src_comps_i[j] - SrcData::NAI; @@ -88,10 +88,10 @@ class SmartCopyFactory SmartCopyTag m_tag_real; SmartCopyTag m_tag_int; PolicyVec m_policy_real; - PolicyVec m_policy_int; + PolicyVec m_policy_int; bool m_defined; -public: +public: template SmartCopyFactory (const SrcPC& src, const DstPC& dst) noexcept : m_defined(false) @@ -99,9 +99,9 @@ public: m_tag_real = getSmartCopyTag(src.getParticleComps(), dst.getParticleComps()); m_tag_int = getSmartCopyTag(src.getParticleiComps(), dst.getParticleiComps()); - m_policy_real = getPolicies(dst.getParticleComps()); - m_policy_int = getPolicies(dst.getParticleiComps()); - + m_policy_real = getPolicies(dst.getParticleComps()); + m_policy_int = getPolicies(dst.getParticleiComps()); + m_defined = true; } @@ -113,9 +113,9 @@ public: m_tag_real.dst_comps.dataPtr(), m_tag_int.size(), m_tag_int. src_comps.dataPtr(), - m_tag_int. dst_comps.dataPtr(), - m_policy_real.dataPtr(), - m_policy_int.dataPtr()}; + m_tag_int. dst_comps.dataPtr(), + m_policy_real.dataPtr(), + m_policy_int.dataPtr()}; } bool isDefined () const noexcept { return m_defined; } @@ -139,16 +139,16 @@ public: template ::value, int> foo = 0> Index filterAndTransformParticles (DstTile& dst, SrcTile& src, Index* mask, - TransFunc&& t, CopyFunc&& f) noexcept + TransFunc&& t, CopyFunc&& f) noexcept { - using namespace amrex; - auto np = src.numParticles(); + using namespace amrex; + auto np = src.numParticles(); Gpu::DeviceVector offsets(np); Gpu::exclusive_scan(mask, mask+np, offsets.begin()); Index last_mask, last_offset; Gpu::copyAsync(Gpu::deviceToHost, mask+np-1, mask + np, &last_mask); - Gpu::copyAsync(Gpu::deviceToHost, offsets.data()+np-1, offsets.data()+np, &last_offset); + Gpu::copyAsync(Gpu::deviceToHost, offsets.data()+np-1, offsets.data()+np, &last_offset); auto p_offsets = offsets.dataPtr(); @@ -158,13 +158,13 @@ Index filterAndTransformParticles (DstTile& dst, SrcTile& src, Index* mask, AMREX_HOST_DEVICE_FOR_1D( np, i, { if (mask[i]) - { - f(dst_data, src_data, i, p_offsets[i]); - t(dst_data, src_data, i, p_offsets[i]); - } + { + f(dst_data, src_data, i, p_offsets[i]); + t(dst_data, src_data, i, p_offsets[i]); + } }); - Gpu::streamSynchronize(); + Gpu::streamSynchronize(); return last_mask + last_offset; } @@ -185,10 +185,10 @@ Index filterAndTransformParticles (DstTile& dst, SrcTile& src, Index* mask, */ template int filterAndTransformParticles (DstTile& dst, SrcTile& src, - PredFunc&& p, TransFunc&& t, CopyFunc&& f) noexcept + PredFunc&& p, TransFunc&& t, CopyFunc&& f) noexcept { auto np = src.numParticles(); - amrex::Gpu::DeviceVector mask(np); + amrex::Gpu::DeviceVector mask(np); auto p_mask = mask.dataPtr(); const auto src_data = src.getParticleTileData(); @@ -199,8 +199,8 @@ int filterAndTransformParticles (DstTile& dst, SrcTile& src, }); return filterAndTransformParticles(dst, src, mask.dataPtr(), - std::forward(t), - std::forward(f)); + std::forward(t), + std::forward(f)); } diff --git a/Source/Particles/ParticleCreation/SmartCopy.cpp b/Source/Particles/ParticleCreation/SmartCopy.cpp index da5d9a197..5ceb625a8 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.cpp +++ b/Source/Particles/ParticleCreation/SmartCopy.cpp @@ -3,12 +3,12 @@ PolicyVec getPolicies (const NameMap& names) noexcept { PolicyVec policies; - policies.resize(names.size()); - for (const auto& kv : names) - { - policies[kv.second] = initialization_policies[kv.first]; - } - return policies; + policies.resize(names.size()); + for (const auto& kv : names) + { + policies[kv.second] = initialization_policies[kv.first]; + } + return policies; } SmartCopyTag getSmartCopyTag (const NameMap& src, const NameMap& dst) noexcept diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp index 2753c8ccd..4c98f436e 100644 --- a/Source/Particles/PhysicalParticleContainer.cpp +++ b/Source/Particles/PhysicalParticleContainer.cpp @@ -2372,12 +2372,12 @@ PhysicalParticleContainer::getIonizationFunc () { BL_PROFILE("PPC::getIonizationFunc"); - return IonizationFilterFunc{ionization_energies.dataPtr(), - adk_prefactor.dataPtr(), - adk_exp_prefactor.dataPtr(), - adk_power.dataPtr(), - particle_icomps["ionization_level"], - ion_atomic_number}; + return IonizationFilterFunc{ionization_energies.dataPtr(), + adk_prefactor.dataPtr(), + adk_exp_prefactor.dataPtr(), + adk_power.dataPtr(), + particle_icomps["ionization_level"], + ion_atomic_number}; } //This function return true if the PhysicalParticleContainer contains electrons -- cgit v1.2.3 From 8a22bb7897053a31c07e163bd40e4d1667051122 Mon Sep 17 00:00:00 2001 From: Andrew Myers Date: Wed, 5 Feb 2020 09:57:22 -0800 Subject: add copyright headers --- Source/Particles/ElementaryProcess/Ionization.H | 7 +++++++ Source/Particles/ParticleCreation/DefaultInitialization.H | 7 +++++++ Source/Particles/ParticleCreation/FilterCopyTransform.H | 7 +++++++ Source/Particles/ParticleCreation/SmartCopy.H | 7 +++++++ Source/Particles/ParticleCreation/SmartCopy.cpp | 7 +++++++ 5 files changed, 35 insertions(+) (limited to 'Source/Particles/ParticleCreation/SmartCopy.cpp') diff --git a/Source/Particles/ElementaryProcess/Ionization.H b/Source/Particles/ElementaryProcess/Ionization.H index 660cac248..279339d07 100644 --- a/Source/Particles/ElementaryProcess/Ionization.H +++ b/Source/Particles/ElementaryProcess/Ionization.H @@ -1,3 +1,10 @@ +/* Copyright 2019-2020 Andrew Myers, Axel Huebl, + * Maxence Thevenet + * + * This file is part of WarpX. + * + * License: BSD-3-Clause-LBNL + */ #ifndef IONIZATION_H_ #define IONIZATION_H_ diff --git a/Source/Particles/ParticleCreation/DefaultInitialization.H b/Source/Particles/ParticleCreation/DefaultInitialization.H index 7317c336e..2d9832c30 100644 --- a/Source/Particles/ParticleCreation/DefaultInitialization.H +++ b/Source/Particles/ParticleCreation/DefaultInitialization.H @@ -1,3 +1,10 @@ +/* Copyright 2019-2020 Andrew Myers, Axel Huebl, + * Maxence Thevenet + * + * This file is part of WarpX. + * + * License: BSD-3-Clause-LBNL + */ #ifndef DEFAULTINITIALIZATION_H_ #define DEFAULTINITIALIZATION_H_ diff --git a/Source/Particles/ParticleCreation/FilterCopyTransform.H b/Source/Particles/ParticleCreation/FilterCopyTransform.H index 9e5427e6b..9a5ffa6a8 100644 --- a/Source/Particles/ParticleCreation/FilterCopyTransform.H +++ b/Source/Particles/ParticleCreation/FilterCopyTransform.H @@ -1,3 +1,10 @@ +/* Copyright 2019-2020 Andrew Myers, Axel Huebl, + * Maxence Thevenet + * + * This file is part of WarpX. + * + * License: BSD-3-Clause-LBNL + */ #ifndef FILTER_COPY_TRANSFORM_H_ #define FILTER_COPY_TRANSFORM_H_ diff --git a/Source/Particles/ParticleCreation/SmartCopy.H b/Source/Particles/ParticleCreation/SmartCopy.H index 7c71c9e37..0668321c9 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.H +++ b/Source/Particles/ParticleCreation/SmartCopy.H @@ -1,3 +1,10 @@ +/* Copyright 2019-2020 Andrew Myers, Axel Huebl, + * Maxence Thevenet + * + * This file is part of WarpX. + * + * License: BSD-3-Clause-LBNL + */ #ifndef SMART_COPY_H_ #define SMART_COPY_H_ diff --git a/Source/Particles/ParticleCreation/SmartCopy.cpp b/Source/Particles/ParticleCreation/SmartCopy.cpp index 5ceb625a8..7d323ce39 100644 --- a/Source/Particles/ParticleCreation/SmartCopy.cpp +++ b/Source/Particles/ParticleCreation/SmartCopy.cpp @@ -1,3 +1,10 @@ +/* Copyright 2019-2020 Andrew Myers, Axel Huebl, + * Maxence Thevenet + * + * This file is part of WarpX. + * + * License: BSD-3-Clause-LBNL + */ #include "SmartCopy.H" PolicyVec getPolicies (const NameMap& names) noexcept -- cgit v1.2.3