insigneo / openbf Goto Github PK
View Code? Open in Web Editor NEW1D blood flow model
Home Page: https://INSIGNEO.github.io/openBF
License: Other
1D blood flow model
Home Page: https://INSIGNEO.github.io/openBF
License: Other
Update documentation to v0.6.0
openBF does not give error when an outlet node is used as sn for another vessel. Implement check that if a node is an outlet is can be used as sn.
Dear @alemelis,
First of all, I would like to thank for sharing this software to solve 1D modelling problems.
I have some issues with the software, especially when simulating baseline model with slight variation in the input flow.
In the latest release (v1.5) the simulation is stuck at Solving cardiac cycle: 01. I tried to investigate the source of the problem, and it comes from the newtonRaphson function when solving bifurcation vessel. The function seems cannot find the solution which stuck at giving NaN value for the output.
I checked the same model with the latest openBF model (v2 from the branch), and it gives this error LinearAlgebra.SingularException(5) at the newtonRaphson function.
Could you please give some advice how to solve this problem?
Thank you in advance.
Add check to ensure that two different inlets are not numbered in the same way
Dear Alemelis, to begin with thanks so much for OpenBF,
I would like to know since i have tried to use adan56.yaml and run the simulation but unfortunately it is not working.
the error that i encounter is: Newton-Raphson doesn't converge at (subclavian_R_II, axillary_R) junction!
i have tried to modify the main parameters as L,Rp or Rd but it is not working.
do you have any suggestions? P.S. i m using the latest version of openBF .
Bash scripts are not running on windows
const saving_rate
to _constants.jl
to select how many points per cardiac cycle to write in the output files.Lines 224 to 227 in c423f06
Add a loss coefficients for long non-straight vessels
Arteries parameters should dynamically change in time
As requested in #12 by @ibenemerito88
Right now there are a lot of functions which are restricted to 64-bit integers, even on 32-bit machines. This is likely why the 32-bit Windows tests fail on AppVeyor. However, note that the type assertions in the function signatures are only for function syntax anyways (and don't effect performance), so I would recommend just duck typing anyways.
Write a tutorial for steady state simulations
Since June 15th, 2021, the building on travis-ci.org is ceased. Please use travis-ci.com from now on.
openBF webapp
Error running app.
@alemelis The University of Sheffield Library (specifically @jezcope) would like to increase the number of software items in orda.shef.ac.uk (FigShare). Would you want to create an entry for openBF? If you don't have time I could do this on behalf if you let me know which version(s) it makes most sense to take snapshots of.
I'm curious why you used GPy instead of https://github.com/STOR-i/GaussianProcesses.jl . I was also wondering if you tried a bunch of mean and kernel functions to see whether they made much of a difference. We'll be using some of these ideas to implement a cross-diffeq GP regression method for DifferentialEquations.jl based on yours
Hi,
I am experimenting an issue when running julia make.jl
and I do not understand what is causing this.
Would you have an idea?
Here the error message:
ERROR: LoadError: MethodError: Cannot `convert` an object of type Symbol to an object of type Documenter.Writer
Closest candidates are:
convert(::Type{T}, ::T) where T at Base.jl:61
Stacktrace:
[1] setindex!(A::Vector{Documenter.Writer}, x::Symbol, i1::Int64)
@ Base ./array.jl:966
[2] getindex(#unused#::Type{Documenter.Writer}, vals::Symbol)
@ Base ./array.jl:407
[3] Documenter.Documents.Document(plugins::Tuple{}; root::String, source::String, build::String, workdir::Symbol, format::Symbol, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{Any}, linkcheck_timeout::Int64, checkdocs::Symbol, doctestfilters::Vector{Regex}, strict::Bool, modules::Vector{Module}, pages::Vector{Pair{String, Any}}, expandfirst::Vector{String}, repo::String, sitename::String, authors::String, version::String, highlightsig::Bool, draft::Bool, others::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Documenter.Documents ~/.julia/packages/Documenter/yf96B/src/Documents.jl:316
[4] makedocs(; debug::Bool, format::Symbol, kwargs::Base.Pairs{Symbol, Any, Tuple{Symbol, Symbol}, NamedTuple{(:sitename, :pages), Tuple{String, Vector{Pair{String, Any}}}}})
@ Documenter ~/.julia/packages/Documenter/yf96B/src/Documenter.jl:267
[5] top-level scope
@ ~/Downloads/openBF/docs/make.jl:3
Thanks in advance,
Antoine Wehenkel
Add a loss coefficient dependent on bifurcation angle
Allow the user to specify more than one inlet.
This can be implemented by exploiting the already existing wkn
parameter. A pseudo-code version could be
if wkn == 0:
#this is a normal vessel
elseif wkn == 'Qi':
#this vessel has a flow inlet
elseif wkn == 'Pi':
#this vessel has a pressure inlet
This would be used in
Lines 528 to 530 in d89a300
For each inlet vessel, an _inlet-#.dat
must be specified in the project folder
Show in stdout where the max convergence error is occurring
appender.sh
with Julia code (related to #7 )The types description should be inside the main package. This enables the coverage check
ERROR: LoadError: MethodError: no method matching pressure(::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, ::Int64, ::Array{Float64,1})
Closest candidates are:
pressure(::Array{Float64,1}, ::Array{Float64,1}, ::Array{Float64,1}, !Matched::Float64, ::Array{Float64,1})
this is raised when zero external pressure is an integer instead of float
Hi there,
Thanks for this great library!
It seems that currently configuration files can only take a constant/linear Young's modulus.
Do you think adding non-linearity to the modulus would be feasible? Would the solver react properly to this?
In addition, arteries have also a viscous component, is this something you are planning to add?
If you believe these additional modelling capabilities would work well with the current solver, I would be happy to help implementing them.
Cheers,
Antoine
add installation subsection on how to update openBF:
julia> ]
(v1.x) pkg> update openBF
❤️
openBF currently runs on julia 0.3.x
when using julia 0.6, most of the type definitions are obsolete.
@alemelis ....Is there any resource available for generating the input .yml file from the geometry data available in a (say) CSV file?
Dr. Melis:
I want to study the code in openBF-hub (https://github.com/alemelis/openBF-hub), such as 'models/boilleau2015benchmark/adan56'. However, the code cannot run successfully on openBF v1.4.0 because of the change in input file format (.csv -> .yaml). Could you please help me convert the input file of adan56 to fit the format requirement of openBF (v1.4.0) ? I believe it could also help me study further openBF.
Julia packages have .jl on the end. In fact, you can't register into METADATA unless this holds, so it's probably wise to follow the convention.
Two joined vessels should defined as
v1:
sn: 1
tn: 2
v2:
sn: 2
tn: 3
whereas
v1:
sn: 1
tn: 2
v2:
sn: 3
tn: 2
shouldn't be allowed
Get rid of plot.py in tests folder and replace it with a Julia script
Please change 'ERROR norm > 100.00 mmHg ' to its actual numeric value. This way we can follow if the solver is converging or diverging.
Anastomosis code is not tested by the current testing suite
Hey team ,
Just a suggestion for the docs to do with the installation. None of what was there worked for me, as I kept on getting the error:
[xxx@node002 [stanage] SHEF24038067]$ add https://github.com/INSIGNEO/openBF
bash: add: command not found
and
julia> add https://github.com/INSIGNEO/openBF
ERROR: syntax: extra token "https" after end of expression
Stacktrace:
[1] top-level scope
@ none:1
in the end I ended up using:
using pkg
Pkg.add(url="https://github.com/INSIGNEO/openBF")
create an official openBF package
These kinds of comments
https://github.com/INSIGNEO/openBF/blob/master/src/bifurcations.jl#L17-L89
should probably be docstrings. Example:
"""
This docstring
"""
function f(x)
x + 2
end
?f
These docstrings are the standard method for looking for function documentation and can be used by Documenter.jl to build documentation, so it's helpful to users if you use this method.
Hello, I'd like to understand why there are five columns of data in the saved result file. Are these data representing specific positions along a segment of blood vessel? Where are the specific parameters defined?Thank you very much for taking the time to answer.
You can join openBF discord server here for discussing issues and future improvements
Automatically log info, warnings, and errors
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.