Git Product home page Git Product logo

ca-knowledgebase's Introduction

UKAN Computational Acoustics Knowledgebase

CC BY 4.0

The UKAN Computational Acoustics Knowledgebase is a website full of information about solving acoustics problems computationally. It can be viewed online at knowledgebase.acoustics.ac.uk

status: publish-book

Contributing

You can find a detailed guide about how to contribute to the knowledgebase at https://knowledgebase.acoustics.ac.uk/about/contribution-guide.html.

The GitHub issues are a good place to start, as they contain details of suggested changes and improvements. You can make a suggestion here, or implement a suggestion that someone else has made.

If you are new to contributing to the knowledgebase, you might like to look at any issues tagged good first issue.

For more complex changes, you may want to build the Jupyter book locally before pushing your changes. You may follow our guide, or you can follow the official Jupyter guidance.

Reporting errors & making suggestions

If you spot a mistake on the knowledgebase website or want to make a suggestion about the content, you can open an issue on GitHub.

Code of conduct

We expect all contributors to follow our code of conduct. Unacceptable behaviour can be reported to [email protected].

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

CC BY 4.0

ca-knowledgebase's People

Contributors

agully1 avatar andcic avatar andrewgibbs avatar bayswiss avatar ca-knowledgebase avatar felipeacsi avatar hqwang815 avatar jahargreaves avatar jorgensd avatar mhamilt avatar mscroggs avatar nkove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ca-knowledgebase's Issues

Edit current content

Look out for maths terminology that acoustics people won't get; or acoustics terminology that maths people won't get

Add a style guide for the tutorials

It would be sensible to have some guidance to make sure the tutorials are consistent.

I suggest:

This could form part of the "how to contribute" guide (#17)

Update build system

Currently, the build system needs every software installed. This will create issues in the future

Add authors page

Probably to reside under /community/community.html or /reference/.

A list of all authors that have contributed to the knowledgebase.

Edit Tutorial Template

For contributing on also make sure there is consistency across tutorials, some boiler plate that covers

  • What you are expected to know
  • next / prep
  • rough structure / narrative

Add FDTD Python Examples

Jupiter notebooks that cover

  • 1D Wave
  • Stiff 1D wave
  • 2D Wave
  • Stiff Plate
  • 3D...
  • Optimisations

In the first instance the emphasis should be on clarity over speed. An optimisations section can cover best practice

Reorganise BEM tutorial in this format:

  1. Tell the story, break up into steps, story ends with solution to Helmholtz, time harmonic wave equation (possibly this could go in separate page as it's fairly fundamental).
  2. Side stories - jumps in logic, have separate page for derivation, how do operators depend on shape and material. trace conditions taken on trust, with references.
  3. What are sub-problems, dense matrix, physical interpretation of this, realising solution from coefficients. Step one, getting your numbers/coefficients, define what they are, then build matrix, then solve system and plug into representation formula
  4. Page for approaches for singular integrals, as this is a common stumbling block.

label axes, join ends together of circle sol'n
change n in penultimate cell to m
add full script at the bottom

Add JavaScript Visualisation: 1D Wave

Given the online nature of the site I think there is scope to leverage a little javascript to do some visualisations (possibly even interactive)

I've played around previously with actually doing the drawing:

e.g.

Mainly looking for suggestions on what level of interactivity could be provided

Consider using jupytext

Jupytext allows you to have automatic sync between multiple file formats, such as .ipynb, .py and .md. It would make it easier for people to download and execute the code (if they do not want to use notebooks, or want to run it in parallel).

Have to reset custom domain after every push

I'm probably missing something here...

Every time the main branch is updated (and the gh-pages branch automatically updated via actions) the custom domain in Settings > Pages changes back to agully1.github.io and I have to manually reset it to knowledgebase.acoustics.ac.uk

FDTD Structure: Concepts

From @jahargreaves

A section covering the concepts of an FDTD system.

FDTD specific problems:

  • Application of Stencils
  • Dispersion
  • Stair-casing
  • Boundary conditions via ghost nodes
  • Viscous losses

Each of these could be discussed via application to ever more complex systems. First in 1D, then 2D, and finally 3D

Generate py files while building

It would be nice to offer the option of downloading a .py file as well as installing a .ipynb file. It should be possible to do this by auto-generating the py files rather than adding copies of everything to the repo

CI with FEniCS

Currently the Jupyter Book auto builds when new md/notebook content is pushed to main, but this is more complicated with FEniCS leading to errors in the notebook compilation for the first FEniCS tutorial.

Temporary solution: build locally with FEniCS installed

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.