Facies Base
Base module for including facies.
file:test/Components/FaciesBaseSpec.jl
module FaciesBaseSpec
using Test
using CarboKitten.Components.Common
using CarboKitten.Components.FaciesBase: Facies, Input, n_facies
@testset "Components/FaciesBase" begin
let input = Input(facies=fill(Facies(), 23))
@test n_facies(input) == 23
end
end
endfile:src/Components/FaciesBase.jl
@compose module FaciesBase
using ..Common
using HDF5
export n_facies
@kwdef struct Facies <: AbstractFacies
name::Union{String,Nothing} = nothing
end
@kwdef struct Input <: AbstractInput
facies::Vector{Facies} = []
end
n_facies(input::AbstractInput) = length(input.facies)
function write_header(input::AbstractInput, output::AbstractOutput)
set_attribute(output, "n_facies", n_facies(input))
for (i, f) in enumerate(input.facies)
if f.name !== nothing
set_attribute(output, "facies$(i)/name", f.name)
end
end
end
end