Hi, I am attempting to develop linear operator to be used into IterativeSolver.cg. I have scripted the following for the same
struct MyA
Asm::SparseMatrixCSC{Float64, Int64}
Freedof::Vector{Int64}
Cdof::Matrix{Int64}
Ke::Matrix{Float64}
dof::Int64
TN::Int64
Nno::Int64
TE::Int64
end
function (t::MyA)(F_int::Vector{Float64}, u::Vector{Float64})
## Internal force evaluation
U = zeros(t.dof*t.TN)
U[Freedof] = u;
Fe = zeros(t.dof*t.Nno,t.TE)
f_int = zeros(t.dof*t.TN)
mul!(Fe,Ke,U[Cdof'])
mul!(f_int,t.Asm,vec(Fe))
F_int = f_int[Freedof]
end
A = MyA(Asm,Freedof,Cdof,Ke,dof,TN,Nno,TE)
Us = cg(A,F_ext[Freedof];tol=1e-6)
This gives me a method error. Can someone please point out the issue.