Module traits

Module traits 

Source
Expand description

Core traits for grid1d.

This module contains all the fundamental trait definitions used throughout the grid1d library. These traits define the core abstractions for domains, coordinates, interval partitions, and point transformations.

§Trait Overview

TraitPurposeKey Methods
HasDomain1DDomain accessdomain()
HasCoords1DCoordinate accesscoords(), num_points()
BuildIntervalInPartitionSub-interval construction rulesbuild_first_interval(), build_last_interval()
IntervalPartitionMain partition interfaceinterval(), find_interval_id_of_point(), refine()
TransformedPoints1DPoint transformationspoints_param_interval(), points_phys_interval()

§Trait Hierarchy

IntervalPartition
    ├── HasCoords1D  (coordinate access)
    └── HasDomain1D  (domain access)
            └── Domain1D: BuildIntervalInPartition

BuildIntervalInPartition
    └── IntervalFinitePositiveLengthTrait

TransformedPoints1D (independent)

§Usage

Most users will interact with these traits through the concrete types like Grid1D, Grid1DUniform, and Grid1DNonUniform. However, understanding these traits is essential for writing generic code that works with any grid type.

§Example: Generic Function Over Any Partition

use grid1d::{IntervalPartition, HasCoords1D, HasDomain1D, scalars::IntervalId};
use grid1d::intervals::IntervalTrait;

fn analyze_partition<P>(partition: &P) -> (usize, usize)
where
    P: IntervalPartition,
{
    let num_points = *partition.num_points().as_ref();
    let num_intervals = *partition.num_intervals().as_ref();
    (num_points, num_intervals)
}

Traits§

BuildIntervalInPartition
A trait for building sub-intervals within a partition based on the domain type.
HasCoords1D
A trait for types that contain one-dimensional coordinate data.
HasDomain1D
A trait for types that have an associated one-dimensional domain.
IntervalPartition
A trait for modeling a partition of an interval as a set of adjacent non-overlapping intervals.
TransformedPoints1D
A trait for point transformations between parametric and physical domains.

Type Aliases§

TransformedPoints1DArc
Type alias for TransformedPoints1D with Arc coordinate storage for both domains.
TransformedPoints1DBorrowed
Type alias for TransformedPoints1D with borrowed coordinate storage for both domains.
TransformedPoints1DOwned
Type alias for TransformedPoints1D with owned coordinate storage for both domains.
TransformedPoints1DRc
Type alias for TransformedPoints1D with Rc coordinate storage for both domains.