Giter Club home page Giter Club logo

biharmonic's People

Contributors

bangerth avatar rik72 avatar tjhei avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

tjhei dongzhangim

biharmonic's Issues

Setting the frequencies

set Minimal frequency = 100
set Maximal frequency = 10000
set Number of frequency steps = 100

Can you add a flag for log or linear frequency spacing?

Also, I didn’t see how a custom frequency array is specified. Can you add that?

Issue #2 with readme.md

We can then take the minimum of the two as an indication of how fast a
wave would traverse the medium:

I think you meant to say “maximum”?

TODO: Limit # of threads

Provide an option whereby one can select the maximal number of threads to be used in the .prm file.

Issue #1 with readme.md

Loss angle is dimensionless and interpreted in degrees.

This should be “Loss tangent”, not “Loss angle”
Loss tangent has angular units, not dimensionless.

Also, there needs to be a different loss tangent for Young’s modulus and for the Tension, so the complex value for E (Young’s modulus) in the computations would be:

E = Eo * exp(j*loss_tangent_E)

and for the Tension,

T = To * exp(j*loss_tangent_T)

where I’ve used “o” to denote the magnitude (i.e. Eo=|E|), _E to refer to the Young’s modulus, and _T to refer to the Tension.

I guess we can refer to the two different loss tangents as:

  • “Young’s modulus loss tangent” and
  • “Tension loss tangent”

Fix check_for_termination_signal()

In both the Helmholtz and Biharmonic programs, check_for_termination_signal() exits the program when requested, but also returns a value. Furthermore, that value is ignored almost everywhere. Fix this in both program: if it exits, we don't need a return value.

TODO: Fix crash on Windows

Riccardo reports the following when running on Windows:

--------------------------------------------------------
An error occurred in line <2886> of file <C:\Users\riccardo\source\dealii\include\deal.II/lac/affine_constraints.templates.h> in function
    ScratchDataAccessor
The violated condition was:
    my_scratch_data->in_use == false
Additional information:
    Access to thread-local scratch data tried, but it is already in use
--------------------------------------------------------

This clearly needs to be fixed.

Termination signal

In this case, an external program should place the text STOP into a file called
termination_signal in the current directory.

I need a way to verify that the program has indeed exited. Maybe another file with “TERMINATED” in it? Maybe the solver just deletes the “termination_signal” file to signal it’s just before it terminates?

Can you provide a maximum time between getting the “termination_signal” and the program exiting? Typically when I have something that’s computationally intensive, I have some “stop_flag” that the code monitors. If “stop_flag” gets set, then the code exits with an appropriate error code. This way, my code is usually never more than a few seconds away from being gracefully exited. Do you have something like that?

Time individual sections of the program

Riccardo reports timings for just a single frequency that look like this:

Number of frequencies scheduled: 1
thread-0328 | 0001 | 2020-05-27 15:33:54 | START work
thread-0328 | 0002 | 2020-05-27 15:33:54 |     START setup_system
thread-0328 | 0003 | 2020-05-27 15:33:55 |     FINISH setup_system
thread-0328 | 0004 | 2020-05-27 15:33:55 |     START assemble_system
thread-0328 | 0005 | 2020-05-27 15:33:55 |         START scratch_data
thread-0328 | 0006 | 2020-05-27 15:33:55 |         FINISH scratch_data
thread-0328 | 0007 | 2020-05-27 15:33:55 |         START mesh_loop
thread-0328 | 0008 | 2020-05-27 15:34:00 |         FINISH mesh_loop
thread-0328 | 0009 | 2020-05-27 15:34:00 |     FINISH assemble_system
thread-0328 | 0010 | 2020-05-27 15:34:00 |     START solve
thread-0328 | 0011 | 2020-05-27 15:34:01 |     FINISH solve
thread-0328 | 0012 | 2020-05-27 15:34:01 |     START postprocess
thread-0328 | 0013 | 2020-05-27 15:34:01 |     FINISH postprocess
thread-0328 | 0014 | 2020-05-27 15:34:01 |     START output.join()
thread-0328 | 0015 | 2020-05-27 15:34:01 |     FINISH output.join()
thread-0328 | 0016 | 2020-05-27 15:34:01 | FINISH work
Number of frequencies computed: 1

I don't know how to visualize this, but we can use TimerOutput to create summaries of this.

Progress bar

Follow-up to #5

To monitor the progress of computations -- for example for displaying a
progress bar -- open this file periodically (say, once a second) and read what's in it.

Can you add a line at the very beginning the “frequency_response.txt” file that gives the frequency count of the # of solutions in the file so I don’t have to parse the whole file? Something like:

# 15/200 frequencies computed
# Columns are as follows:
# 1: Frequency [Hz]
# 2: Real part of the volume displacement divided by the amplitude of pressure [m^3/Pa]
# 3: Imaginary part of the same
# 4: Real part of the impedance [Pa.s/m^3]
# 5: Imaginary part of the same
# 6: Absolute value of maximal displacement divided by amplitude of pressure [m/Pa]
# 5: File name for graphical output of the displacement visualization.
100 5.93911e-11 0 0 -2.67978e+07 5.53421e-07 "visualization/solution-100.vtu"
.. etc

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.