@@ -46,60 +46,65 @@ function _check_backends(assembler, U, X, state_old, state_new, conns)
4646 @assert backend == KA. get_backend (conns)
4747 @assert backend == KA. get_backend (state_old)
4848 @assert backend == KA. get_backend (state_new)
49+ # props will be complicated...
50+ # TODO
4951 return backend
5052end
5153
5254function assemble! (assembler, :: Type{H1Field} , p, val_sym:: Val{:mass} )
53- _zero_storage (assembler, val_sym)
5455 fspace = assembler. dof. H1_vars[1 ]. fspace
55- for (b, (conns, block_physics, state_old, state_new)) in enumerate (zip (
56+ _zero_storage (assembler, val_sym)
57+ for (b, (conns, block_physics, state_old, state_new, props)) in enumerate (zip (
5658 values (fspace. elem_conns),
5759 values (p. physics),
58- values (p. state_old), values (p. state_new)
60+ values (p. state_old), values (p. state_new),
61+ values (p. properties)
5962 ))
6063 ref_fe = values (fspace. ref_fes)[b]
61- backend = _check_backends (assembler, p. h1_field, fspace . coords , state_old, state_new, conns)
64+ backend = _check_backends (assembler, p. h1_field, p . h1_coords , state_old, state_new, conns)
6265 _assemble_block_mass! (
6366 assembler, block_physics, ref_fe,
64- p. h1_field, fspace . coords , state_old, state_new,
67+ p. h1_field, p . h1_coords , state_old, state_new, props ,
6568 conns, b,
6669 backend
6770 )
6871 end
6972end
7073
7174function assemble! (assembler, :: Type{H1Field} , p, val_sym:: Val{:residual} )
72- _zero_storage (assembler, val_sym)
7375 fspace = assembler. dof. H1_vars[1 ]. fspace
74- for (b, (conns, block_physics, state_old, state_new)) in enumerate (zip (
76+ _zero_storage (assembler, val_sym)
77+ for (b, (conns, block_physics, state_old, state_new, props)) in enumerate (zip (
7578 values (fspace. elem_conns),
7679 values (p. physics),
77- values (p. state_old), values (p. state_new)
80+ values (p. state_old), values (p. state_new),
81+ values (p. properties)
7882 ))
7983 ref_fe = values (fspace. ref_fes)[b]
80- backend = _check_backends (assembler, p. h1_field, fspace . coords , state_old, state_new, conns)
84+ backend = _check_backends (assembler, p. h1_field, p . h1_coords , state_old, state_new, conns)
8185 _assemble_block_residual! (
8286 assembler, block_physics, ref_fe,
83- p. h1_field, fspace . coords , state_old, state_new,
87+ p. h1_field, p . h1_coords , state_old, state_new, props ,
8488 conns, b,
8589 backend
8690 )
8791 end
8892end
8993
9094function assemble! (assembler, :: Type{H1Field} , p, val_sym:: Val{:residual_and_stiffness} )
91- _zero_storage (assembler, val_sym)
9295 fspace = assembler. dof. H1_vars[1 ]. fspace
93- for (b, (conns, block_physics, state_old, state_new)) in enumerate (zip (
96+ _zero_storage (assembler, val_sym)
97+ for (b, (conns, block_physics, state_old, state_new, props)) in enumerate (zip (
9498 values (fspace. elem_conns),
9599 values (p. physics),
96- values (p. state_old), values (p. state_new)
100+ values (p. state_old), values (p. state_new),
101+ values (p. properties)
97102 ))
98103 ref_fe = values (fspace. ref_fes)[b]
99- backend = _check_backends (assembler, p. h1_field, fspace . coords , state_old, state_new, conns)
104+ backend = _check_backends (assembler, p. h1_field, p . h1_coords , state_old, state_new, conns)
100105 _assemble_block_residual_and_stiffness! (
101106 assembler, block_physics, ref_fe,
102- p. h1_field, fspace . coords , state_old, state_new,
107+ p. h1_field, p . h1_coords , state_old, state_new, props ,
103108 conns, b,
104109 backend
105110 )
@@ -109,16 +114,17 @@ end
109114function assemble! (assembler, :: Type{H1Field} , p, val_sym:: Val{:stiffness} )
110115 _zero_storage (assembler, val_sym)
111116 fspace = assembler. dof. H1_vars[1 ]. fspace
112- for (b, (conns, block_physics, state_old, state_new)) in enumerate (zip (
117+ for (b, (conns, block_physics, state_old, state_new, props )) in enumerate (zip (
113118 values (fspace. elem_conns),
114119 values (p. physics),
115- values (p. state_old), values (p. state_new)
120+ values (p. state_old), values (p. state_new),
121+ values (p. properties)
116122 ))
117123 ref_fe = values (fspace. ref_fes)[b]
118- backend = _check_backends (assembler, p. h1_field, fspace . coords , state_old, state_new, conns)
124+ backend = _check_backends (assembler, p. h1_field, p . h1_coords , state_old, state_new, conns)
119125 _assemble_block_stiffness! (
120126 assembler, block_physics, ref_fe,
121- p. h1_field, fspace . coords , state_old, state_new,
127+ p. h1_field, p . h1_coords , state_old, state_new, props ,
122128 conns, b,
123129 backend
124130 )
0 commit comments