tsave initial conditions, add function to write all output files - slidergrid - grid of elastic sliders on a frictional surface
 (HTM) git clone git://src.adamsgaard.dk/slidergrid
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 695b94d0b8c81fbbcfca476c06eda313facaf72c
 (DIR) parent 153343f86817343c65a421adafecbb2769977911
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Thu, 17 Mar 2016 16:41:37 -0700
       
       save initial conditions, add function to write all output files
       
       Diffstat:
         M Makefile                            |       5 +++--
         M slidergrid/main.c                   |      38 ++++++++-----------------------
         M slidergrid/simulation.c             |      34 +++++++++++++++++++++++++++++++
         M slidergrid/simulation.h             |       2 ++
       
       4 files changed, 49 insertions(+), 30 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       t@@ -14,8 +14,8 @@ default: run-test
        
        run-test: test
                ./$<
       -        #python postprocessing.py --plot-sliders $<-output
       -
       +        @#python postprocessing.py --plot-sliders $<-output
       +        @#rsync -rav test-output /var/www/html/
        
        test: test.o $(ESSENTIALOBJS)
                $(CC) $(LDLIBS) $^ -o $@
       t@@ -29,5 +29,6 @@ debug: $(BIN)
        
        clean:
                @$(RM) $(BIN)
       +        @$(RM) -r $(BIN)-output
                @$(RM) *.o
                @$(RM) $(SRCFOLDER)*.o
 (DIR) diff --git a/slidergrid/main.c b/slidergrid/main.c
       t@@ -112,11 +112,17 @@ int main(int argc, char** argv)
                }
            }
        
       +    // save initial conditions to output files
       +    if (write_simulation_output(sim, output_folder)) {
       +        fprintf(stderr, "\nFatal error: Could not write one or more "
       +                "output files.\n");
       +        return EXIT_FAILURE;
       +    }
       +
            // main temporal loop
            sim.iteration = 0;
            Float time_since_status = 0.0;
            Float time_since_file = 0.0;
       -    char filename[1000];
            for (sim.time = 0.0;
                    sim.time <= sim.time_end;
                    sim.time += sim.dt) {
       t@@ -136,36 +142,12 @@ int main(int argc, char** argv)
                }
        
                if (time_since_file >= sim.file_interval) {
       -
       -            // slider parameters
       -            sprintf(filename, "%s/%s.sliders.%06d.txt",
       -                    output_folder, sim.id, sim.file_number);
       -            if (save_slider_positions_to_file(sim.sliders, sim.N, filename)) {
       -                fprintf(stderr, "\nFatal error: Could not save to output file "
       -                        "'%s'.\n", filename);
       +            if (write_simulation_output(sim, output_folder)) {
       +                fprintf(stderr, "\nFatal error: Could not write one or more "
       +                        "output files.\n");
                        return EXIT_FAILURE;
                    }
       -
       -            // other parameters
       -            sprintf(filename, "%s/%s.general.%06d.txt",
       -                    output_folder, sim.id, sim.file_number);
       -            if (save_general_state_to_file(sim, filename)) {
       -                fprintf(stderr, "\nFatal error: Could not save to output file "
       -                        "'%s'.\n", filename);
       -                return EXIT_FAILURE;
       -            }
       -
       -            // sliders to VTK file
       -            sprintf(filename, "%s/%s.sliders.%06d.vtu",
       -                    output_folder, sim.id, sim.file_number);
       -            if (save_sliders_to_vtk_file(sim.sliders, sim.N, filename)) {
       -                fprintf(stderr, "\nFatal error: Could not save to output file "
       -                        "'%s'.\n", filename);
       -                return EXIT_FAILURE;
       -            }
       -
                    time_since_file = 0.0;
       -            sim.file_number++;
                }
        
                if (verbose) {
 (DIR) diff --git a/slidergrid/simulation.c b/slidergrid/simulation.c
       t@@ -298,3 +298,37 @@ int save_sliders_to_vtk_file(
            return 0;
        }
        
       +int write_simulation_output(simulation sim, char* output_folder)
       +{
       +    char filename[1000];
       +
       +    // slider parameters
       +    sprintf(filename, "%s/%s.sliders.%06d.txt",
       +            output_folder, sim.id, sim.file_number);
       +    if (save_slider_positions_to_file(sim.sliders, sim.N, filename)) {
       +        fprintf(stderr, "\nFatal error: Could not save to output file "
       +                "'%s'.\n", filename);
       +        return 1;
       +    }
       +
       +    // other parameters
       +    sprintf(filename, "%s/%s.general.%06d.txt",
       +            output_folder, sim.id, sim.file_number);
       +    if (save_general_state_to_file(sim, filename)) {
       +        fprintf(stderr, "\nFatal error: Could not save to output file "
       +                "'%s'.\n", filename);
       +        return 1;
       +    }
       +
       +    // sliders to VTK file
       +    sprintf(filename, "%s/%s.sliders.%06d.vtu",
       +            output_folder, sim.id, sim.file_number);
       +    if (save_sliders_to_vtk_file(sim.sliders, sim.N, filename)) {
       +        fprintf(stderr, "\nFatal error: Could not save to output file "
       +                "'%s'.\n", filename);
       +        return 1;
       +    }
       +
       +    sim.file_number++;
       +    return 0;
       +}
 (DIR) diff --git a/slidergrid/simulation.h b/slidergrid/simulation.h
       t@@ -39,6 +39,8 @@ int save_sliders_to_vtk_file(
                const int N,
                const char* filename);
        
       +int write_simulation_output(simulation sim, char* output_folder);
       +
        // user-defined function which sets up the simulation
        simulation setup_simulation();