Object Info


start(_G1050) is defined in /home/robert/projects/Ctadel/trial.s:11
start(_G1050) --> object
----------------------------------- Properties:
start({"CSE"}) has body(proc(( iff not is_defined(indexed_values_opt) then start(
"Optimization")
; banner(
"Common Subexpression Elimination")
; (cse_values :=
(domains(dice(indexed_values_opt) : 1) with
{reduce(scan); power(log)}
)
)
; store(cse_values, cse_value)
; return cse_values
)))
start({"Code"}) has body(proc(( iff not is_defined(cse_values) then start(
"CSE")
; banner("Code Generation")
; foreach (i in 1 to length(cse_values) do
( (code_values : i :=
domain_loops(cse_values : i) with {code}
)
; message("~p: ~p", [i, code_values : i])
)
)
; serial_code := reduce((;), code_values)
; (datapar_code :=
serial_code with {datapar}
)
; return code_values
)))
start({"Dimensional Analysis"}) has body(proc(( iff not is_defined(scalar_values) then start(
"Scalar Values")
; banner("Dimensional analysis")
; (dimensioned_values :=
convert(unit, scalar_values)
)
; store(dimensioned_values, dimensioned_value)
; return dimensioned_values
)))
start({"Discretization"}) has body(proc(( iff not is_defined(dimensioned_values) then start(
"Dimensional Analysis")
; banner(
"Discretization and interpolation")
; discrete_values := convert(grid, expand({( _G131217
~ _G131218
)}, value, dimensioned_values)) with {linear}
; store(discrete_values, discrete_value)
; return discrete_values
)))
start({"Indexing"}) has body(proc(( iff not is_defined(discrete_values) then start(
"Discretization")
; banner(
"Deriving schemes, ranges, and boundary information")
; indexed_values := domains_and_ranges(topsort(expand(declared_op(_G131217), value, discrete_values) with {point; index}))
; store(indexed_values, indexed_value)
; return indexed_values
)))
start({"Linearization"}) has body(proc(( iff not is_defined(discrete_values) then start(
"Discretization")
; (iff linearization ` switch == (on) then ( banner(
"Linearized model creation")
; linear_model
; (all_discrete_values :=
retrieve(linearized_var, discrete_value) union discrete_values
)
) else
(all_discrete_values :=
discrete_values
)
)
; return all_discrete_values
)))
start({"Opt Code"}) has body(proc(( iff not is_defined(code_values) then start(
"Code")
; banner("Code Optimization")
; (datapar_code :=
(serial_code with
{restruct(simp); datapar}
)
)
)))
start({"Optimization"}) has body(proc(( iff not is_defined(indexed_values) then start(
"Indexing")
; banner(
"Optimizing boundary conditions")
; foreach (_G131203 in 1 to length(indexed_values) repeat
( (indexed_values_opt : _G131203 :=
indexed_values : _G131203 with {reduce}
)
; message("~p: ~p", [_G131203, indexed_values_opt : _G131203])
)
)
; return indexed_values_opt
)))
start({"Scalar Values"}) has body(proc(( banner(
"Retrieving scalar values of dependent variables")
; scalar_values := topsort(retrieve(dependent_var, value) with {cond})
; store(scalar_values, scalar_value)
; return scalar_values
)))
start({_G131149}) has body(proc((iff confirm(
"Retrieve the scalar values") then start("Scalar Values") else
iff confirm(
"Apply dimensional analysis") then start("Dimensional Analysis") else
iff confirm(
"Apply discretization") then start("Discretization") else
iff confirm(
"Apply stencils and schemes") then start("Indexing") else
iff confirm(
"Apply optimization of schemes") then start("Optimization") else
iff confirm(
"Apply common subexpression elimination") then start("CSE") else
iff confirm("Generate the code") then start(
"Code")
)))
----------------------------------- Methods inherited from class object:
start(_G1050) can restore(_G131374)
save(_G131374, _G131375)
get_properties(_G131374, _G131375)
get_superobjects(_G131374, _G131375)
get_subobjects(_G131374, _G131375)
get_parents(_G131374, _G131375)
get_children(_G131374, _G131375)
get_instances(_G131374, _G131375)
create(_G131374, _G131375)
get_dependencies(_G131374, _G131375)