eu estou utilizando um integrador de n-corpos todo escrito em C que é o pacote chamado Rebound.
Para o meu projeto o ideal seria adicionar novas variáveis em uma das estruturas do Rebound. A estrutura que o pacote vem é:
struct reb_particle {
double x; ///< x-position of the particle.
double y; ///< y-position of the particle.
double z; ///< z-position of the particle.
double vx; ///< x-velocity of the particle.
double vy; ///< y-velocity of the particle.
double vz; ///< z-velocity of the particle.
double ax; ///< x-acceleration of the particle.
double ay; ///< y-acceleration of the particle.
double az; ///< z-acceleration of the particle.
double m; ///< Mass of the particle.
double r; ///< Radius of the particle.
double lastcollision; ///< Last time the particle had a physical collision.
struct reb_treecell* c; ///< Pointer to the cell the particle is currently in.
uint32_t hash; ///< hash to identify particle.
void* ap; ///< Functionality for externally adding additional properties to particles.
struct reb_simulation* sim; ///< Pointer to the parent simulation.
};
Eu gostaria de adicionar, dado a seguir, as variáveis externamente, sem alterar o código fonte do pacote.
double J2; //coeficiente J2 de achatamento planetário
double J4; //coeficiente J4 de achatamento planetário
double beta; //relação adimensional da força gravitacional e de radiação solar
Eu realmente não sei qual seria a maneira ideal de fazer isso, eu sei que ele tem isso:
void* ap; ///< Functionality for externally adding additional properties to particles.
Mas eu nunca trabalhei com algo do gênero e nem sei se realmente serve para o que eu estou querendo.
Não sei se consegui explicar direito o que eu preciso, só tentei ser o mais direta possível, mas se alguém puder dar alguma luz, ficarei muito grata.
Pergunta
patbuzzatto
Boa noite,
eu estou utilizando um integrador de n-corpos todo escrito em C que é o pacote chamado Rebound.
Para o meu projeto o ideal seria adicionar novas variáveis em uma das estruturas do Rebound. A estrutura que o pacote vem é:
struct reb_particle { double x; ///< x-position of the particle. double y; ///< y-position of the particle. double z; ///< z-position of the particle. double vx; ///< x-velocity of the particle. double vy; ///< y-velocity of the particle. double vz; ///< z-velocity of the particle. double ax; ///< x-acceleration of the particle. double ay; ///< y-acceleration of the particle. double az; ///< z-acceleration of the particle. double m; ///< Mass of the particle. double r; ///< Radius of the particle. double lastcollision; ///< Last time the particle had a physical collision. struct reb_treecell* c; ///< Pointer to the cell the particle is currently in. uint32_t hash; ///< hash to identify particle. void* ap; ///< Functionality for externally adding additional properties to particles. struct reb_simulation* sim; ///< Pointer to the parent simulation. };
Eu gostaria de adicionar, dado a seguir, as variáveis externamente, sem alterar o código fonte do pacote.
double J2; //coeficiente J2 de achatamento planetário double J4; //coeficiente J4 de achatamento planetário double beta; //relação adimensional da força gravitacional e de radiação solar
Eu realmente não sei qual seria a maneira ideal de fazer isso, eu sei que ele tem isso:
void* ap; ///< Functionality for externally adding additional properties to particles.
Mas eu nunca trabalhei com algo do gênero e nem sei se realmente serve para o que eu estou querendo.
Não sei se consegui explicar direito o que eu preciso, só tentei ser o mais direta possível, mas se alguém puder dar alguma luz, ficarei muito grata.
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.