Skip to content

Commit

Permalink
more pure SoA updates for SENSEI
Browse files Browse the repository at this point in the history
  • Loading branch information
atmyers committed Jul 12, 2023
1 parent 8fb8efc commit eca2fec
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 109 deletions.
8 changes: 4 additions & 4 deletions Src/Extern/SENSEI/AMReX_AmrMeshParticleDataAdaptor.H
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

namespace amrex
{
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
template<typename ParticleType, int NArrayReal, int NArrayInt>
class AmrMeshParticleDataAdaptor : public sensei::DataAdaptor
{
public:
Expand All @@ -27,7 +27,7 @@ public:
AmrMesh *mesh,
const std::vector<amrex::Vector<amrex::MultiFab>*> &mesh_states,
const std::vector<std::vector<std::string>> &mesh_names,
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & rStructs = {},
const std::map<std::string, int> & iStructs = {},
const std::map<std::string, std::vector<int>> & rArrays = {},
Expand Down Expand Up @@ -55,7 +55,7 @@ protected:
AmrMeshParticleDataAdaptor()
{
m_meshAdaptor = AmrMeshDataAdaptor::New();
m_particleAdaptor = ParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::New();
m_particleAdaptor = ParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::New();
}

~AmrMeshParticleDataAdaptor()
Expand All @@ -65,7 +65,7 @@ protected:
}

private:
ParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>* m_particleAdaptor;
ParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>* m_particleAdaptor;
AmrMeshDataAdaptor* m_meshAdaptor;

const std::string m_meshName = "mesh";
Expand Down
8 changes: 4 additions & 4 deletions Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptor.H
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

namespace amrex
{
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
template<typename ParticleType, int NArrayReal, int NArrayInt>
class AmrParticleDataAdaptor : public sensei::DataAdaptor
{
public:
Expand All @@ -25,7 +25,7 @@ public:

int SetDataSource(
Amr *amr,
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & rStructs = {},
const std::map<std::string, int> & iStructs = {},
const std::map<std::string, std::vector<int>> & rArrays = {},
Expand Down Expand Up @@ -53,7 +53,7 @@ protected:
AmrParticleDataAdaptor()
{
m_meshAdaptor = AmrDataAdaptor::New();
m_particleAdaptor = ParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::New();
m_particleAdaptor = ParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::New();
}

~AmrParticleDataAdaptor()
Expand All @@ -63,7 +63,7 @@ protected:
}

private:
ParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>* m_particleAdaptor;
ParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>* m_particleAdaptor;
AmrDataAdaptor* m_meshAdaptor;

const std::string m_meshName = "mesh";
Expand Down
62 changes: 31 additions & 31 deletions Src/Extern/SENSEI/AMReX_AmrParticleDataAdaptorI.H
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
namespace amrex
{
//-----------------------------------------------------------------------------
template <int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>*
AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::New()
template <typename ParticleType, int NArrayReal, int NArrayInt>
AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>*
AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::New()
{
auto result = new AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>;
auto result = new AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>;
result->InitializeObjectBase();
return result;
}

//-----------------------------------------------------------------------------
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::SetDataSource(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::SetDataSource(
Amr *amr,
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & rStructs,
const std::map<std::string, int> & iStructs,
const std::map<std::string, std::vector<int>> & rArrays,
Expand All @@ -29,8 +29,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::SetD

// SENSEI API
#if SENSEI_VERSION_MAJOR >= 3
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetMeshMetadata(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetMeshMetadata(
unsigned int id,
sensei::MeshMetadataPtr &metadata)
{
Expand All @@ -47,8 +47,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetM
}

#else
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetMeshName(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetMeshName(
unsigned int id,
std::string &meshName)
{
Expand All @@ -64,8 +64,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetM
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetMeshHasGhostNodes(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetMeshHasGhostNodes(
const std::string &meshName, int &nLayers)
{
if(id == 0)
Expand All @@ -80,8 +80,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetM
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetMeshHasGhostCells(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetMeshHasGhostCells(
const std::string &meshName, int &nLayers)
{
if(id == 0)
Expand All @@ -96,8 +96,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetM
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetNumberOfArrays(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetNumberOfArrays(
const std::string &meshName,
int association,
unsigned int &numberOfArrays)
Expand All @@ -114,8 +114,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetN
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetArrayName(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetArrayName(
const std::string &meshName,
int association,
unsigned int index,
Expand All @@ -134,16 +134,16 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetA
}
#endif

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetNumberOfMeshes(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetNumberOfMeshes(
unsigned int &numMeshes)
{
numMeshes = 2;
return 0;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetMesh(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::GetMesh(
const std::string &meshName,
bool structureOnly,
svtkDataObject *&mesh)
Expand All @@ -160,8 +160,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::GetM
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddGhostNodesArray(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::AddGhostNodesArray(
svtkDataObject* mesh,
const std::string &meshName)
{
Expand All @@ -177,8 +177,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddG
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddGhostCellsArray(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::AddGhostCellsArray(
svtkDataObject* mesh,
const std::string &meshName)
{
Expand All @@ -194,8 +194,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddG
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddArray(
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::AddArray(
svtkDataObject* mesh,
const std::string &meshName,
int association,
Expand All @@ -213,8 +213,8 @@ int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::AddA
return -1;
}

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::ReleaseData()
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::ReleaseData()
{
this->m_particleAdaptor->ReleaseData();
this->m_meshAdaptor->ReleaseData();
Expand Down
12 changes: 6 additions & 6 deletions Src/Extern/SENSEI/AMReX_AmrParticleInSituBridge.H
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,19 @@ public:
/** invoke the in situ analysis with data from an AmrMesh and ParticleContainer
* instance.
*/
template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
template<typename ParticleType, int NArrayReal, int NArrayInt>
int update(amrex::Amr *amr,
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & particles_rStructs = {},
const std::map<std::string, int> & particles_iStructs = {},
const std::map<std::string, std::vector<int>> & particles_rArrays = {},
const std::map<std::string, int> & particles_iArrays = {});
};

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
template<typename ParticleType, int NArrayReal, int NArrayInt>
int AmrParticleInSituBridge::update(
amrex::Amr *amr,
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & particles_rStructs,
const std::map<std::string, int> & particles_iStructs,
const std::map<std::string, std::vector<int>> & particles_rArrays,
Expand All @@ -63,8 +63,8 @@ int AmrParticleInSituBridge::update(
return -1;
}

amrex::AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt> *data_adaptor
= amrex::AmrParticleDataAdaptor<NStructReal, NStructInt, NArrayReal, NArrayInt>::New();
amrex::AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt> *data_adaptor
= amrex::AmrParticleDataAdaptor<ParticleType, NArrayReal, NArrayInt>::New();

if (comm != MPI_COMM_NULL)
data_adaptor->SetCommunicator(comm);
Expand Down
6 changes: 3 additions & 3 deletions Src/Extern/SENSEI/AMReX_ParticleDataAdaptor.H
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class svtkPolyData;
namespace amrex
{

template<int NStructReal, int NStructInt, int NArrayReal, int NArrayInt>
template<typename ParticleType, int NArrayReal, int NArrayInt>
class ParticleDataAdaptor : public sensei::DataAdaptor
{
public:
Expand All @@ -22,7 +22,7 @@ public:

// set the source of the simulation data
int SetDataSource(
amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt> * particles,
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt> * particles,
const std::map<std::string, std::vector<int>> & rStructs = {},
const std::map<std::string, int> & iStructs = {},
const std::map<std::string, std::vector<int>> & rArrays = {},
Expand Down Expand Up @@ -83,7 +83,7 @@ private:

const std::string m_particlesName = "particles";

amrex::ParticleContainer<NStructReal, NStructInt, NArrayReal, NArrayInt>* m_particles;
amrex::ParticleContainer<ParticleType, NArrayReal, NArrayInt>* m_particles;

using RealDataMapType = std::map<std::string, std::vector<int>>;
using IntDataMapType = std::map<std::string, int>;
Expand Down
Loading

0 comments on commit eca2fec

Please sign in to comment.