Skip to content

General Overview Diagram

graph TD;
    main.f90 <--> id0(reader.f90: read_me);
    main.f90 <-->  id1(maths_constants/diff_coeff.d90: diff_initialisation)
    main.f90 <--> id2(domain.f90: initial_domain_settings)
    main.f90 --> id3(equations.f90: equation_runner)
    id3(equations.f90: equation_runner)  --> id4{{Domain_number}}
    id4{{Eqn_switch}} -->|Domain_number = 1| id5(equations.f90: equation_setup)
    id4{{Eqn_switch}}  --> |Domain_number = 2| id6(equations/2D.f90: equation_setup2D)
    id5(equations.f90: equation_setup) --> id7(linear_algebra.f90: band_the_matrix)
    id6(equations/2D.f90: equation_setup2D) --> id7(linear_algebra.f90: band_the_matrix)
    id7(linear_algebra.f90: band_the_matrix) --> main.f90
    main.f90 ------> id8{{Times_switch}}
    id8{{Times_switch}} -->|Times_switch = 0| id9(solve_bvp.f90: bvp_runner)
    id8{{Times_switch}}  --> |Times_switch = 1| id10(solve_ibvp.f90: ibvp_runner)

Initial Domain Settings Diagram

graph TD;
    id0(domain.f90: initial_domain_settings) <--> id1(domain.f90: time_domain);
    id0(domain.f90: initial_domain_settings) --> id2(domain.f90: set_up_domain);
    id2(domain.f90: set_up_domain) --> id3{{Domain_number}}
    id3{{Domain_number}} --> |Domain_number = 1| id0(domain.f90: initial_domain_settings)
    id3{{Domain_number}} --> |Domain_number = 2| id4(domain.f90: set_up_domain)
    id4(domain.f90: set_up_domain) --> id0(domain.f90: initial_domain_settings)

    id5(domain.f90: set_up_domain) --> id6{{Stretch_Parameter}}
    id6{{Stretch_Parameter}} --> | Stretch_Parameter = 0 | id7(domain.f90: mapping_no_stretch)
    id6{{Stretch_Parameter}} --> | Stretch_Parameter = 1 | id8(domain.f90: mapping_stretch)
    id7(domain.f90: mapping_no_stretch) --> id5(domain.f90: set_up_domain)
    id8(domain.f90: mapping_stretch) --> id5(domain.f90: set_up_domain)
    id5(domain.f90: set_up_domain) <----> id9(domain.f90: metrics)
    id9(domain.f90: metrics) <--> id10(domain.f90: first_difference)
    id9(domain.f90: metrics) <--> id11(domain.f90: second_difference)

Equation Setup Diagram

graph TD;
    id0(equation.f90: equation_setup) --> id1(equation.f90: build_the_matrix)
    id1(equation.f90: build_the_matrix) --> id2{{Eqn_number}}
    id2{{Eqn_number}} --> |Eqn_number = 1| id0(equation.f90: equation_setup)
    id2{{Eqn_number}} --> |Eqn_number = 2| id3(equation.f90: build_the_matrix)
    id3(equation.f90: build_the_matrix) --> id0(equation.f90: equation_setup) 

    id4(equation.f90: build_the_matrix) <--> id5(equation.f90: equation1_BC_X_Bot)
    id4(equation.f90: build_the_matrix) <--> id6(equation.f90: equation1_BC_X_Top)
    id4(equation.f90: build_the_matrix) --> |N-3 times| id7(equation.f90: equation1_linear)
    id7(equation.f90: equation1_linear) --> id4(equation.f90: build_the_matrix)
    id4(equation.f90: build_the_matrix) ----> id8(equations/builder.f90: scales)
    id8(equations/builder.f90: scales) ----> |N times| id4(equation.f90: build_the_matrix)
    id4(equation.f90: build_the_matrix) <------> id9(equations/builder.f90: derivative_runner)
    id9(equations/builder.f90: derivative_runner) <--> d11(equations/builder.f90: zero)
    id9(equations/builder.f90: derivative_runner) <--> d12(equations/builder.f90: first)
    id9(equations/builder.f90: derivative_runner) <--> d13(equations/builder.f90: second)