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
| Trait | Purpose | Key Methods |
|---|---|---|
HasDomain1D | Domain access | domain() |
HasCoords1D | Coordinate access | coords(), num_points() |
BuildIntervalInPartition | Sub-interval construction rules | build_first_interval(), build_last_interval() |
IntervalPartition | Main partition interface | interval(), find_interval_id_of_point(), refine() |
TransformedPoints1D | Point transformations | points_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§
- Build
Interval InPartition - 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.
- Interval
Partition - A trait for modeling a partition of an interval as a set of adjacent non-overlapping intervals.
- Transformed
Points1D - A trait for point transformations between parametric and physical domains.
Type Aliases§
- Transformed
Points1D Arc - Type alias for
TransformedPoints1Dwith Arc coordinate storage for both domains. - Transformed
Points1D Borrowed - Type alias for
TransformedPoints1Dwith borrowed coordinate storage for both domains. - Transformed
Points1D Owned - Type alias for
TransformedPoints1Dwith owned coordinate storage for both domains. - Transformed
Points1D Rc - Type alias for
TransformedPoints1Dwith Rc coordinate storage for both domains.