GithubHelp home page GithubHelp logo

phas0077_xinyu's Introduction

MATLAB CONTINUATION PROGRAM -Xinyu
---------------------------------------------




Purpose
-------

The aim of this project is to provide a feasible approach (in practice, a Matlab continuation program) for users to explore the trajectory flow, and compare solution variation caused by the bifurcation of the dynamical systems.

Moreover, to make users understand the theoretical idea behind this program, all mathematical principles and backgrounds are covered in our dissertation. It is highly recommended for any user to follow the tutorial example (Swift-Hohenberg equation) on our dissertation as well as the guidance in this README file to make start this program.

Structure of this program
-------
The main body of this program is made of 3 folders as well as a setup file. We introduce these files one by one.

***
1. setup.m

This file sets the Matlab paths to the (default) libraries. Any user who would like to run this program is supposed to execute setup from the command window **firstly**, or load it into the editor by typing 
```Bash
edit setup.m
```
and then execute it from there.
***

2. finite_element_geometry

Functions in this folder are used to preassemble the mass matrices as well as the stiffness matrices generated by the finite-element method into a pde object (structure). For concrete example, see dissertation ***Section 3.6.2***. We introduced how to construct the finite-element matrix in this part.

Both stiffness and mass matrices consist of the shape functions which determine the interpolation (geometry) between nodal values.

 When any user would like to utilize this program to study their own dynamical system problem, they do not have to reconstruct the mass and stiffness matrices each time, which is quite time-saving and convenient.
***
3. continuation_function

A collection of all functions for numerical continuation.

This directory contains 6 subfolders, while the main functions for continuation are under the folder 

***numerical_continuation_function***

Each function script under this folder is well-founded by the theoretical idea introduced in our dissertation.

For instance:

-***numerical_continuation.m***

Main continuation routine,

 founded by dissertation ***Section3.3***

-***switch_branch***

Branch Switching algorithm, 

founded by dissertation ***Section 3.5***

For function scripts in other folders, they just serve a supporting role and are called by functions in

***numerical_continuation_function***

For example:

Each time when function script in

***numerical_continuation_function*** 

needs to deal with linear systems, such like

computing eigenvalues, LU-decomposition,

they will call functions under the folder 

***linear_system_function***

---
4. main_programme

For program execution. 

It is divided into two parts, while ***test_sample*** is created for the validation check 

and any study of the dynamical system should be covered by directory ***dynamical_problem***

Under these two directories, a folder should be created for a specific problem including 

a command line interface to run the program as well as scripts to describe the geometry of 

the differential equations (For example, G.m for the approximation of RHS of pde). 

In addition, an appropriate initial guess and some basic parameter settings should be given in the initializing file.


How to run this program (take the Swift-Hohenberg equation as an example)
--------
1. execute setup from the command window **firstly**, or load it into the editor by typing 
```Bash
edit setup.m
```
and then execute it from there.
***
2. change the directory to
```Bash
./main_programme/dynamical_problem/Swift-Hohenberg-equation
```
***
3. type
```Bash
edit cmds1.m
```
from the command window of Matlab to open the command line interface and then run it

***cell by cell*** 

to see what happens at each step

Following the similar operator to run ***cmds2.m***

***Remark***: Each time user calls 
```Bash
clear
clc
```
to clean the data of the working space, user has to go back to the ***original*** directory (before ***main_programme***)

to recall 
```Bash
setup
```
to restart the program

How users study their own problem
-------
1. Install this program from github link and open it

Open the terminal and make sure you have already changed the directory under this program
***
2. execute setup from the command window  or load it into the editor by typing
```Bash
edit setup.m
```
and then execute it from there.

(such operation should be done by Matlab)
***

3. change the directory
```Bash
cd ./main_programme/dynamical_problem
```
***

4. Create a directory for the user's own problem
```Bash
mkdir equation_name
cd equation_name
```
As we have mentioned, users are supposed to create

1. a command line interface

2. scripts to describe the geometry of differential equations as well as boundary conditions

3. an initializing file to give an appropriate initial guess and some basic parameter settings

It is highly recommended for any user who uses this program for the first time to follow the dissertation tutorial and our example.

Happy continuation and bifurcation!

phas0077_xinyu's People

Contributors

uclyxy avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.