Coder Social home page Coder Social logo

vtkfortran's Introduction

VTKFortran GitHub tag

Join the chat at https://gitter.im/szaghi/VTKFortran

License License License License

Status Build Status Coverage Status

VTKFortran, pure Fortran VTK (XML) API

A KISS pure Fortran Library to parse and emit files conforming VTK (XML) standard

  • VTKFortran is a pure Fortran library to parse and emit VTK files, VTK standard;
  • VTKFortran is Fortran 2003+ standard compliant;
  • VTKFortran supports parallel architectures, it being threads-safe;
  • VTKFortran supports ascii, binary (Base64 encoding) and raw file formats;
  • VTKFortran is a Free, Open Source Project.

Issues

GitHub issues Ready in backlog In Progress Open bugs

Compiler Support

Compiler Compiler Compiler Compiler Compiler Compiler


Main features | Copyrights | Documentation | A Taste of VTKFortran


Main features

VTK features

Exporters

Legacy standard
  • Structured Points;
  • Structured Grid;
  • Unstructured Grid;
  • Polydata;
  • Rectilinear Grid;
  • Field;
XML standard
  • serial dataset:
    • Image Data;
    • Polydata;
    • Rectilinear Grid;
    • Structured Grid;
    • Unstructured Grid;
  • parallel (partitioned) dataset:
    • Image Data;
    • Polydata;
    • Rectilinear Grid;
    • Structured Grid;
    • Unstructured Grid;
  • composite dataset:
    • vtkMultiBlockDataSet.

Importers

The importers are under developing.

Parallel Support

VTKFortran can be safely used in parallel environments, handling multiple concurrent files: it is thread/processor-safe, meaning that it can be safely used into parallel architectures using OpenMP and/or MPI paradigms.

Copyrights

VTKFortran is an open source project, it is distributed under a multi-licensing system:

Anyone is interest to use, to develop or to contribute to VTKFortran is welcome, feel free to select the license that best matches your soul!

More details can be found on wiki.

Go to Top

Documentation

Besides this README file the VTKFortran documentation is contained into its own wiki. Detailed documentation of the API is contained into the GitHub Pages that can also be created locally by means of ford tool.

Go to Top

A taste of VTKFortran

Let us assume our aim being to save our pure Fortran data into a VTK structured grid file in binary XML form. This is simple as

use vtk_fortran, only : vtk_file

type(vtk_file)     :: a_vtk_file                             ! A VTK file.
integer, parameter :: nx1=0_I4P                              ! X lower bound extent.
integer, parameter :: nx2=9_I4P                              ! X upper bound extent.
integer, parameter :: ny1=0_I4P                              ! Y lower bound extent.
integer, parameter :: ny2=5_I4P                              ! Y upper bound extent.
integer, parameter :: nz1=0_I4P                              ! Z lower bound extent.
integer, parameter :: nz2=5_I4P                              ! Z upper bound extent.
integer, parameter :: nn=(nx2-nx1+1)*(ny2-ny1+1)*(nz2-nz1+1) ! Number of elements.
real               :: x(nx1:nx2,ny1:ny2,nz1:nz2)             ! X coordinates.
real               :: y(nx1:nx2,ny1:ny2,nz1:nz2)             ! Y coordinates.
real               :: z(nx1:nx2,ny1:ny2,nz1:nz2)             ! Z coordinates.
real               :: v(nx1:nx2,ny1:ny2,nz1:nz2)             ! Variable at coordinates.
integer            :: error                                  ! Error status.

! initialize the data...

error = a_vtk_file%initialize(format='binary', filename='XML_STRG-binary.vts', &
                              mesh_topology='StructuredGrid',                  &
                              nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)
error = a_vtk_file%xml_writer%write_piece(nx1=nx1, nx2=nx2, ny1=ny1, ny2=ny2, nz1=nz1, nz2=nz2)
error = a_vtk_file%xml_writer%write_geo(n=nn, x=x, y=y, z=z)
error = a_vtk_file%xml_writer%write_dataarray(location='node', action='open')
error = a_vtk_file%xml_writer%write_dataarray(data_name='float64_scalar', x=v, one_component=.true.)
error = a_vtk_file%xml_writer%write_dataarray(location='node', action='close')
error = a_vtk_file%xml_writer%write_piece()
error = a_vtk_file%finalize()

Note that all VTKFortran functions return an error code that can be used for sophisticated error trapping algorithms.

vtkfortran's People

Contributors

szaghi avatar femparadmin avatar gitter-badger avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.