Skip to content

Commit 8c37ce8

Browse files
authored
filter some variables that aren't needed for rendering (#174)
1 parent b5c31b9 commit 8c37ce8

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

ext/Render.jl

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,14 @@ mutable struct CacheSol
8282
vars
8383
last_t::Float64
8484
function CacheSol(model, sol)
85-
vars = get_all_vars(model) |> unique
85+
vars = get_all_vars(model, sol) |> unique
86+
vars = filter(v->!occursin("₊tau(t)", string(v)), vars)
87+
vars = filter(v->!occursin("₊a_0(t)", string(v)), vars)
88+
vars = filter(v->!occursin("₊w_a(t)", string(v)), vars)
89+
vars = filter(v->!occursin("₊v_0(t)", string(v)), vars)
90+
vars = filter(v->!occursin("₊u(t)", string(v)), vars)
91+
vars = filter(v->!occursin("₊z_a(t)", string(v)), vars)
92+
vars = filter(v->!occursin("₊phid(t)", string(v)), vars)
8693
# Main.vars = vars
8794
# @show length(vars)
8895
# filter!(v->ModelingToolkit.SymbolicIndexingInterface.is_variable(sol, v), vars) # To work around https://github.com/SciML/ModelingToolkit.jl/issues/3065
@@ -92,14 +99,22 @@ mutable struct CacheSol
9299
end
93100
end
94101

95-
function get_all_vars(model, vars = Multibody.collect_all(unknowns(model)))
102+
function get_all_vars(model, sol, vars = Multibody.collect_all(unknowns(model)))
103+
@parameters render
104+
nsrender = Multibody.ModelingToolkit.renamespace(model.name, render)
105+
dorender = try
106+
Bool(sol.prob.ps[nsrender])
107+
catch
108+
true
109+
end
96110
for sys in model.systems
97111
if ModelingToolkit.isframe(sys)
112+
dorender || continue
98113
newvars = Multibody.ModelingToolkit.renamespace.(model.name, Multibody.Symbolics.unwrap.(vec(ori(sys).R)))
99114
append!(vars, newvars)
100115
else
101116
subsys_ns = getproperty(model, sys.name)
102-
get_all_vars(subsys_ns, vars)
117+
get_all_vars(subsys_ns, sol, vars)
103118
end
104119
end
105120
vars

0 commit comments

Comments
 (0)