Code Monkey home page Code Monkey logo

arthurvl-maker / phase_velocity Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 129 KB

phase_velocity.py - A Python algorithm for calculating frequency-dependent phase velocity and radial variation of elastic waves in cylindrical bars

License: MIT License

Python 100.00%
acoustical-devices acoustics dispersion-correction dynamics engineering engineering-instrumentation python shpb shpb-process signal-analysis signal-processing stress-testing stress-waves structural-engineering vibration vibration-control vibrational-analysis waves acoustical-analysis

phase_velocity's Introduction

phase_velocity.py - A Python algorithm for calculating frequency-dependent phase velocity and radial variation of elastic waves in cylindrical bars

DESCRIPTION:

The correlation between normalised frequency and phase velocity, m1 and m2, can be utilised to account for first-mode dispersion effect in pressure bar measurements using process_SHPB.py (see Van Lerberghe and Barr (2023)).

The open-source python algorithm phase_velocity.py, finds the first root of Bancroft’s (1941) equation using the bisection method, for a defined Poisson’s ratio, and over a defined range of normalised wavelength (d/L). The result is the normalised wave velocity, cp/c0, which corresponds to the first mode of propagation for longitudinal waves in an elastic cylindrical bar. Normalised wavelengths are also converted to normalised frequencies, fa/c0.

Normalised phase velocities are then used to calculate Tyas and Wilson’s (2001) factors m1 and m2, which account for wavelength dependent radial fluctuations in strain and Young’s modulus respectively.

The results m1, m2, norm_freqs and v_ratios are saved in 4 separate pickle files, in a folder titled dispersion-factors, for the corresponding Poisson’s ratio selected.

Both process_SHPB.py and phase_velocity.py, open-source Python algorithms are available on GitHub and ORDA, with their respective links attached below. They are inspired by Matlab scripts created by Barr (2016 & 2023), see below.

FILES INCLUDED:

  • phase_velocity.py: Includes the main python function phase_velocity.py, with the documentation on the use of the function included in the file as comments.
  • phase_velocity.pdf: An image showing the phase velocities, the factor m1 and normalised factor m2/E.

REFERENCES:

  • Bancroft, D. (1941) The Velocity of Longitudinal Waves in Cylindrical Bars. Physical Review, 59, 588-593.
  • Tyas, A., Wilson, A. J. (2001) An investigation of frequency domain dispersion correction of pressure bar signals. International Journal of Impact Engineering, 25, 87-101.

MATLAB SOFTWARE:

  • Barr, A. D. (2016) dispersion.m - A Matlab script for phase angle and amplitude correction of pressure bar signals. University of Sheffield.
    Software ORDA link: [https://doi.org/10.15131/shef.data.3996876.v1]
  • Barr, A. D. (2023) phasevelocity.m - A Matlab script to calculate the frequency-dependent phase velocity and radial variation of elastic waves in cylindrical bars. University of Sheffield.
    Software ORDA link: [https://doi.org/10.15131/shef.data.21982604.v1]

PYTHON SOFTWARE:

AUTHORS:

Arthur Van Lerberghe [email protected] & Andrew D. Barr [email protected].

phase_velocity's People

Contributors

arthurvl-maker avatar

Stargazers

 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.