#julia
Вопрос:
У меня есть модуль Julia, содержащий две следующие функции:
module SetupMod export SetupProblem Base.@kwdef struct MatParams E::Float32 ν::Float32 ρ::Float32 ConstModelType::Char = 'E' #E= Elastic and V=von Mises Plastic end Base.@kwdef struct MeshParams NumElsX::UInt32 = 1 NumElsY::UInt32 = 1 LenY::Float32 = 0. LenX::Float32 = 0. end Base.@kwdef struct AnalysisConsts LoadStpsNum::UInt32 g::Float16 = 10. NumMP::UInt8 #Number of material point per direction per element MPType::Char = 'M' #M = MPM and G=GIMP end function Compute2DGrid(T, MeshParams) NEls::UInt32 = MeshParams.NumElsX * MeshParams.NumElsY NNodes::UInt32 = (MeshParams.NumElsX 1)* (MeshParams.NumElsY 1) NodeCoords = zeros(T, (NNodes, 2)) Size = size(NodeCoords) end function SetupProblem(T) # MatConst = MatParams(E=1e4, ν = 0., ρ = 80., ConstModelType='E') ModelConst = MeshParams( NumElsX = 1, NumElsY = 32, LenY = 50., LenX = 50/32) AnalysisConst = AnalysisConsts(LoadStpsNum = 40, g = 9.81, NumMP=2, MPType='M') Compute2DGrid(T, ModelConst) end end # module
Я хочу знать время для запуска функции Compute2DGrid() при вызове функции SetupProblem (), как показано ниже:
using .SetupMod using BenchmarkTools SetupMod.SetupProblem(Float32)
Когда я добавляю @btime перед вызовом функции Compute2DGrid, среда IDE открывает файл под названием выполнение.jl и предоставление исключения. Пожалуйста, помогите мне с этим.
Ответ №1:
Ваше using BenchmarkTools
заявление должно быть внутри SetupMod
модуля, так как это область, в которой вы используете @btime
.
Какой бы редактор вы ни использовали в качестве IDE (VS Code/Juno), он, вероятно, пытается показать вам UndefVarError: @btime not defined
, что @btime
в этой области недоступно.