3333 subdomain as _subdomain ,
3434)
3535from festim .advection import AdvectionTerm
36- from festim .helpers import as_fenics_constant , get_interpolation_points
36+ from festim .helpers import (
37+ as_fenics_constant ,
38+ get_interpolation_points ,
39+ is_it_time_to_export ,
40+ )
3741from festim .mesh import Mesh
3842
3943__all__ = ["HydrogenTransportProblemDiscontinuous" , "HydrogenTransportProblem" ]
@@ -916,28 +920,34 @@ def post_processing(self):
916920 species_not_updated .remove (export .field )
917921
918922 for export in self .exports :
923+ # skip if it isn't time to export
924+ if hasattr (export , "times" ):
925+ if not is_it_time_to_export (
926+ current_time = float (self .t ), times = export .times
927+ ):
928+ continue
929+
919930 # handle VTX exports
920931 if isinstance (export , exports .ExportBaseClass ):
921- if export .is_it_time_to_export (float (self .t )):
922- if isinstance (export , exports .VTXSpeciesExport ):
923- if export ._checkpoint :
924- for field in export .field :
925- adios4dolfinx .write_function (
926- export .filename ,
927- field .post_processing_solution ,
928- time = float (self .t ),
929- name = field .name ,
930- )
931- else :
932- export .writer .write (float (self .t ))
933- elif (
934- isinstance (export , festim .VTXTemperatureExport )
935- and self .temperature_time_dependent
936- ):
937- self ._temperature_as_function .interpolate (
938- self ._get_temperature_field_as_function ()
939- )
932+ if isinstance (export , exports .VTXSpeciesExport ):
933+ if export ._checkpoint :
934+ for field in export .field :
935+ adios4dolfinx .write_function (
936+ export .filename ,
937+ field .post_processing_solution ,
938+ time = float (self .t ),
939+ name = field .name ,
940+ )
941+ else :
940942 export .writer .write (float (self .t ))
943+ elif (
944+ isinstance (export , festim .VTXTemperatureExport )
945+ and self .temperature_time_dependent
946+ ):
947+ self ._temperature_as_function .interpolate (
948+ self ._get_temperature_field_as_function ()
949+ )
950+ export .writer .write (float (self .t ))
941951
942952 # TODO if export type derived quantity
943953 if isinstance (export , exports .SurfaceQuantity ):
@@ -1000,6 +1010,7 @@ def post_processing(self):
10001010 else :
10011011 c = self .u .x .array [export ._dofs ]
10021012 export .data .append (c )
1013+ export .t .append (float (self .t ))
10031014
10041015
10051016class HydrogenTransportProblemDiscontinuous (HydrogenTransportProblem ):
@@ -1593,6 +1604,12 @@ def post_processing(self):
15931604 collapsed_function .x .array [:] = u .x .array [v0_to_V ]
15941605
15951606 for export in self .exports :
1607+ # skip if it isn't time to export
1608+ if hasattr (export , "times" ):
1609+ if not is_it_time_to_export (
1610+ current_time = float (self .t ), times = export .times
1611+ ):
1612+ continue
15961613 # handle VTX exports
15971614 if isinstance (export , exports .ExportBaseClass ):
15981615 if not isinstance (export , exports .VTXSpeciesExport ):
@@ -1605,8 +1622,7 @@ def post_processing(self):
16051622 f"Export type { type (export )} not implemented "
16061623 f"for mixed-domain approach"
16071624 )
1608- if export .is_it_time_to_export (float (self .t )):
1609- export .writer .write (float (self .t ))
1625+ export .writer .write (float (self .t ))
16101626
16111627 # handle derived quantities
16121628 if isinstance (export , exports .SurfaceQuantity ):
@@ -1676,6 +1692,7 @@ def post_processing(self):
16761692 c = u .x .array [export ._dofs ][export ._sort_coords ]
16771693
16781694 export .data .append (c )
1695+ export .t .append (float (self .t ))
16791696
16801697 def iterate (self ):
16811698 """Iterates the model for a given time step"""
0 commit comments