Writing a time-dependent metric tensor field on a uniform grid.
 
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <hdf5.h>
 
#include <F5/F5X.h>
#include <F5/F5uniform.h>
 
 
int     main(int argc, char*argv[])
{
        double  time = 0.0;
        hid_t   file_id; 
 
        hsize_t dims[3] = {10,20,30};
        
 
                
        unlink("metric.f5");
 
        origin.
x = -1;               origin.
y = -1;                     origin.
z = -1; 
        delta .
x = 2.0/(int)dims[0]; delta .
y = 2.0/(int)dims[1];       delta .
z = 2.0/(int)dims[2];    
        
        for(time=0.0; time<10; time+=0.5)
        {
                int     i,j,k;          
                double  M = (10 - time)/10; 
 
                for(k=0; k<dims[2]; k++)
                for(j=0; j<dims[1]; j++)
                for(i=0; i<dims[0]; i++)
                {
                        float x, y, z, r, psi;
                
                        x = origin.x + i * delta.x; 
                        y = origin.y + j * delta.y; 
                        z = origin.z + k * delta.z; 
                        r = sqrt(x*x+y*y+z*z); 
                        
                        psi = 1 + M / (2*r); 
                        psi *= psi;     
                        psi *= psi;     
 
        
 
                        
                        g++;
                } 
 
                                                      "schwarzschild",
                                                      &origin, &delta,
                                                      dims,
                                                      "metric",
                                                      m, 0, F5P_DEFAULT); 
        }
        H5Fclose(file_id);      
        return 0;
}
void F5close(F5Path *f)
Definition: F5B.c:186
hid_t F5append(const char *filename)
Definition: F5X.c:225
F5Path * F5Fwrite_uniform_cartesian3D(hid_t file_id, double time, const char *gridname, const F5_vec3_point_t *origin, const F5_vec3_float_t *spacing, hsize_t dims[3], const char *fieldname, hid_t fieldtype, const void *dataPtr, const char *coordinate_system, hid_t prop_id)
Definition: F5uniform.c:271
Definition: F5coordinates.h:83
#define F5T_METRIC33_FLOAT
Definition: F5coordinates.h:110
Definition: F5coordinates.h:58
Definition: F5coordinates.h:57