save_file_grid_vtk Subroutine

private subroutine save_file_grid_vtk(self, file_name, ascii, metrics)

Save mesh data into VTK file.

Arguments

Type IntentOptional AttributesName
class(block_object), intent(inout) :: self

Block.

character(len=*), intent(in) :: file_name

Output file name.

logical, intent(in), optional :: ascii

Ascii/binary output.

logical, intent(in), optional :: metrics

Save also metrics data.

Calls

proc~~save_file_grid_vtk~~CallsGraph proc~save_file_grid_vtk save_file_grid_vtk node node proc~save_file_grid_vtk->node
Help

Source Code


Source Code

   subroutine save_file_grid_vtk(self, file_name, ascii, metrics)
   !< Save mesh data into VTK file.
   class(block_object), intent(inout)        :: self      !< Block.
   character(*),        intent(in)           :: file_name !< Output file name.
   logical,             intent(in), optional :: ascii     !< Ascii/binary output.
   logical,             intent(in), optional :: metrics   !< Save also metrics data.
   logical                                   :: ascii_    !< Ascii/binary output.
   logical                                   :: metrics_  !< Save also metrics data.
   type(vtk_file)                            :: vtk       !< VTK file.

   ascii_   = .false. ; if (present(ascii  )) ascii_   = ascii
   metrics_ = .false. ; if (present(metrics)) metrics_ = metrics

   associate(node=>self%node, ni=>self%signature%ni, nj=>self%signature%nj, nk=>self%signature%nk, &
             nn=>self%nodes_number(with_ghosts=.false.))
      if (ascii_) then
         self%error%status = vtk%initialize(format='ascii',                                                    &
                                            filename=trim(adjustl(file_name)), mesh_topology='StructuredGrid', &
                                            nx1=0, nx2=ni, ny1=0, ny2=nj, nz1=0, nz2=nk)
      else
         self%error%status = vtk%initialize(format='raw',                                                      &
                                            filename=trim(adjustl(file_name)), mesh_topology='StructuredGrid', &
                                            nx1=0, nx2=ni, ny1=0, ny2=nj, nz1=0, nz2=nk)
      endif

      self%error%status = vtk%xml_writer%write_piece(nx1=0, nx2=ni, ny1=0, ny2=nj, nz1=0, nz2=nk)
      self%error%status = vtk%xml_writer%write_geo(n=nn, x=node(0:ni, 0:nj, 0:nk)%vertex%x, &
                                                         y=node(0:ni, 0:nj, 0:nk)%vertex%y, &
                                                         z=node(0:ni, 0:nj, 0:nk)%vertex%z)
      if (metrics_) then
         self%error%status = vtk%xml_writer%write_dataarray(location='cell', action='open')
         self%error%status = vtk%xml_writer%write_dataarray(data_name='volume', x=self%cell(1:ni, 1:nj, 1:nk)%volume, &
                                                            one_component=.true.)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='area_i', x=self%face_i(1:ni, 1:nj, 1:nk)%area, &
                                                            one_component=.true.)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='area_j', x=self%face_j(1:ni, 1:nj, 1:nk)%area, &
                                                            one_component=.true.)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='area_k', x=self%face_k(1:ni, 1:nj, 1:nk)%area, &
                                                            one_component=.true.)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='normals_i', x=self%face_i(1:ni, 1:nj, 1:nk)%normal%x, &
                                                                                   y=self%face_i(1:ni, 1:nj, 1:nk)%normal%y, &
                                                                                   z=self%face_i(1:ni, 1:nj, 1:nk)%normal%z)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='normals_j', x=self%face_j(1:ni, 1:nj, 1:nk)%normal%x, &
                                                                                   y=self%face_j(1:ni, 1:nj, 1:nk)%normal%y, &
                                                                                   z=self%face_j(1:ni, 1:nj, 1:nk)%normal%z)
         self%error%status = vtk%xml_writer%write_dataarray(data_name='normals_k', x=self%face_k(1:ni, 1:nj, 1:nk)%normal%x, &
                                                                                   y=self%face_k(1:ni, 1:nj, 1:nk)%normal%y, &
                                                                                   z=self%face_k(1:ni, 1:nj, 1:nk)%normal%z)
         self%error%status = vtk%xml_writer%write_dataarray(location='cell', action='close')
      endif
      self%error%status = vtk%xml_writer%write_piece()
      self%error%status = vtk%finalize()
   endassociate
   endsubroutine save_file_grid_vtk


adim_assign_adim allocate_blocks block_assign_block block_d_assign_block_d cell_assign_cell cells_number cells_number check cli_parse cli_parse cli_parse close compute_extents compute_faces_metrics compute_metrics compute_metrics compute_reference_values compute_space_operator compute_volumes correct_metrics cp create_linspace description description description description description description description description description destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy destroy err_assign_err face_assign_face file_assign_file free_assign_free grid_d_assign_grid_d initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize initialize_unix initialize_windows integrate interpolate_at_nodes iolength iolength iopos_block_nodes is_the_end load_file_grid load_file_name_from_file load_file_parameters load_from_file load_from_file load_from_file load_from_file load_from_file load_from_file load_from_file load_grid_dimensions_from_file load_input_files load_nodes_from_file load_nodes_from_file mkdir node_assign_node node_to_center nodes_number nodes_number nullify_normals open os_assign_os parse_command_line_interface progress rm save_file_grid save_file_grid save_file_grid_tec save_file_grid_vtk save_file_name_into_file save_file_parameters save_grid_dimensions_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_into_file save_nodes_into_file save_nodes_into_file set_command_line_interface set_stop solver_assign_solver time_assign_time update