-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
118 lines (72 loc) · 3.73 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
! ===========================================================================
! README
! ===========================================================================
! This program solves the wave equation in 1+1 dimensions.
! Copyright (C) 2012 Edison Montoya, [email protected]
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
! Up to date: 29 Feb 2012
To compile the program execute in the terminal:
$make
To run the program execute:
$make run
All the outputs are written into the directory "outputfile" given in the
parameters module (param.f90).
The files into this repository are:
! ===========================================================================
! main.f90
! ===========================================================================
! Principal program, this program solves the wave equation in 1+1 dimensions.
! ===========================================================================
! param.f90
! ===========================================================================
! Global parameters for the physical system.
! ===========================================================================
! initial_data.f90
! ===========================================================================
! Here are initialize all the functions defined on the grid.
! ===========================================================================
! boundaries.f90
! ===========================================================================
! Implementation of the boundaries conditions
! ===========================================================================
! sources.f90
! ===========================================================================
! Here are implemented the right hand side (derivatives) of the functions
! to be evolve in time.
! ===========================================================================
! mylibrary.f90
! ===========================================================================
! Library to evolve an arbitry physical system on a 1 dimensional grid using
! a Runge-Kutta 4 method. Also includes memory allocation and output routines.
The structures used in the library are:
!Functions on the grid to be integrated
type :: dynamical_func
!Extra functions that are not evolve
type :: extra_func
The routines in the library are:
!Implemetation of the Runge-Kutta 4 method
subroutine evolution_rk4(k,func,time_step)
!Store the initial values before the integration
subroutine store_levels_rk4(func)
!Allocation of function that are evolve
subroutine allocate_dyn(func,grid_points)
!Allocation of the function that are not evolve
subroutine allocate_extra(func,grid_points)
!Deallocation of function that are evolve
subroutine deallocate_dyn(func)
!Allocation of function that are not evolve
subroutine deallocate_extra(func)
!Created the output file for the dynamical functions "func" in
!the "output_dir" with name "output_file" and id "file_number"
subroutine create_output(func,output_dir,output_file,file_number)
!Print the output of two scalar functions on the grid
subroutine output_obs_obs(axis1,axis2,output_file,file_number,Nx)