All Projects → szaghi → Vtkfortran

szaghi / Vtkfortran

pure Fortran VTK (XML) API

Programming Languages

fortran
972 projects

Labels

Projects that are alternatives of or similar to Vtkfortran

Designpatternslibrary
A comprehensive design patterns library implemented in C#, which covers various design patterns from the most commonly used ones to the lesser-known ones. Get familiar with and learn design patterns through moderately realistic examples.
Stars: ✭ 485 (+513.92%)
Mutual labels:  oop
Essa
Embeddable SCADA for Small Applications
Stars: ✭ 7 (-91.14%)
Mutual labels:  oop
A Tiny Js World
A tiny task for those who isn't familiar with OOP and JS OOP in particular yet
Stars: ✭ 50 (-36.71%)
Mutual labels:  oop
Python Programs
My collection of Python Programs
Stars: ✭ 518 (+555.7%)
Mutual labels:  oop
Go2o
基于DDD的o2o的业务模型及基础, 使用Golang+gRPC/Thrift实现
Stars: ✭ 700 (+786.08%)
Mutual labels:  oop
Wenoof
WENO interpolation Object Oriented Fortran library
Stars: ✭ 27 (-65.82%)
Mutual labels:  oop
Eo
EOLANG, the Programming Language
Stars: ✭ 442 (+459.49%)
Mutual labels:  oop
Designpatterns
DesignPatterns samples by csharp on dotnetcore 《大话设计模式》 中设计模式总结/C#(.NETCore)代码
Stars: ✭ 73 (-7.59%)
Mutual labels:  oop
Wp Controllers
The OOP Developer's best friend for working with objects in WordPress
Stars: ✭ 25 (-68.35%)
Mutual labels:  oop
Instantobjects
Pupular OOP-OPF Library for Delphi (from D2010 to 10.4 Sydney)
Stars: ✭ 50 (-36.71%)
Mutual labels:  oop
Java design patterns
Java 实现的面向对象设计模式示例, 创建者、抽象工厂、工厂方法、原型、单例、适配器、桥接、组合、装饰器、备忘录、观察者、状态、策略、模板方法、访问者
Stars: ✭ 547 (+592.41%)
Mutual labels:  oop
Cactoos
Object-Oriented Java primitives, as an alternative to Google Guava and Apache Commons
Stars: ✭ 615 (+678.48%)
Mutual labels:  oop
Solrb
Solr + Ruby + OOP + ❤️ = Solrb
Stars: ✭ 37 (-53.16%)
Mutual labels:  oop
Dynamix
🍥 A new take on polymorphism in C++
Stars: ✭ 504 (+537.97%)
Mutual labels:  oop
Danf
Danf is a Node.js full-stack isomorphic OOP framework allowing to code the same way on both client and server sides. It helps you to make deep architectures and handle asynchronous flows in order to help in producing scalable, maintainable, testable and performant applications.
Stars: ✭ 58 (-26.58%)
Mutual labels:  oop
Proxymanager
🎩✨🌈 OOP Proxy wrappers/utilities - generates and manages proxies of your objects
Stars: ✭ 4,556 (+5667.09%)
Mutual labels:  oop
Drl Theme Manager
Xcode File Template to generate theme manager for Swift 3+
Stars: ✭ 12 (-84.81%)
Mutual labels:  oop
Excel Io
Object-oriented java Excel library
Stars: ✭ 76 (-3.8%)
Mutual labels:  oop
Dicas De Programacao Em Ruby
Dicas para iniciantes de boas práticas de desenvolvimento de software em Ruby
Stars: ✭ 59 (-25.32%)
Mutual labels:  oop
Object Oriented Programming
🎓 BMSTU OOP course (2017)
Stars: ✭ 39 (-50.63%)
Mutual labels:  oop

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
  • [x] Structured Points;
  • [x] Structured Grid;
  • [x] Unstructured Grid;
  • [ ] Polydata;
  • [x] Rectilinear Grid;
  • [ ] Field;
XML standard
  • [ ] serial dataset:
    • [ ] Image Data;
    • [ ] Polydata;
    • [x] Rectilinear Grid;
    • [x] Structured Grid;
    • [x] Unstructured Grid;
  • [ ] parallel (partitioned) dataset:
    • [ ] Image Data;
    • [ ] Polydata;
    • [x] Rectilinear Grid;
    • [x] Structured Grid;
    • [x] Unstructured Grid;
  • [x] composite dataset:
    • [x] 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].