Commit a54db36e authored by COULAUD Olivier's avatar COULAUD Olivier

rename file in .hpp, but file is not used

parent 753b6564
// See LICENCE file at project root
/**
* This file provide an interface to the Chebyshev kernel, in order to
* call it from C code (and thus use it through API's user defined
* kernel feature).
*/
#ifndef FCHEBINTERFACE_H
#define FCHEBINTERFACE_H
#include "Utils/FGlobal.hpp"
//To access leaf datas
struct FChebLeaf_struct;
typedef struct FChebLeaf_struct ChebLeafStruct;
//To access a cell
struct FChebCell_struct;
typedef struct FChebCell_struct ChebCellStruct;
ChebCellStruct * ChebCellStruct_create(long long int index,int * tree_position);
void ChebCellStruct_free(ChebCellStruct * cell);
//To manage leaves
ChebLeafStruct * ChebLeafStruct_create(FSize nbPart);
void ChebLeafStruct_free(void * leafData);
void ChebLeafStruct_fill(FSize nbPart, const FSize * idxPart,
long long morton_index, void * leafData,
void * userData);
void ChebLeafStruct_get_back_results(void * leafData,
double ** forceXptr, double ** forceYptr, double ** forceZptr,
double ** potentialsptr);
//To access the kernel
struct FChebKernel_struct;
typedef struct FChebKernel_struct ChebKernelStruct;
ChebKernelStruct * ChebKernelStruct_create(int inTreeHeight,
double inBoxWidth,
double* inBoxCenter);
void ChebKernelStruct_free(void * kernel);
//To access kernel member function
void ChebKernel_P2M(void * leafCell, void * leafData, FSize nbParticles,const FSize* particleIndexes, void* kernel);
void ChebKernel_M2M(int level, void* parentCell, int childPosition, void* childCell, void* kernel);
//Change here to somethong nearer M2L defined in Src/Components/FAbstractKernels.hpp
void ChebKernel_M2L(int level, void* targetCell,const int*neighborPositions,int size, void** sourceCell, void* kernel);
void ChebKernel_L2L(int level, void* parentCell, int childPosition, void* childCell, void* kernel);
void ChebKernel_L2P(void* leafCell, void * leafData, FSize nbParticles, const FSize* particleIndexes, void* kernel);
void ChebKernel_P2P(void * targetLeaf, FSize nbParticles, const FSize* particleIndexes,
void ** sourceLeaves,
const FSize ** sourceParticleIndexes, FSize * sourceNbPart,
const int * sourcePosition,const int size,void* userData);
void ChebKernel_P2P_old(void * targetLeaf, FSize nbParticles, const FSize* particleIndexes,
void ** sourceLeaves,
const FSize ** sourceParticleIndexes,FSize* sourceNbPart,
const int * sourcePosition,const int size, void* inKernel);
void ChebKernel_P2PRemote(void * targetLeaf,FSize nbParticles, const FSize* particleIndexes,
void ** sourceLeaves,
const FSize ** sourceParticleIndexes,FSize * sourceNbPart,
const int * sourcePosition, const int size, void* inKernel);
void ChebCell_reset(int level, long long morton_index, int* tree_position, double* spatial_position, void * userCell, void * kernel);
FSize ChebCell_getSize(int level, long long morton_index);
void ChebCell_copy(void * userDatas, FSize size, void * memoryAllocated);
void* ChebCell_restore(int level, void * arrayTobeRead);
FSize ChebLeaf_getSize(FSize nbPart);
void ChebLeaf_copy(FSize nbPart,void * userdata, void * memAllocated);
void * ChebLeaf_restore(FSize nbPart,void * memToRead);
typedef struct myUserDatas{
ChebKernelStruct * kernelStruct;
double * insertedPositions;
double * myPhyValues;
double ** forcesComputed;
//In the same way we store multiples forces array.
double ** potentials;
double totalEnergy;
}UserData;
#endif //FCHEBINTERFACE_H
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment