@@ -75,13 +75,40 @@ function ODEs.TransientCellField(f::DistributedCellField,derivatives::Tuple)
7575 DistributedCellField (fields,get_triangulation (f),f. metadata)
7676end
7777
78+ function ODEs. TransientCellField (f:: DistributedCellField ,derivatives:: AbstractArray )
79+ fields = map (local_views (f),local_views (derivatives)) do f, derivatives
80+ ODEs. TransientCellField (f,derivatives)
81+ end
82+ DistributedCellField (fields,get_triangulation (f),f. metadata)
83+ end
84+
7885function ODEs. time_derivative (f:: DistributedTransientSingleFieldCellField )
7986 fields = map (local_views (f)) do field
8087 ODEs. time_derivative (field)
8188 end
8289 DistributedCellField (fields,get_triangulation (f))
8390end
8491
92+ function ODEs. get_cellfield (f:: DistributedTransientSingleFieldCellField )
93+ cellfields = map (local_views (f)) do field
94+ ODEs. get_cellfield (field)
95+ end
96+ DistributedCellField (cellfields,get_triangulation (f))
97+ end
98+
99+ function ODEs. get_derivative (f:: DistributedTransientSingleFieldCellField , k:: Int )
100+ derivatives = map (local_views (f)) do field
101+ ODEs. get_derivative (field, k)
102+ end
103+ DistributedCellField (derivatives,get_triangulation (f))
104+ end
105+
106+ function ODEs. get_derivatives (f:: DistributedTransientSingleFieldCellField )
107+ derivatives = map (local_views (f)) do field
108+ ODEs. get_derivatives (field)
109+ end
110+ end
111+
85112# MultiField FESpace
86113
87114function ODEs. has_transient (space:: DistributedMultiFieldFESpace )
@@ -161,3 +188,23 @@ function ODEs.time_derivative(f::DistributedTransientMultiFieldCellField)
161188 part_fe_fun = map (ODEs. TransientMultiFieldCellField,fields)
162189 DistributedMultiFieldCellField (field_fe_fun,part_fe_fun)
163190end
191+
192+ function ODEs. get_cellfield (f:: DistributedTransientMultiFieldCellField )
193+ field_cellfield = map (ODEs. get_cellfield,f. field_fe_fun)
194+ cellfields = to_parray_of_arrays (map (local_views,field_cellfield))
195+ part_cellfields = map (MultiFieldCellField,cellfields)
196+ DistributedMultiFieldCellField (field_cellfield,part_cellfields)
197+ end
198+
199+ function ODEs. get_derivative (f:: DistributedTransientMultiFieldCellField , k:: Int )
200+ field_derivative = map (df -> ODEs. get_derivative (df, k), f. field_fe_fun)
201+ derivatives = to_parray_of_arrays (map (local_views,field_derivative))
202+ part_derivatives = map (MultiFieldCellField,derivatives)
203+ DistributedMultiFieldCellField (field_derivative,part_derivatives)
204+ end
205+
206+ function ODEs. get_derivatives (f:: DistributedTransientMultiFieldCellField )
207+ derivatives = map (local_views (f)) do field
208+ ODEs. get_derivatives (field)
209+ end
210+ end
0 commit comments