# Error in Gridap

**URL:** <https://discourse.julialang.org/t/error-in-gridap/96840>\
**Category:** New to Julia\
**Tags:** error, gridap, error-message\
**Created:** [March 30, 2023, 11:33am UTC](https://discourse.julialang.org/t/error-in-gridap/96840 "2023-03-30T11:33:49Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![larsudb](https://avatars.discourse-cdn.com/v4/letter/l/8edcca/32.png) [@larsudb](https://discourse.julialang.org/u/larsudb)\
**Post date:** [March 30, 2023, 11:33am UTC](https://discourse.julialang.org/t/error-in-gridap/96840/1 "2023-03-30T11:33:49Z")

</div>

Hi All

I get the following very long error message:

ERROR: MethodError: no method matching Float64(::VectorValue{2, Float64})  
Closest candidates are:  
(::Type{T})(::T) where T\<:Number at boot.jl:760  
(::Type{T})(::VectorizationBase.Double{T}) where T\<:Union{Float16, Float32, Float64, VectorizationBase.Vec{var"#s38", var"#s37"} where {var"#s38", var"#s37"\<:Union{Float16, Float32, Float64}}, VectorizationBase.VecUnroll{var"#s36", var"#s35", var"#s34", V} where {var"#s36", var"#s35", var"#s34"\<:Union{Float16, Float32, Float64}, V\<:Union{Bool, Float16, Float32, Float64, Int16, Int32, Int64, Int8, UInt16, UInt32, UInt64, UInt8, SIMDTypes.Bit, VectorizationBase.AbstractSIMD{var"#s35", var"#s34"}}}} at C:\Users\larsu.julia\packages\VectorizationBase\G9NJI\src\special\double.jl:111  
(::Type{T})(::AbstractChar) where T\<:Union{AbstractChar, Number} at char.jl:50  
…  
Stacktrace:  
[1] convert(#unused#::Type{Float64}, x::VectorValue{2, Float64})  
@ Base .\number.jl:7  
[2] setindex!(A::Vector{Float64}, x::VectorValue{2, Float64}, i1::Int64)  
@ Base .\array.jl:843  
[3] setindex!  
@ .\multidimensional.jl:645 [inlined]  
[4] add\_entry!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\AlgebraInterfaces.jl:98 [inlined]  
[5] add\_entry!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\AlgebraInterfaces.jl:87 [inlined]  
[6] \_add\_entries!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\AlgebraInterfaces.jl:174 [inlined]  
[7] add\_entries!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\AlgebraInterfaces.jl:158 [inlined]  
[8] evaluate!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\Arrays\AlgebraMaps.jl:51 [inlined]  
[9] evaluate!(cache::Vector{Nothing}, k::AddEntriesMap{typeof(+)}, A::Vector{Float64}, v::VectorBlock{Vector{VectorValue{2, Float64}}}, I::VectorBlock{Vector{Int32}})  
@ Gridap.Fields C:\Users\larsu.julia\packages\Gridap\OTENN\src\Fields\ArrayBlocks.jl:1485  
[10] \_numeric\_loop\_vector!(vec::Vector{Float64}, caches::Tuple{Vector{Nothing}, Tuple{Tuple{Nothing,  
@ Gridap.FESpaces C:\Users\larsu.julia\packages\Gridap\OTENN\src\FESpaces\SparseMatrixAssemblers.jl:319  
[11] numeric\_loop\_vector!(b::Vector{Float64}, a::GenericSparseMatrixAssembler, vecdata::Tuple{Vector{Any}, Vector{Any}})  
@ Gridap.FESpaces C:\Users\larsu.julia\packages\Gridap\OTENN\src\FESpaces\SparseMatrixAssemblers.jl:306  
[12] assemble\_vector\_add!  
@ C:\Users\larsu.julia\packages\Gridap\OTENN\src\FESpaces\SparseMatrixAssemblers.jl:71 [inlined]  
[13] assemble\_vector!(b::Vector{Float64}, a::GenericSparseMatrixAssembler, vecdata::Tuple{Vector{Any}, Vector{Any}})  
@ Gridap.FESpaces C:\Users\larsu.julia\packages\Gridap\OTENN\src\FESpaces\SparseMatrixAssemblers.jl:67  
[14] residual!(b::Vector{Float64}, op::Gridap.ODEs.TransientFETools.TransientFEOperatorFromWeakForm{Gridap.ODEs.ODETools.Nonlinear}, t::Float64, xh::Gridap.ODEs.TransientFETools.TransientMultiFieldCellField{Gridap.MultiField.MultiFieldFEFunction{Gridap.MultiField.MultiFieldCellField{ReferenceDomain}}}, cache::Tuple{Tuple{MultiFieldFESpace{Gridap.MultiField.ConsecutiveMultiFieldStyle, UnConstrained, Vector{Float64}}, MultiFieldFESpace{Gridap.MultiField.ConsecutiveMultiFieldStyle, UnConstrained, Vector{Float64}}}, Tuple{TransientMultiFieldTrialFESpace, TransientMultiFieldTrialFESpace}, Nothing})  
@ Gridap.ODEs.TransientFETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\TransientFETools\TransientFEOperators.jl:256  
[15] residual!(b::Vector{Float64}, op::Gridap.ODEs.TransientFETools.ODEOpFromFEOp{Gridap.ODEs.ODETools.Nonlinear}, t::Float64, xhF::Tuple{Vector{Float64}, Vector{Float64}}, ode\_cache::Tuple{Tuple{MultiFieldFESpace{Gridap.MultiField.ConsecutiveMultiFieldStyle, UnConstrained, Vector{Float64}}, MultiFieldFESpace{Gridap.MultiField.ConsecutiveMultiFieldStyle, UnConstrained, Vector{Float64}}}, Tuple{TransientMultiFieldTrialFESpace, TransientMultiFieldTrialFESpace}, Nothing})  
@ Gridap.ODEs.TransientFETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\TransientFETools\ODEOperatorInterfaces.jl:74  
[16] residual!(b::Vector{Float64}, op::Gridap.ODEs.ODETools.ThetaMethodNonlinearOperator, x::Vector{Float64})  
@ Gridap.ODEs.ODETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\ODETools\ThetaMethod.jl:74  
[17] residual\_and\_jacobian!(b::Vector{Float64}, A::SparseArrays.SparseMatrixCSC{Float64, Int64}, op::Gridap.ODEs.ODETools.ThetaMethodNonlinearOperator, x::Vector{Float64})  
@ Gridap.Algebra C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\NonlinearOperators.jl:52  
[18] residual\_and\_jacobian(op::Gridap.ODEs.ODETools.ThetaMethodNonlinearOperator, x::Vector{Float64})  
@ Gridap.Algebra C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\NonlinearOperators.jl:62  
[19] \_new\_nlsolve\_cache(x0::Vector{Float64}, nls::NLSolver, op::Gridap.ODEs.ODETools.ThetaMethodNonlinearOperator)  
@ Gridap.Algebra C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\NLSolvers.jl:167  
[20] solve!(x::Vector{Float64}, nls::NLSolver, op::Gridap.ODEs.ODETools.ThetaMethodNonlinearOperator, cache::Nothing)  
@ Gridap.Algebra C:\Users\larsu.julia\packages\Gridap\OTENN\src\Algebra\NLSolvers.jl:138  
[21] solve\_step!(uf::Vector{Float64}, solver::ThetaMethod, op::Gridap.ODEs.TransientFETools.ODEOpFromFEOp{Gridap.ODEs.ODETools.Nonlinear}, u0::Vector{Float64}, t0::Int64, cache::Nothing)  
@ Gridap.ODEs.ODETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\ODETools\ThetaMethod.jl:44  
[22] solve\_step!(uF::Vector{Float64}, solver::ThetaMethod, op::Gridap.ODEs.TransientFETools.ODEOpFromFEOp{Gridap.ODEs.ODETools.Nonlinear}, u0::Vector{Float64}, t0::Int64)  
@ Gridap.ODEs.ODETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\ODETools\ODESolvers.jl:27  
[23] iterate(sol::Gridap.ODEs.ODETools.GenericODESolution{Vector{Float64}})  
@ Gridap.ODEs.ODETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\ODETools\ODESolutions.jl:47  
[24] iterate(sol::TransientFESolution)  
@ Gridap.ODEs.TransientFETools C:\Users\larsu.julia\packages\Gridap\OTENN\src\ODEs\TransientFETools\TransientFESolutions.jl:65  
[25] top-level scope  
@ c:\Users\larsu\Documents\Universiteit Master\Design Project\Julia\Gridap-thermal\thermalfluid.jl:104

as a result of running the following code:

# code

using DrWatson  
using DifferentialEquations  
@quickactivate “PorousMediumFlow”  
using Gridap  
using ForwardDiff  
using LinearAlgebra  
using Test  
using Gridap.ODEs.TransientFETools  
using Gridap.FESpaces  
using Gridap.Arrays: test\_array  
using Plots  
using Gmsh  
using GridapGmsh  
using Gridap.Algebra;  
using Gridap.FESpaces  
using Gridap.ReferenceFEs  
using Gridap.Arrays  
using Gridap.Geometry  
using Gridap.Fields  
using Gridap.CellData  
using Gridap.Geometry  
#using DifferentialEquations  
#using GridapODEs  
#using GridapODEs.ODETools  
#using GridapODEs.TransientFETools  
#using Gridap.ODEs  
#using Gridap.ODEs.ODETools  
using LineSearches: BackTracking  
using WriteVTK  
using DelimitedFiles, FileIO, Dates  
using JLD2, DataFrames, TimerOutputs  
using IncompleteLU, IterativeSolvers  
using BenchmarkTools  
#using NLsolve  
#using NLSolvers  
#using NLSolversBase

model = GmshDiscreteModel(“transformer\_stedin\_thermaltest.msh”)

k = 2;  
Ω = Triangulation(model)  
degree = 2\*k;  
dΩ = Measure(Ω,degree)

labels = get\_face\_labeling(model)

u\_wall(x, t::Real) = VectorValue(0.0, 0.0)  
u\_wall(t::Real) = x → u\_wall(x, t)

```
# Velocity FE space
reffeᵤ = ReferenceFE(lagrangian,VectorValue{2,Float64},k)
V₀ = TestFESpace(model, reffeᵤ, conformity=:H1, dirichlet_tags=["Enclosure", "Core Boundary", "HV windings Boundary", "LV Windings Boundary"])
U = TransientTrialFESpace(V₀, [u_wall,u_wall,u_wall,u_wall])

# Pressure FE space
reffeₚ = ReferenceFE(lagrangian,Float64,1)
Q = FESpace(model, reffeₚ, conformity=:C0)
P = TrialFESpace(Q)

# Temperature FE space
reffeₜ = ReferenceFE(lagrangian,Float64,1)
S₀ = FESpace(model, reffeₜ, conformity=:C0)
S = TransientTrialFESpace(S₀) #T

# Combining in multi-field
Y = MultiFieldFESpace([V₀,Q,S₀])
X = TransientMultiFieldFESpace([U,P,S])

# variables
theta = 0.5 ;
ρ₀ = 1;
cₚ = 1;
nu = 1;
g = 1;
β =1 ;
T₀ = 1 ;

```

# Residual

```
a(u,q) = ∫(∇(u) ⋅ q)dΩ
b((u,p,T),v) = ∫(ρ₀⋅(∂t(u)⋅v) + ρ₀⋅(((∇(u)')⋅u)⋅v) - ∇(p)⋅v - nu⋅(∇(u)⋅∇(v)) - ρ₀⋅g⋅(1-β⋅(T-T₀))⋅v)dΩ
c((u,T),s) = ∫(ρ₀⋅cₚ⋅(∂t(T)⋅s) + ρ₀⋅cₚ⋅(u⋅∇(T)⋅s) - ∇(T)⋅∇(s))dΩ

res(t,(u,p,T),(q,v,s)) = a(u,q) + b((u,p,T),v) + c((u,T),s)

op = TransientFEOperator(res,X,Y)

# solver
t0=0
t1=0.2
xh0 = interpolate_everywhere([VectorValue(0.0,0.0),0.0,0.0],X(0.0))
dt = 0.05
θ = 0.5
ls = LUSolver()

```

using Gridap.Algebra: NewtonRaphsonSolver  
nls = NLSolver(ls;show\_trace=true,method=:newton) #linesearch=BackTracking())  
solver = ThetaMethod(nls,dt,θ)  
xh\_1 = Gridap.solve(solver, op, xh0, t0, t1)

pvd = paraview\_collection(datadir(“sims”)\*“\ collection\_ups”, append=false)

for (xh\_tn, tn) in xh\_1  
uh, sh, ph, ηh = xh\_tn  
t\_doc = tn #round(tn; digits=3)  
pvd[tn] = createvtk(Ω, datadir(“sims”,stage)\*“\FS$t\_doc.vtu”, cellfields = [“uh” =\> uh, “ph” =\> ph, “sh” =\> sh]) #  
end

I am quite positive that there is something wrong with my weak form/residual formulation but I cannot determine what it is. Any insights of experienced users would be greatly appreciated.
