<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cwsmith</id>
		<title>PHASTA Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://fluid.colorado.edu/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cwsmith"/>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php/Special:Contributions/Cwsmith"/>
		<updated>2026-04-09T18:32:50Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=ParaView/Visualizing_PHASTA_with_SyncIO&amp;diff=623</id>
		<title>ParaView/Visualizing PHASTA with SyncIO</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=ParaView/Visualizing_PHASTA_with_SyncIO&amp;diff=623"/>
				<updated>2017-12-15T18:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running Paraview on a viz Node ==&lt;br /&gt;
&lt;br /&gt;
  portal1 $ vglconnect viz002&lt;br /&gt;
  viz002 $ soft add +paraview-5.2.0-gnu-ompi&lt;br /&gt;
  viz002 $ vglrun paraview&lt;br /&gt;
&lt;br /&gt;
== Defining the PHASTA Input ==&lt;br /&gt;
&lt;br /&gt;
There are two extensions:&lt;br /&gt;
&lt;br /&gt;
pht -&amp;gt; POSIX files&lt;br /&gt;
&lt;br /&gt;
phts -&amp;gt; SyncIO files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Two Phase Case ===&lt;br /&gt;
&lt;br /&gt;
An example phts file for a two phase, four process case using one syncio file is below.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
  &amp;lt;PhastaMetaFile number_of_pieces=&amp;quot;4&amp;quot;&lt;br /&gt;
                number_of_files=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;GeometryFileNamePattern pattern=&amp;quot;4-procs_case-SyncIO-1/geombc-dat.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;FieldFileNamePattern pattern=&amp;quot;4-procs_case-SyncIO-1/restart-dat.%d.%d&amp;quot;&lt;br /&gt;
                         has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                         has_time_entry=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;TimeSteps number_of_steps=&amp;quot;1&amp;quot;&lt;br /&gt;
              auto_generate_indices=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_index=&amp;quot;0&amp;quot;&lt;br /&gt;
              increment_index_by=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_value=&amp;quot;0&amp;quot;&lt;br /&gt;
              increment_value_by=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/TimeSteps&amp;gt;&lt;br /&gt;
   &amp;lt;Fields number_of_fields=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;velocity&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;pressure&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;scr1&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;5&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;scr2&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;6&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;temperature&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;4&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/Fields&amp;gt;&lt;br /&gt;
  &amp;lt;/PhastaMetaFile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== A Single Phase Case ===&lt;br /&gt;
&lt;br /&gt;
An example phts file for a single phase, 2048 process case using 16 syncio files is below.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
  &amp;lt;PhastaMetaFile number_of_pieces=&amp;quot;2048&amp;quot;&lt;br /&gt;
                number_of_files=&amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;GeometryFileNamePattern pattern=&amp;quot;2048-procs_case/geombc-dat.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;FieldFileNamePattern pattern=&amp;quot;2048-procs_case/restart-dat.%d.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;TimeSteps number_of_steps=&amp;quot;1&amp;quot;&lt;br /&gt;
              auto_generate_indices=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_index=&amp;quot;800&amp;quot;&lt;br /&gt;
              increment_index_by=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_value=&amp;quot;800&amp;quot;&lt;br /&gt;
              increment_value_by=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/TimeSteps&amp;gt;&lt;br /&gt;
   &amp;lt;Fields number_of_fields=“8&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;errors&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;pde-res&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;errors&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;rms-vel&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;6&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;ybar&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;EVbar&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;12&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;u&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;1&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;pressure&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double”/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;eddy visocity&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;5&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;dwal&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;dwal&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;vorticity&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;Q&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;4&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Fields&amp;gt;&lt;br /&gt;
  &amp;lt;/PhastaMetaFile&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=ParaView/Visualizing_PHASTA_with_SyncIO&amp;diff=622</id>
		<title>ParaView/Visualizing PHASTA with SyncIO</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=ParaView/Visualizing_PHASTA_with_SyncIO&amp;diff=622"/>
				<updated>2017-12-15T18:13:16Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: Created page with &amp;quot;## Running Paraview on a viz Node ##    portal1 $ vglconnect viz002   viz002 $ soft add +paraview-5.2.0-gnu-ompi   viz002 $ vglrun paraview  ## Defining the PHASTA Input ##  T...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;## Running Paraview on a viz Node ##&lt;br /&gt;
&lt;br /&gt;
  portal1 $ vglconnect viz002&lt;br /&gt;
  viz002 $ soft add +paraview-5.2.0-gnu-ompi&lt;br /&gt;
  viz002 $ vglrun paraview&lt;br /&gt;
&lt;br /&gt;
## Defining the PHASTA Input ##&lt;br /&gt;
&lt;br /&gt;
There are two extensions:&lt;br /&gt;
&lt;br /&gt;
pht -&amp;gt; POSIX files&lt;br /&gt;
&lt;br /&gt;
phts -&amp;gt; SyncIO files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### A Two Phase Case ### &lt;br /&gt;
&lt;br /&gt;
An example phts file for a two phase, four process case using one syncio file is below.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
  &amp;lt;PhastaMetaFile number_of_pieces=&amp;quot;4&amp;quot;&lt;br /&gt;
                number_of_files=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;GeometryFileNamePattern pattern=&amp;quot;4-procs_case-SyncIO-1/geombc-dat.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;FieldFileNamePattern pattern=&amp;quot;4-procs_case-SyncIO-1/restart-dat.%d.%d&amp;quot;&lt;br /&gt;
                         has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                         has_time_entry=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;TimeSteps number_of_steps=&amp;quot;1&amp;quot;&lt;br /&gt;
              auto_generate_indices=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_index=&amp;quot;0&amp;quot;&lt;br /&gt;
              increment_index_by=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_value=&amp;quot;0&amp;quot;&lt;br /&gt;
              increment_value_by=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/TimeSteps&amp;gt;&lt;br /&gt;
   &amp;lt;Fields number_of_fields=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;velocity&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;pressure&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;scr1&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;5&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;scr2&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;6&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field paraview_field_tag=&amp;quot;temperature&amp;quot;&lt;br /&gt;
            phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;4&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/Fields&amp;gt;&lt;br /&gt;
  &amp;lt;/PhastaMetaFile&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### A Single Phase Case ### &lt;br /&gt;
&lt;br /&gt;
An example phts file for a single phase, 2048 process case using 16 syncio files is below.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;
  &amp;lt;PhastaMetaFile number_of_pieces=&amp;quot;2048&amp;quot;&lt;br /&gt;
                number_of_files=&amp;quot;16&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;GeometryFileNamePattern pattern=&amp;quot;2048-procs_case/geombc-dat.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;0&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;FieldFileNamePattern pattern=&amp;quot;2048-procs_case/restart-dat.%d.%d&amp;quot;&lt;br /&gt;
                            has_piece_entry=&amp;quot;1&amp;quot;&lt;br /&gt;
                            has_time_entry=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;TimeSteps number_of_steps=&amp;quot;1&amp;quot;&lt;br /&gt;
              auto_generate_indices=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_index=&amp;quot;800&amp;quot;&lt;br /&gt;
              increment_index_by=&amp;quot;1&amp;quot;&lt;br /&gt;
              start_value=&amp;quot;800&amp;quot;&lt;br /&gt;
              increment_value_by=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;/TimeSteps&amp;gt;&lt;br /&gt;
   &amp;lt;Fields number_of_fields=“8&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;errors&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;pde-res&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;errors&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;rms-vel&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;6&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;ybar&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;EVbar&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;12&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;u&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;1&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;3&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;pressure&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double”/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;solution&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;eddy visocity&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;5&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;dwal&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;dwal&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;0&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;Field phasta_field_tag=&amp;quot;vorticity&amp;quot;&lt;br /&gt;
            paraview_field_tag=&amp;quot;Q&amp;quot;&lt;br /&gt;
            start_index_in_phasta_array=&amp;quot;4&amp;quot;&lt;br /&gt;
            number_of_components=&amp;quot;1&amp;quot;&lt;br /&gt;
            data_dependency=&amp;quot;0&amp;quot;&lt;br /&gt;
            data_type=&amp;quot;double&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/Fields&amp;gt;&lt;br /&gt;
  &amp;lt;/PhastaMetaFile&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=ParaViewOnTukey&amp;diff=621</id>
		<title>ParaViewOnTukey</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=ParaViewOnTukey&amp;diff=621"/>
				<updated>2017-12-15T17:45:02Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Video Tutorial about how to run a pvserver-syncio in parallel on the Tukey visualization nodes and connect the pvserver to a ParaView Gui running on the Tukey login node */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Video Tutorial about how to run a pvserver-syncio in parallel on the Tukey visualization nodes and connect the pvserver to a ParaView Gui running on portal0 at Colorado ==&lt;br /&gt;
  http://fluid.colorado.edu/~mrasquin/Documents_HIDE/Tukey/ParaviewOnTukeyFromPortal0/index.html&lt;br /&gt;
&lt;br /&gt;
This video can be copied from /users/mrasquin/public_html/Documents_HIDE/Tukey/ParaviewOnTukeyFromPortal0 on the viz nodes.&lt;br /&gt;
&lt;br /&gt;
== Video Tutorial about how to run a pvserver-syncio in parallel on the Tukey visualization nodes and connect the pvserver to a ParaView Gui running on the Tukey login node ==&lt;br /&gt;
  https://fluid.colorado.edu/~mrasquin/phasta/ParaViewOnTukey/index.html&lt;br /&gt;
 &lt;br /&gt;
This video can be copied from /users/mrasquin/public_html/Tukey/ParaviewOnTukeyThroughVNC on the viz nodes.&lt;br /&gt;
&lt;br /&gt;
Note that because vncserver on the Tukey head node does not support OpenGL, this method does not allow the export of png pictures from the ParaView Gui. Indeed, the result will be completely fuzzy. The first method is therefore strongly recommended.&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=595</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=595"/>
				<updated>2015-11-20T23:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Detailed Description of Phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data - done &lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields - done&lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR) - done&lt;br /&gt;
*phase5 replace UR with local adaptation - done&lt;br /&gt;
*phase6 loop and we are done - done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_[read|write] (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile_[read|write]&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these eight functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.cc which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into phio layer - hardcoded in phasta - see https://github.com/cwsmith/phastaChef/issues/17&lt;br /&gt;
## Move file name  construction into - done&lt;br /&gt;
## Move query and init into phio_opefile_* - done&lt;br /&gt;
## Migrating all of PHASTA to use wrapper apis - done&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into conditional for syncio - done&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional - done&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio - done&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs) - done&lt;br /&gt;
#phase2&lt;br /&gt;
## Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file - done&lt;br /&gt;
## Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing) - done&lt;br /&gt;
## Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote - done&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location - done&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef - done&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor - done&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success - done&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale) - done&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut). - done&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=594</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=594"/>
				<updated>2015-11-20T22:59:55Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Summary of Phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data - done &lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields - done&lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR) - done&lt;br /&gt;
*phase5 replace UR with local adaptation - done&lt;br /&gt;
*phase6 loop and we are done - done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_[read|write] (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile_[read|write]&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these eight functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.cc which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into phio layer - hardcoded in phasta - see https://github.com/cwsmith/phastaChef/issues/17&lt;br /&gt;
## Move file name  construction into - done&lt;br /&gt;
## Move query and init into phio_opefile_* - done&lt;br /&gt;
## Migrating all of PHASTA to use wrapper apis - done&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into conditional for syncio - done&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional - done&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio - done&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs) - done&lt;br /&gt;
#phase2&lt;br /&gt;
## Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=582</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=582"/>
				<updated>2015-07-23T15:20:45Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Detailed Description of Phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_[read|write] (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile_[read|write]&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these eight functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.cc which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into phio layer - hardcoded in phasta - see https://github.com/cwsmith/phastaChef/issues/17&lt;br /&gt;
## Move file name  construction into - done&lt;br /&gt;
## Move query and init into phio_opefile_* - done&lt;br /&gt;
## Migrating all of PHASTA to use wrapper apis - done&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into conditional for syncio - done&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional - done&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio - done&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs) - done&lt;br /&gt;
#phase2&lt;br /&gt;
## Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=581</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=581"/>
				<updated>2015-07-23T15:15:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* phastaIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_[read|write] (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile_[read|write]&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these eight functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.cc which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=580</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=580"/>
				<updated>2015-07-23T15:13:56Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Detailed Description of Phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=579</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=579"/>
				<updated>2015-07-23T15:13:20Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Summary of Phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 wrapper layer that supports both syncio and posix - done 7/20/2015&lt;br /&gt;
*phase1 PHASTA can read AND write both - done 7/22/2015&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=578</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=578"/>
				<updated>2015-07-23T15:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* preliminary design plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=577</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=577"/>
				<updated>2015-07-23T15:11:52Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* preliminary design plan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
Initially, &amp;lt;code&amp;gt;setIOparam()&amp;lt;/code&amp;gt; counting of syncio files will be used to determine if sync or posix files will be used.  If the count is zero then assume posix.  Use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
== preliminary design plan ==&lt;br /&gt;
* use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
* push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=576</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=576"/>
				<updated>2015-07-23T15:09:25Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* phastaIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
=== preliminary design plan ===&lt;br /&gt;
* use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
* push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix openfile, closefile, {read,write}X{header,datablock}&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
== preliminary design plan ==&lt;br /&gt;
* use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
* push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=575</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=575"/>
				<updated>2015-07-23T15:08:51Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Thorny Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## extra write files.  Seems to me that there should be either&lt;br /&gt;
### only 2  write_restart and write_field, or&lt;br /&gt;
### an init function and then only write_field&lt;br /&gt;
## dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
== preliminary design plan ==&lt;br /&gt;
* use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
* push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=574</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=574"/>
				<updated>2015-07-23T15:08:27Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* THORNY ISSUES */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==Thorny Issues==&lt;br /&gt;
&lt;br /&gt;
#phase0&lt;br /&gt;
## 1) extra write files.  Seems to me that there should be either&lt;br /&gt;
### a) only 2  write_restart and write_field, or&lt;br /&gt;
### b) an init function and then only write_field&lt;br /&gt;
## 2) dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
## 3) usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
## 4) KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
### a) query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
### b) init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== preliminary design plan ==&lt;br /&gt;
* use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
* push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=573</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=573"/>
				<updated>2015-07-23T15:06:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* phastaIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
== Detailed Description of Phases == &lt;br /&gt;
&lt;br /&gt;
# phase0&lt;br /&gt;
## Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
## Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
### Move query and init into B)&lt;br /&gt;
## Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
## Repeat 0.1-0.3 for writing of files&lt;br /&gt;
#phase1&lt;br /&gt;
## Migrate string constructors into  conditional for syncio&lt;br /&gt;
## Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
## make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
## Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
## Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
#phase2&lt;br /&gt;
## 2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
## 2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
## 2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
#phase3&lt;br /&gt;
## Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
## Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
## Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
## Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
#phase4&lt;br /&gt;
## Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
#phase5&lt;br /&gt;
## Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
==THORNY ISSUES==&lt;br /&gt;
&lt;br /&gt;
phase0&lt;br /&gt;
&lt;br /&gt;
     1) extra write files.  Seems to me that there should be either&lt;br /&gt;
&lt;br /&gt;
        a) only 2  write_restart and write_field, or&lt;br /&gt;
&lt;br /&gt;
        b) an init function and then only write_field&lt;br /&gt;
&lt;br /&gt;
     2) dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
&lt;br /&gt;
     3) usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
&lt;br /&gt;
    4) KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
         a) query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
         b) init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
         preliminary design plan&lt;br /&gt;
         i) use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
        ii) push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix&lt;br /&gt;
        openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=572</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=572"/>
				<updated>2015-07-23T15:02:34Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* SUMMARY of phases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary of Phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
DETAIL&lt;br /&gt;
&lt;br /&gt;
phase0&lt;br /&gt;
&lt;br /&gt;
  0.1 Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
&lt;br /&gt;
  0.2 Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
&lt;br /&gt;
  0.2' Move query and init into B)&lt;br /&gt;
&lt;br /&gt;
  0.3 Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
&lt;br /&gt;
  0.4  Repeat 0.1-0.3 for writing of files&lt;br /&gt;
&lt;br /&gt;
phase1&lt;br /&gt;
&lt;br /&gt;
   1.1  Migrate string constructors into  conditional for syncio&lt;br /&gt;
&lt;br /&gt;
   1.2  Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
&lt;br /&gt;
   1.3 make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
&lt;br /&gt;
   1.3  Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
&lt;br /&gt;
   1.4  Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
&lt;br /&gt;
phase2&lt;br /&gt;
&lt;br /&gt;
   2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
&lt;br /&gt;
   2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
&lt;br /&gt;
   2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
&lt;br /&gt;
phase3&lt;br /&gt;
&lt;br /&gt;
   3.1 Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
&lt;br /&gt;
   3.2  Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
&lt;br /&gt;
   3.3   Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
&lt;br /&gt;
   3.4  Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
&lt;br /&gt;
phase4&lt;br /&gt;
&lt;br /&gt;
  4.1  Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
&lt;br /&gt;
phase5&lt;br /&gt;
&lt;br /&gt;
  5.1  Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
THORNY ISSUES&lt;br /&gt;
&lt;br /&gt;
phase0&lt;br /&gt;
&lt;br /&gt;
     1) extra write files.  Seems to me that there should be either&lt;br /&gt;
&lt;br /&gt;
        a) only 2  write_restart and write_field, or&lt;br /&gt;
&lt;br /&gt;
        b) an init function and then only write_field&lt;br /&gt;
&lt;br /&gt;
     2) dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
&lt;br /&gt;
     3) usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
&lt;br /&gt;
    4) KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
         a) query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
         b) init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
         preliminary design plan&lt;br /&gt;
         i) use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
        ii) push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix&lt;br /&gt;
        openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=571</id>
		<title>Work Plan In Memory Adapt</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=Work_Plan_In_Memory_Adapt&amp;diff=571"/>
				<updated>2015-07-23T15:02:21Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SUMMARY of phases ==&lt;br /&gt;
&lt;br /&gt;
*phase0 clean syncio (almost there)&lt;br /&gt;
*phase1 PHASTA can read AND write both&lt;br /&gt;
*phase2 PHASTA runs after chef though an in-memory read of Chef's written in-memory data&lt;br /&gt;
*phase3 PHASTA writes its field back to chef and lets chef do a UR on its mesh and transfers fields &lt;br /&gt;
*phase4 bring that result back to phasta (so chef-&amp;gt;PHASTA-&amp;gt;chef-UR-&amp;gt;PHASTA-UR)&lt;br /&gt;
*phase5 replace UR with local adaptation&lt;br /&gt;
*phase6 loop and we are done&lt;br /&gt;
&lt;br /&gt;
== phastaIO ==&lt;br /&gt;
&lt;br /&gt;
For the sake of discussion lets group phastaIO functions as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
init&lt;br /&gt;
open-close&lt;br /&gt;
read  (readheader, readdatablock)&lt;br /&gt;
write  (writeheader, writedatablock)&lt;br /&gt;
initalize&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To make the interface more simple, I propose, we push init into open and finalize into close.  Furthermore I propose that we consider a wrapper layer approach&lt;br /&gt;
where the functions that the PHASTA workflow  directly uses to perform IO are:&lt;br /&gt;
&lt;br /&gt;
*phio_openfile_read (in addition to specializing filename string for particular library, this function can call queryphmpiio and initphmpiio in the case of syncio)&lt;br /&gt;
*phio_openfile_write (in addition to specializing filename string for particular library, this function can call initphmpiio in the case of syncio)&lt;br /&gt;
*phio_readheader&lt;br /&gt;
*phio_readdatablock&lt;br /&gt;
*phio_writeheader&lt;br /&gt;
*phio_writedatablock&lt;br /&gt;
*phio_closefile&lt;br /&gt;
&lt;br /&gt;
These functions will be called by readnblk (and a few others) for reading and Write_restart (and a few clones) for writing.  Principally, these 6 functions will be wrappers that take in partial strings and the usual arguments for their PhastaIO functions  and then perform the necessary string specializations for the particular flavor of PhastaIO being used (e.g,, syncio or posix) before then ultimately calling the PhastaIO function (that already has a branching based on the two flavors).  Cameron has proposed housing those seven wrappers in phIO.c which seems fine to me.  Helper functions can go in the same file.&lt;br /&gt;
&lt;br /&gt;
DETAIL&lt;br /&gt;
&lt;br /&gt;
phase0&lt;br /&gt;
&lt;br /&gt;
  0.1 Move field string construction into C)-  status:  CWS has done this for  syncio (top of routines so not yet in a syncio conditional but this is not necessary until phase1)&lt;br /&gt;
&lt;br /&gt;
  0.2 Move file name  construction into B)-  status: not started but I think CWS indicated it was basically same work as 0.1 so leaving that with him. Note we don’t want this in init (at least for restarts) because we init only once but possibly write multiple times and the filename changes.&lt;br /&gt;
&lt;br /&gt;
  0.2' Move query and init into B)&lt;br /&gt;
&lt;br /&gt;
  0.3 Migrating all of PHASTA to use 0.1 dev - status:  CWS did it for readnblk.f and this built and ran (YAY), KEJ is migrating it to the balance of PHASTA (DONE I THINK)&lt;br /&gt;
&lt;br /&gt;
  0.4  Repeat 0.1-0.3 for writing of files&lt;br /&gt;
&lt;br /&gt;
phase1&lt;br /&gt;
&lt;br /&gt;
   1.1  Migrate string constructors into  conditional for syncio&lt;br /&gt;
&lt;br /&gt;
   1.2  Create posix counterparts and put them in the posix branch of conditional&lt;br /&gt;
&lt;br /&gt;
   1.3 make init and finalize functions that have a universal call but, via conditionals (likely posix just returns but syncio has stuff to do but we want the PHASTA side to look the same regardless of IO chosen)&lt;br /&gt;
&lt;br /&gt;
   1.3  Debug to be sure that at least all tet meshes can be read with both posix/syncio&lt;br /&gt;
&lt;br /&gt;
   1.4  Debug to make sure that files written are correct (two successive runs)&lt;br /&gt;
&lt;br /&gt;
phase2&lt;br /&gt;
&lt;br /&gt;
   2.1 Create ability for Chef to write to memory location using posixIO pointed at a memory location instead of a file&lt;br /&gt;
&lt;br /&gt;
   2.2 Create ability to pass the descriptor of that memory location to PHASTA  (I think it is safe to assume that since we are one “file” per part in both Chef and PHASTA that this is just the starting location of where Chef started writing)&lt;br /&gt;
&lt;br /&gt;
   2.3 Create ability to have phasta initialize itself with posix-based PHASTAIO reads from this in-memory file/state that Chef wrote&lt;br /&gt;
&lt;br /&gt;
phase3&lt;br /&gt;
&lt;br /&gt;
   3.1 Create ability for PHASTA to write  adapt-fields (solution, d2wall, error, ybar) using posix-based PHASTAIO writes to a memory location&lt;br /&gt;
&lt;br /&gt;
   3.2  Create ability to pass the descriptor of that memory location back to Chef&lt;br /&gt;
&lt;br /&gt;
   3.3   Create ability for Chef to read adapt-fields when passed descriptor&lt;br /&gt;
&lt;br /&gt;
   3.4  Invoke a UR with solution transfer and write files to confirm phase3 success&lt;br /&gt;
&lt;br /&gt;
phase4&lt;br /&gt;
&lt;br /&gt;
  4.1  Should be trivial but have Chef write result of UR to a new memory location and pass descriptor to PHASTA to read and run again (comparing to file based version of the same which we are already doing at scale)&lt;br /&gt;
&lt;br /&gt;
phase5&lt;br /&gt;
&lt;br /&gt;
  5.1  Demonstrate that we can do file based local adaptive refinement with Chef  (I will let Dan and Cameron described the subtask developments here but am more than happy to help plan and assist in any way I can because we really need this capability…I am fine with ignoring/freezing boundary layers to get a working case going before taking on that much tougher nut).&lt;br /&gt;
&lt;br /&gt;
THORNY ISSUES&lt;br /&gt;
&lt;br /&gt;
phase0&lt;br /&gt;
&lt;br /&gt;
     1) extra write files.  Seems to me that there should be either&lt;br /&gt;
&lt;br /&gt;
        a) only 2  write_restart and write_field, or&lt;br /&gt;
&lt;br /&gt;
        b) an init function and then only write_field&lt;br /&gt;
&lt;br /&gt;
     2) dwall currently has two modes (in restart or in a separate file….do we really need to preserve this)&lt;br /&gt;
&lt;br /&gt;
     3) usr.c opens restart to read saved projection vectors.  Not a problem per se but might be better to read this while we have the restart already open so that the IO code is more compact.  This may involve moving more leslib stuff forward in the code&lt;br /&gt;
&lt;br /&gt;
    4) KEJ is still trying to sort out the roles of {query,init}phmpiio.  &lt;br /&gt;
         a) query is called before file is read the first time (same file read again can get by without it  e.g., readlesprojection reads restart a second time)&lt;br /&gt;
         b) init is called for both reads and writes of syncio files&lt;br /&gt;
&lt;br /&gt;
         preliminary design plan&lt;br /&gt;
         i) use setIOparam() to count syncio files.  If count=0 then assume posix.  use the count as a switch for file format everywhere (can be replaced later by agreed upon flag for file format...candidates: iotype= binary-posix, binary-mpiio instead of binary (not sure we want to preserve ascii unless it easy to do)&lt;br /&gt;
        ii) push all init stuff  into openfile so that there are only 6 functions that any users sees in phastaIO for either syncio or posix&lt;br /&gt;
        openfile, closefile, {read,write}X{header,datablock}&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=232</id>
		<title>SpaceClaim</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=232"/>
				<updated>2012-08-01T18:09:24Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Software]]&lt;br /&gt;
== Enabling mouse view controls ==&lt;br /&gt;
Button in top left -&amp;gt; SpaceClaim Options (bottom right)&lt;br /&gt;
&lt;br /&gt;
[[File:SpaceClaim0.PNG|border|300px]]&lt;br /&gt;
&lt;br /&gt;
'Navigation' -&amp;gt; Zoom -&amp;gt; Always&lt;br /&gt;
&lt;br /&gt;
[[File:SpaceClaim.PNG|border|300px]]&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=231</id>
		<title>SpaceClaim</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=231"/>
				<updated>2012-08-01T18:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: /* Enabling mouse view controls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enabling mouse view controls ==&lt;br /&gt;
Button in top left -&amp;gt; SpaceClaim Options (bottom right)&lt;br /&gt;
&lt;br /&gt;
[[File:SpaceClaim0.PNG|border|300px]]&lt;br /&gt;
&lt;br /&gt;
'Navigation' -&amp;gt; Zoom -&amp;gt; Always&lt;br /&gt;
&lt;br /&gt;
[[File:SpaceClaim.PNG|border|300px]]&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=File:SpaceClaim.PNG&amp;diff=230</id>
		<title>File:SpaceClaim.PNG</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=File:SpaceClaim.PNG&amp;diff=230"/>
				<updated>2012-08-01T18:05:21Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: SpaceClaim options menu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;SpaceClaim options menu&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=File:SpaceClaim0.PNG&amp;diff=229</id>
		<title>File:SpaceClaim0.PNG</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=File:SpaceClaim0.PNG&amp;diff=229"/>
				<updated>2012-08-01T18:04:29Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: space claim menu button&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;space claim menu button&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	<entry>
		<id>https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=228</id>
		<title>SpaceClaim</title>
		<link rel="alternate" type="text/html" href="https://fluid.colorado.edu/wiki/index.php?title=SpaceClaim&amp;diff=228"/>
				<updated>2012-08-01T18:03:57Z</updated>
		
		<summary type="html">&lt;p&gt;Cwsmith: Created page with &amp;quot;== Enabling mouse view controls == button in top left -&amp;gt; SpaceClaim Options -&amp;gt; Navigation (on left side) -&amp;gt; Zoom -&amp;gt; Always&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enabling mouse view controls ==&lt;br /&gt;
button in top left -&amp;gt; SpaceClaim Options -&amp;gt; Navigation (on left side) -&amp;gt; Zoom -&amp;gt; Always&lt;/div&gt;</summary>
		<author><name>Cwsmith</name></author>	</entry>

	</feed>