*.bin filter=lfs diff=lfs merge=lfs -text
*.f3grid filter=lfs diff=lfs merge=lfs -text
*.fem filter=lfs diff=lfs merge=lfs -text
*.inp filter=lfs diff=lfs merge=lfs -text
*.med filter=lfs diff=lfs merge=lfs -text
*.msh filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.ply filter=lfs diff=lfs merge=lfs -text
*.vtk filter=lfs diff=lfs merge=lfs -text
*.vtu filter=lfs diff=lfs merge=lfs -text
*.ugrid filter=lfs diff=lfs merge=lfs -text
*.mesh filter=lfs diff=lfs merge=lfs -text
*.meshb filter=lfs diff=lfs merge=lfs -text
*.tec filter=lfs diff=lfs merge=lfs -text
*.su2 filter=lfs diff=lfs merge=lfs -text
*.ele filter=lfs diff=lfs merge=lfs -text
*.node filter=lfs diff=lfs merge=lfs -text
*.vol filter=lfs diff=lfs merge=lfs -text
*.e filter=lfs diff=lfs merge=lfs -text
*.exo filter=lfs diff=lfs merge=lfs -text
*.cgns filter=lfs diff=lfs merge=lfs -text
*.ex2 filter=lfs diff=lfs merge=lfs -text
*.pcd filter=lfs diff=lfs merge=lfs -text

# Viewer sample meshes and test fixtures are tiny, generated, human-readable
# text files committed for the browser demo. Git LFS would be pure overhead
# here, and worse: a CI checkout without LFS would hand the viewer a 130-byte
# pointer file instead of a mesh.
src/viewer/public/samples/** -filter -diff -merge text

# Generated by `cd src/viewer && npm run build:embed`; see src/viewer/README.md.
src/python/meshioplusplus/_viewer_assets/viewer.html -diff linguist-generated=true

# Notebooks are committed with their executed outputs; exclude them from the
# GitHub language-percentage bar (their JSON+embedded-output bulk otherwise
# drowns out the actual C++/Python source in the repo's Languages graph).
example/python/*.ipynb linguist-generated=true
example/cpp/*.ipynb linguist-generated=true
example/julia/*.ipynb linguist-generated=true
example/r/*.ipynb linguist-generated=true
benchmark/*.ipynb linguist-generated=true

# Icon/logo build tooling: TikZ sources plus their compiled SVG/PNG/PDF
# assets. Not representative of the project's own C++/Python source and the
# TikZ .tex files otherwise show up as a "TeX" sliver in the Languages bar.
doc/icons/** linguist-vendored
doc/logo/** linguist-vendored

# Vendored gidpost 2.14 (CIMNE, BSD-2-Clause-Views) -- third-party C source,
# not representative of this project's own C++/Python source. See
# src/cpp/third_party/gidpost/README.meshioplusplus.md for what was vendored
# and why.
src/cpp/third_party/gidpost/** linguist-vendored

# GiD postprocess test fixtures are tiny, hand-authored, human-readable text
# committed to pin real-world variants our own writer cannot produce. Without
# this opt-out they would be SPLIT across two storage mechanisms -- `*.msh` and
# `*.bin` match the LFS globs above while `.post.res`/`.post.h5` do not -- so a
# CI checkout without LFS would get a 130-byte pointer for the geometry file
# and a real results sibling, failing in a thoroughly confusing way.
tests/python/meshes/gid/** -filter -diff -merge text

# Generated documentation diagrams: the SVG is emitted by doc/diagrams/gen_diagrams.py
# (collapse it in diffs); the generator itself is this project's own Python, so it is
# deliberately NOT marked vendored the way the TikZ sources under doc/icons and doc/logo are.
doc/public/diagrams/*.svg linguist-generated=true

# LS-DYNA fixtures are tiny, hand-checked text decks; LFS would only add a
# pointer-file failure mode to a checkout without it.
tests/python/meshes/lsdyna/** -filter -diff -merge text

# CalculiX .frd fixtures are ccx output (or hand-written text), a few KB each; LFS would
# only add a pointer-file failure mode to a checkout without it.
tests/python/meshes/frd/** -filter -diff -merge text
# ...except the binary-layout (*NODE OUTPUT/*ELEMENT OUTPUT) fixtures: real binary
# bytes with embedded 0x0A, which a text checkout (CRLF-normalizing Windows clone)
# would silently corrupt.
tests/python/meshes/frd/*_bin.frd binary

# I-DEAS universal files (gmsh / pyuff output or hand-written text) and the gmsh .msh
# twins they are checked against; small text, kept out of LFS like the ones above.
tests/python/meshes/unv/** -filter -diff -merge text
# ...except the 58b fixture: raw little-endian doubles after its ASCII header.
tests/python/meshes/unv/*_58b.uff binary
# Code_Aster .mail fixtures: small text written by tools/gen_code_aster_fixtures.py,
# kept out of LFS like the ones above.
tests/python/meshes/code_aster/** -filter -diff -merge text
# MSC Nastran HDF5 result files (real MSC Nastran 2020 output, binary HDF5): LFS like
# the other binary reference fixtures. Only this directory, so no other `.h5` is caught.
tests/python/meshes/nastran_h5/*.h5 filter=lfs diff=lfs merge=lfs -text
# Nastran OP2 result files (pyNastran's test models, BSD 3-Clause, see that directory's
# README.md): LFS like the other binary reference fixtures; the decks beside them stay
# small text and pyNastran's frozen reading a plain binary.
tests/python/meshes/nastran_op2/*.op2 filter=lfs diff=lfs merge=lfs -text
tests/python/meshes/nastran_op2/*.bdf -filter -diff -merge text
tests/python/meshes/nastran_op2/*.npz binary
# LS-DYNA d3plot families (lasso-python's test data, BSD 3-Clause, and the families
# tools/gen_d3plot_reference.py writes with it; see that directory's README.md): binary
# files without an extension, in LFS; lasso-python's frozen reading a plain binary.
tests/python/meshes/lsdyna_d3plot/**/d3plot* filter=lfs diff=lfs merge=lfs -text
tests/python/meshes/lsdyna_d3plot/*.npz binary
# COMSOL fixtures written by tools/gen_comsol_fixtures.py: small text kept out of LFS
# like the ones above, and one small binary .mphbin twin.
tests/python/meshes/comsol/** -filter -diff -merge text
tests/python/meshes/comsol/*.mphbin binary
# Elmer mesh directories written by tools/gen_elmer_fixtures.py: small text, kept
# out of LFS like the ones above.
tests/python/meshes/elmer/** -filter -diff -merge text
# FEBio .feb fixtures written by tools/gen_febio_fixtures.py: small XML text, kept
# out of LFS like the ones above.
tests/python/meshes/febio/*.feb -filter -diff -merge text
# FEBio plot files FEBio 4.12 wrote for the models next to them (see
# tools/gen_febio_fixtures.py): a few KB each, binary, kept out of LFS like the
# .mphbin twin above.
tests/python/meshes/febio/xplt/*.feb -filter -diff -merge text
tests/python/meshes/febio/xplt/*.xplt binary
# Ansys .cdb decks from mapdl-archive (see that directory's README.md): small text kept
# out of LFS like the ones above, and byte-for-byte (-text), since two carry the CRLF
# line endings their writers produced and the reader must handle.
tests/python/meshes/ansys/*.cdb -filter -diff -merge -text
# Ansys MAPDL result files from pymapdl-reader (see that directory's README.md):
# binary, a few hundred KB each, in LFS like the other binary reference fixtures.
tests/python/meshes/ansys/rst/*.rst filter=lfs diff=lfs merge=lfs -text
tests/python/meshes/ansys/rst/*.rth filter=lfs diff=lfs merge=lfs -text
tests/python/meshes/ansys/rst/dist_static/*.rst filter=lfs diff=lfs merge=lfs -text
# Patran 2 neutral fixtures written by tools/gen_patran_fixtures.py: small text kept
# out of LFS like the ones above.
tests/python/meshes/patran/** -filter -diff -merge text
# MFEM sample meshes (BSD-3-Clause, see that directory's README.md) and the grid
# functions and reference tools/gen_mfem_fixtures.py writes with PyMFEM: small, kept
# out of LFS like the ones above.
tests/python/meshes/mfem/** -filter -diff -merge text
tests/python/meshes/mfem/*.npz binary
# Femap neutral files from FrontISTR, ems_file_format_converter and femap_neutral_parser
# (MIT, see that directory's README.md), assembled by tools/gen_femap_fixtures.py: small
# text kept out of LFS like the ones above.
tests/python/meshes/femap/** -filter -diff -merge text
# libMesh .xda/.xdr fixtures written by tools/gen_libmesh_fixtures.py: small, kept out
# of LFS like the ones above; the .xdr twins are big-endian XDR bytes.
tests/python/meshes/libmesh/** -filter -diff -merge text
tests/python/meshes/libmesh/*.xdr binary
# Z88 decks written by tools/gen_z88_fixtures.py and the Z88R V15 output for the
# cantilever (see that directory's README.md): small text kept out of LFS.
tests/python/meshes/z88/** -filter -diff -merge text
# Abaqus .fil results: the ASCII fixtures (tools/gen_abaqus_fil_fixtures.py and
# pybaqus's real Abaqus 2023 output, MIT, see README.md) as text, the binary twins as
# bytes, all kept out of LFS.
tests/python/meshes/abaqus_fil/** -filter -diff -merge text
tests/python/meshes/abaqus_fil/model_le.fil binary
tests/python/meshes/abaqus_fil/model_be.fil binary
# OpenRadioss starter decks written by tools/gen_radioss_fixtures.py: small text kept
# out of LFS like the ones above.
tests/python/meshes/radioss/** -filter -diff -merge text
# MSC Marc decks and a formatted post file written by tools/gen_marc_fixtures.py:
# small text kept out of LFS, like the other generated deck fixtures.
tests/python/meshes/marc/** -filter -diff -merge text
