CMB Group Meeting October 8th, 2012

Centre for Mathematical Biology's https://www.maths.ox.ac.uk/groups/mathematical-biology/internal/tips

Ornella Google Drive

5 free GB storage • easy access instant access to

• collaboration

• equations editor • forms, polls and surveys • translation • simultaneous work on docs • used Docs instead of email • version control • safe storage • tracking • work offline • allow editing without signing in

Ornella Organisation

• Date and number your pages or use a notebook • Write in meetings / write up meetings • Use referencing software • Bibtex • / Refworks / Citeulike / Referencer • Keep track of the research skills things you've done • Keep a record of ideas you have about future directions • Backup your work! The university / maths institute has good back-up systems • Write up work as you go • Throw away work that is wrong

Louise Computing

• Scratch drive / networked scratch drives (/mi/share/scratch) • Subversioning (RabbitSVN is installed on the MI computers) • Dropbox (check the terms of use!) • Call your files sensible things • In Matlab: • Ask around if you're trying to do something - often people will know how! • Use sensible names for your variables • Comment your code • Mex functions • You can ssh into the MI computers (http://www.maths.ox.ac.uk/help/remote-access) • See http://www.maths.ox.ac.uk/help for useful computing info • LaTeX / Beamer

Louise Extras

• Conferences • Study Groups • Teaching / TAing • Bionumbers • SMB / ESMTB can give conference money if you join • Socials

Louise More on computing

• Learn how to code well • Thoroughly document your code • Be verbose in your coding • Create and keep useful functions in a sensible place • Try to keep your code such that you can rerun the analysis from scratch • Don’t be scared to delete code that didn’t work, but don’t delete code that did work but you haven’t used in a while • Learn how to profile your code and (if using Matlab) consider using MEX files for parts of code that are compute intensive

• Consider setting up a version control server • Dropbox is great if you are just managing folders of word files and presentations that only you work on • For any type of shared project consider using a proper line-by-line one that stores the entire history and allows conflict resolution (e.g. git or svn)

Alex Use a • There are lots to choose from: • Jabref (multiplatform) • Colwiz (multiplatform) • (mac) • References (Linux) • Cite-u-like (online) • (online) • Mendeley (online) • Jabref • Import meta-data straight from Google scholar • Automatically link PDFs to the meta-data for quick access • Search for PDFs from within Jabref • Toggle journal abbreviations automatically • Give key words to references (like tags) • Search quickly through 1000s of references Kit Jabref – adding a citation

• Search in Google Scholar

Kit Jabref – adding a citation

• Copy information…

Kit Jabref – adding a citation

• Click on the green plus and select article (or the relevant bibtex type)

Kit Jabref – adding a citation

• Paste the bibliographic info into the empty box

Kit Jabref – adding a citation • Go back to Google scholar • Follow the links to the PDF and save it somewhere on your scratch directory

• Make sure to save it with the same name as the citation key for automatic recognition • Make sure to save it with the same name as the citation key for automatic recognition

Kit Jabref – adding a citation

• Back to Jabref • Tell it where to look for pdfs (only do this once)

• Options →Preferences →External Programmes

Kit Jabref – adding a citation

• Go to the General Tab • Click auto and it should link to your PDF • Add some keywords

Kit Jabref – adding a citation

• Finally check the details are correct • Including toggling the citation

Kit Scientific Computing

• Want to learn or brush up? • There is a course run by the Mathematical Institute for DPhil students: Scientific Computing for DPhil Students • It is for people 1. new to Scientific Computing and/or Matlab 2. with rusty computing and/or Matlab skills 3. seeking new tricks (code vectorizing, neat built-in functions, etc.) 4. who have project-related computational questions • Time: 1. MT: Numerical Linear Algebra 2. HT: Differential Equations • Course info: http://people.maths.ox.ac.uk/~macdonald/scicomp/

Abdullah Modelling in Matlab: Numerical computation of PDEs Programming and toolboxes

• Programming is based on linear algebra (vectors and matrices) • Matlab has specialized toolboxes for solving PDE and ODEs, image processing, optimization, etc • External computing toolboxes can be added • e.g. Chebfun: • Based on continuous analogues of linear algebra • Currently solves 1D problems (e.g. ODEs and PDEs) • Nice to have when dealing with repeated evaluations or equation solving (very accurate and fast) • http://www.maths.ox.ac.uk/chebfun/

Abdullah User-defined solver

• When to do it? • Modelling simple PDEs with simple and fixed geomtery • Want to implement a Finite Difference method • Want to implement a preferred Finite Element method • You may want to use a mesh-generation software to triangulate your domain (e.g. Matlab’s PDE toolbox) • In any case, you will end up with a matrix equation of the form Ax = b • You may want to use an efficient & robust built-in function to speed up solving , e.g. x = A\b • The MT SciComp course will cover matrix equations

Abdullah Built-in and external 1D solvers

• pdepe: http://www.mathworks.co.uk/help/matlab/ref/pdepe.html

• Chebfun: http://www2.maths.ox.ac.uk/chebfun/examples/pde/

Abdullah Built-in 2D solver

• PDE Toolbox is an FEM-based 2D solver • Accepts scalar/systems and linear/non-linear PDEs • Has a friendly data structure which, with some practice, makes pre- processing straight forward • Post-processing is extremely simple • GUI is very slow, memory demanding, and virtually impractical when dealing with a complex domain geometry • Everything can be automated, imported to, and exported from the Matlab command-line which will save you the trouble of manually working with the GUI • Email me or stop by DH56 if you need help

Abdullah Modelling in Comsol: Numerical solution of general PDEs Comsol

• FEM-based solver for general PDEs & BCs with upto 3D capabilities • Also numerically solves general ODEs and runs Matlab m-files • Implementing MANY geometrical objects is not so nice (e.g., a domain tessellated by 90+ polygons with 200+ holes) • Workaround: Using the geometry data structure adopted in Matlab’s PDE toolbox, you can easily transfer your geometry to Comsol via Comsol LiveLink for Matlab • Email me or stop by DH 56 if you need help

Abdullah Guido Guido Questions or Comments?