diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 78c069551b47e817ee08503dace8b5f383aaae3a..a9753c85f32f985dd222adb2d120d990bf8de9e8 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -11,13 +11,12 @@ <component name="ChangeListManager"> <list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Box.c" beforeDir="false" afterPath="$PROJECT_DIR$/Box.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Star.c" beforeDir="false" afterPath="$PROJECT_DIR$/Star.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Star.h" beforeDir="false" afterPath="$PROJECT_DIR$/Star.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Star.o" beforeDir="false" afterPath="$PROJECT_DIR$/Star.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Vector.c" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Vector.h" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.h" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Vector.o" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/galaxy_simulation" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/galaxy_simulation" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/galaxy_simulation.c" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/makefile" beforeDir="false" afterPath="$PROJECT_DIR$/makefile" afterDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -27,7 +26,7 @@ </component> <component name="FileEditorManager"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file pinned="false" current-in-tab="true"> + <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="427"> @@ -66,8 +65,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Star.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="291"> - <caret line="75" column="79" selection-start-line="75" selection-start-column="79" selection-end-line="75" selection-end-column="79" /> + <state relative-caret-position="-867"> + <caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" /> </state> </provider> </entry> @@ -75,33 +74,46 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Star.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="323"> - <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="44" /> + <state relative-caret-position="340"> + <caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/galaxy.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="255"> + <caret line="15" column="87" selection-start-line="15" selection-start-column="87" selection-end-line="15" selection-end-column="87" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/galaxy_simulation.c"> + <entry file="file://$PROJECT_DIR$/galaxy.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="17" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" /> + <state relative-caret-position="17"> + <caret line="1" column="15" lean-forward="true" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/makefile"> + <entry file="file://$PROJECT_DIR$/galaxy_simulation.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="153"> - <caret line="9" column="31" selection-start-line="9" selection-start-column="31" selection-end-line="9" selection-end-column="31" /> + <state relative-caret-position="68"> + <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/../C/Projet/makefile"> - <provider selected="true" editor-type-id="text-editor" /> + <entry file="file://$PROJECT_DIR$/makefile"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="34"> + <caret line="2" column="49" selection-start-line="2" selection-start-column="49" selection-end-line="2" selection-end-column="49" /> + </state> + </provider> </entry> </file> </leaf> @@ -115,13 +127,15 @@ <option value="$PROJECT_DIR$/Vector_Test.h" /> <option value="$PROJECT_DIR$/Vector_Test.c" /> <option value="$PROJECT_DIR$/Box.h" /> - <option value="$PROJECT_DIR$/galaxy_simulation.c" /> - <option value="$PROJECT_DIR$/Star.h" /> <option value="$PROJECT_DIR$/Box.c" /> - <option value="$PROJECT_DIR$/makefile" /> <option value="$PROJECT_DIR$/Vector.h" /> - <option value="$PROJECT_DIR$/Star.c" /> <option value="$PROJECT_DIR$/Vector.c" /> + <option value="$PROJECT_DIR$/Star.c" /> + <option value="$PROJECT_DIR$/galaxy_simulation.c" /> + <option value="$PROJECT_DIR$/Star.h" /> + <option value="$PROJECT_DIR$/galaxy.h" /> + <option value="$PROJECT_DIR$/makefile" /> + <option value="$PROJECT_DIR$/galaxy.c" /> </list> </option> </component> @@ -179,12 +193,12 @@ <option name="presentableId" value="Default" /> <updated>1559227081243</updated> <workItem from="1559227084365" duration="53793000" /> - <workItem from="1560336527698" duration="9022000" /> + <workItem from="1560336527698" duration="16824000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="62815000" /> + <option name="totallyTimeSpent" value="70617000" /> </component> <component name="ToolWindowManager"> <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> @@ -231,13 +245,6 @@ <entry file="file://$PROJECT_DIR$/Vector.o"> <provider selected="true" editor-type-id="text-editor" /> </entry> - <entry file="file://$PROJECT_DIR$/makefile"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="153"> - <caret line="9" column="31" selection-start-line="9" selection-start-column="31" selection-end-line="9" selection-end-column="31" /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/../C/Projet/makefile"> <provider selected="true" editor-type-id="text-editor" /> </entry> @@ -255,10 +262,24 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Star.h"> + <entry file="file://$PROJECT_DIR$/Vector.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="427"> + <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/galaxy_simulation.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="323"> - <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="44" /> + <state relative-caret-position="68"> + <caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/Star.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-867"> + <caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" /> </state> </provider> </entry> @@ -269,24 +290,31 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/galaxy_simulation.c"> + <entry file="file://$PROJECT_DIR$/Star.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="51"> - <caret line="3" column="17" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" /> + <state relative-caret-position="340"> + <caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Star.c"> + <entry file="file://$PROJECT_DIR$/galaxy.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="291"> - <caret line="75" column="79" selection-start-line="75" selection-start-column="79" selection-end-line="75" selection-end-column="79" /> + <state relative-caret-position="17"> + <caret line="1" column="15" lean-forward="true" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Vector.c"> + <entry file="file://$PROJECT_DIR$/makefile"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="427"> - <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" /> + <state relative-caret-position="34"> + <caret line="2" column="49" selection-start-line="2" selection-start-column="49" selection-end-line="2" selection-end-column="49" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/galaxy.c"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="255"> + <caret line="15" column="87" selection-start-line="15" selection-start-column="87" selection-end-line="15" selection-end-column="87" /> </state> </provider> </entry> diff --git a/Star.c b/Star.c index 8c892bc71681ea89c35cfd939178d9c003330ec6..72cf4a3d88dcb604c1cb9079a218c7849df07663 100644 --- a/Star.c +++ b/Star.c @@ -59,15 +59,13 @@ void reset_acceleration(star *s){ void update_acceleration(star *s, const star *const s2) { - double G = 6.67e-11; vec sub = sub_vect(s2->pos_t,s->pos_t); - vec F = mul_vect(G * s->mass * s2->mass, sub); double n = pow(norme(sub),3); - + vec F = mul_vect(6.67e-11 * s->mass * s2->mass, sub); F = mul_vect(1/n,F); - print_vect(F); s->acc = mul_vect(1/s->mass,F); + } @@ -122,25 +120,7 @@ int Test_reset_acc(){ free(star_test); } -int Test_update_acc(){ - - vec terre = (vec){0.0,0.0}; - vec v = (vec){2.0,0.5}; - vec a = (vec){1.0,1.0}; - - vec lune = (vec){0.0,384400000.0}; - - star *star1 = new_star_vel(terre,v,a,5.9722e24,0.0); - star *star2 = new_star_vel(lune,v,a,7.342e22,0.0); - - update_acceleration(star2,star1); - free(star1); - free(star2); - -} - int star_tests(){ Test_new_star(); Test_reset_acc(); - Test_update_acc(); } \ No newline at end of file diff --git a/Star.h b/Star.h index 71c768b3684df5c9226dedce5a91ffc9f69615ab..27a2c2d354610b1d61be18d58ed2baa94afbcd4e 100644 --- a/Star.h +++ b/Star.h @@ -19,9 +19,5 @@ void update_acceleration(star *s, const star *const s2); //Mise à jour de la position d’une étoile, avec dt la discrétisation temporelle: void update_position(star *s, double dt); -//En pseudo-code cette mise à jour est de la forme: -//pos_t = 2*pos_t - pos_t_dt + acc * dt * dt - - // Affichage des champs d’une étoile pour aider au débogage: void print_star(const star *const s); \ No newline at end of file diff --git a/Star.o b/Star.o index 2a406ff12991be4950d2e3a751e3ce589c8a9387..31a31dd95f878f0d7ad4feda1d3dc2f5adeacf65 100644 Binary files a/Star.o and b/Star.o differ diff --git a/galaxy.c b/galaxy.c new file mode 100644 index 0000000000000000000000000000000000000000..c81a7e3ff52b05b7a2960e481dd44cc1c5dfd029 --- /dev/null +++ b/galaxy.c @@ -0,0 +1,23 @@ +#include <stdio.h> +#include <stdlib.h> +#include <stdbool.h> +#include <math.h> +#include "galaxy.h" + + +galaxy *create_and_init_galaxy(int num_bodies, box b,double dt){ + + galaxy* new_gal = malloc(sizeof(galaxy)); + new_gal->num_bodies = num_bodies; + new_gal->b = b; + + star* tab[num_bodies]; + for(int i = 0; i<num_bodies;i++){ + tab[i] = new_star_vel((vec){0.0,0.0},(vec){1.0,1.0},(vec){0.0,0.0},100000,1.0); + } + new_gal->stars = tab; + + return new_gal; +} + +//FONCTION TEST// \ No newline at end of file diff --git a/galaxy.h b/galaxy.h new file mode 100644 index 0000000000000000000000000000000000000000..a549983b78766d33853d062b09a1be423e0ea099 --- /dev/null +++ b/galaxy.h @@ -0,0 +1,22 @@ +#include "Star.h" +typedef struct galaxy { + int num_bodies; + star *stars; + box b; +} galaxy; + + +//L’allocation et initialisation de la galaxie: +galaxy *create_and_init_galaxy(int num_bodies, box b,double dt); + +//La remise à zéro de toutes les accélérations des étoiles de la galaxie: +void reset_accelerations(galaxy *g); + +//La mise à jour des positions de toutes les étoiles de la galaxie: +void update_positions(galaxy *g, double dt); + +//La libération de la mémoire de la galaxie: +void free_galaxy(galaxy *g); + +//Lorsqu’une étoile, s, sort de la box de la galaxie, celle-ci doit être s doit effacée du tableau d’étoiles contenu dans la galaxie et sa mémoire libérée: +void resize_galaxy(galaxy *g); diff --git a/galaxy.o b/galaxy.o new file mode 100644 index 0000000000000000000000000000000000000000..327f70ddba37941eadfae2cd4273f44fcc717d6b Binary files /dev/null and b/galaxy.o differ diff --git a/galaxy_simulation b/galaxy_simulation index 65dc84f9d90ffd9e0acf082706742b9f5719ec82..7f3c8dfa0efe3757097874ac8edf6ebfd1a86bcc 100644 Binary files a/galaxy_simulation and b/galaxy_simulation differ diff --git a/galaxy_simulation.c b/galaxy_simulation.c index ae041f8fd68e5b5693b228af9d97ee8f4f5a8fa6..a41787e4cb3d3a268932150ec60ac300b861cd94 100644 --- a/galaxy_simulation.c +++ b/galaxy_simulation.c @@ -2,7 +2,7 @@ #include <stdlib.h> #include <stdbool.h> #include <math.h> -#include "Star.h" +#include "galaxy.h" int main(int argc, char *argv[]) { if (argc == 2) { diff --git a/makefile b/makefile index 2196892491f2fe04e066477b696a729dd5df091c..ec5c3fa7b39fdc5e70f4f21d09cc442039d4de20 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,7 @@ -galaxy_simulation: vector.o Box.o Star.o galaxy_simulation.o - gcc -o galaxy_simulation Vector.o Box.o Star.o galaxy_simulation.o -lm +galaxy_simulation: vector.o Box.o Star.o galaxy.o galaxy_simulation.o + gcc -o galaxy_simulation Vector.o Box.o Star.o galaxy.o galaxy_simulation.o -lm galaxy_simulation.o: galaxy_simulation.c gcc -o galaxy_simulation.o -c galaxy_simulation.c @@ -11,4 +11,6 @@ Vector.o: Vector.c Box.o: Box.c gcc -o Box.o -c Box.c Star.o: Star.c - gcc -o Star.o -c Star.c \ No newline at end of file + gcc -o Star.o -c Star.c +galaxy.o: galaxy.c + gcc -o galaxy.o -c galaxy.c \ No newline at end of file