Documentation ¶
Index ¶
- func ExportPathlinesGob(fp string, pl [][]Particle) error
- func ExportVTKpathlines(filepath string, pl [][][]float64, vertExag float64)
- func LoadPathlinesGOB(fp string) ([][]Particle, int64, error)
- func SaveGeojson(fp string, apl [][]Particle, epl int)
- type Domain
- func (d *Domain) ExportGridNetworkGob(fp string, gd *grid.Definition, pl [][]Particle) error
- func (d *Domain) ExportMeshNetworkGob(fp string, pl [][]Particle, nv int) error
- func (d *Domain) ExportVTK(filepath string, vertExag float64)
- func (d *Domain) MakePollock(dt float64)
- func (d *Domain) MakeVector()
- func (d *Domain) MakeWaterloo(pt ParticleTracker)
- func (d *Domain) New(prsms map[int]*Prism, conn map[int][]int, pflxs map[int][]float64, ...)
- func (d *Domain) Nprism() int
- func (d *Domain) ParticleToPrismIDs(p *Particle, pidFrom int) []int
- func (d *Domain) Print()
- func (d *Domain) PrintToCSV(fp string)
- func (d *Domain) Prism(pid int) *Prism
- func (d *Domain) PrismTopsToSaturated()
- func (d *Domain) Prisms() map[int]*Prism
- func (d *Domain) ResetTops(v float64)
- func (d *Domain) ReverseVectorField()
- func (d *Domain) TrackCentroidalParticles(excl map[int]bool) ([][]Particle, int, []int)
- func (d *Domain) TrackCentroidalParticlesReverse() ([][]Particle, int, []int)
- func (d *Domain) TrackParticles(p Particles) ([][]Particle, int)
- type EulerSpace
- type EulerTime
- type Particle
- type ParticleTracker
- type Particles
- type PollockMethod
- func (pm *PollockMethod) Local(p *Particle) (float64, bool)
- func (pm *PollockMethod) New(q *Prism, zwl complex128, Qx0, Qx1, Qy0, Qy1, Qz0, Qz1, dt float64)
- func (pm *PollockMethod) PointVelocity(p *Particle, d1 *Prism, d2 float64) (float64, float64, float64)
- func (pm *PollockMethod) ReverseVectorField()
- func (pm *PollockMethod) TestTracktoExit(p *Particle, q *Prism, vf VelocityFielder) []Particle
- type Prism
- func (q *Prism) Centroid() (x, y, z float64)
- func (q *Prism) CentroidParticle(i int) *Particle
- func (q *Prism) CentroidXY() (x, y float64)
- func (q *Prism) Contains(p *Particle) bool
- func (q *Prism) ContainsXY(x, y float64) bool
- func (q *Prism) ContainsXYZ(x, y, z float64) bool
- func (q *Prism) New(z []complex128, top, bot, bn, tn, porosity float64)
- func (q *Prism) Saturation() float64
- type RungeKutta
- type RungeKuttaAdaptive
- type VectorMethSoln
- type VelocityFielder
- type Vert
- type WatMethSoln
- func (w *WatMethSoln) ExportComplexPotentialField(q *Prism, pointDensity int)
- func (w *WatMethSoln) Local(p *Particle) (float64, bool)
- func (w *WatMethSoln) New(prismID int, p *Prism, Qj []float64, zw complex128, Qtop, Qbot, Qwell float64, ...)
- func (w *WatMethSoln) PointVelocity(p *Particle, q *Prism, dbdt float64) (float64, float64, float64)
- func (w *WatMethSoln) ReverseVectorField()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExportPathlinesGob ¶
func ExportVTKpathlines ¶
ExportVTKpathlines saves particle tracking results as a *.vtk file for visualization.
func SaveGeojson ¶
Types ¶
type Domain ¶
type Domain struct { VF map[int]VelocityFielder // prism velocity field Nly int // (optional) number of layers Minthick float64 // "pinchout" thickness // contains filtered or unexported fields }
Domain is a set of cells that constitute a model
func ReadFLX ¶
func ReadFLX(hstratFP, flxFP string) (Domain, *grid.Definition)
currently needs an accompanying .gdef; also not reading wells
func ReadHSTRAT ¶
currently reads only 1 state.
func (*Domain) ExportGridNetworkGob ¶
func (*Domain) ExportMeshNetworkGob ¶
func (*Domain) MakePollock ¶
MakePollock creates velocity field using the Pollock (MODPATH) Method
func (*Domain) MakeVector ¶
func (d *Domain) MakeVector()
MakeVector creates velocity field based on a uniform prism velocity vector
func (*Domain) MakeWaterloo ¶
func (d *Domain) MakeWaterloo(pt ParticleTracker)
MakeWaterloo creates velocity field using the Waterloo Method
func (*Domain) New ¶
func (d *Domain) New(prsms map[int]*Prism, conn map[int][]int, pflxs map[int][]float64, qwell map[int]float64)
New Domain constructor
func (*Domain) ParticleToPrismIDs ¶
ParticleToPrismIDs returns a set of prisms for which a particle is located position index: left-up-right-down-bottom-top
func (*Domain) PrintToCSV ¶
func (*Domain) PrismTopsToSaturated ¶
func (d *Domain) PrismTopsToSaturated()
func (*Domain) ReverseVectorField ¶
func (d *Domain) ReverseVectorField()
func (*Domain) TrackCentroidalParticles ¶
Track a collection of particles through the centroid of at least 1 model cell
func (*Domain) TrackCentroidalParticlesReverse ¶
Track a collection of particles through the centroid of at least 1 model cell
type EulerSpace ¶
type EulerSpace struct{ Ds float64 }
EulerSpace constant space step Euler particle pathline integration scheme
func (*EulerSpace) TestTracktoExit ¶
func (es *EulerSpace) TestTracktoExit(p *Particle, q *Prism, w VelocityFielder) []Particle
testTrack track particle to the next space step
type EulerTime ¶
type EulerTime struct{ Dt float64 }
EulerTime constant time step Euler particle pathline integration scheme
func (*EulerTime) TestTracktoExit ¶
func (et *EulerTime) TestTracktoExit(p *Particle, q *Prism, w VelocityFielder) []Particle
testTrack track particle to the next time step
type Particle ¶
Particle struct
func (*Particle) PrintState ¶
PrintState returns the particles current state in CSV format
func (*Particle) ResetState ¶
type ParticleTracker ¶
type ParticleTracker interface {
// contains filtered or unexported methods
}
ParticleTracker interface to particle tracking methods
type PollockMethod ¶
type PollockMethod struct {
// contains filtered or unexported fields
}
PollockMethod is the solution to the pollock method Pollock, D.W., 1989, Documentation of a computer program to compute and display pathlines using results from the U.S. Geological Survey modular three-dimensional finite-difference ground-water flow model: U.S. Geological Survey Open-File Report 89–381. Pollock, D.W., 2016, User guide for MODPATH Version 7—A particle-tracking model for MODFLOW: U.S. Geological Survey Open-File Report 2016–1086, 35 p., http://dx.doi.org/10.3133/ofr20161086.
func (*PollockMethod) Local ¶
func (pm *PollockMethod) Local(p *Particle) (float64, bool)
Local returns whether the point is solvable within the solution space
func (*PollockMethod) New ¶
func (pm *PollockMethod) New(q *Prism, zwl complex128, Qx0, Qx1, Qy0, Qy1, Qz0, Qz1, dt float64)
New PollockMethod constructor
func (*PollockMethod) PointVelocity ¶
func (pm *PollockMethod) PointVelocity(p *Particle, d1 *Prism, d2 float64) (float64, float64, float64)
PointVelocity returns the velocity vector for a given (x,y,z) coordinate. (must only be used with rectilinear cells)
func (*PollockMethod) ReverseVectorField ¶
func (pm *PollockMethod) ReverseVectorField()
func (*PollockMethod) TestTracktoExit ¶
func (pm *PollockMethod) TestTracktoExit(p *Particle, q *Prism, vf VelocityFielder) []Particle
type Prism ¶
type Prism struct { Z []complex128 Top, Bot, Area, Bn, Por, Tn float64 }
Prism struct represents a singular model prism
func (*Prism) CentroidParticle ¶
CentroidParticle returns the coordinates of the prism centroid
func (*Prism) CentroidXY ¶
CentroidXY returns the coordinates of the prism centroid
func (*Prism) Contains ¶
Contains returns true if the given particle is contained by the prism bounds
func (*Prism) ContainsXY ¶
ContainsXY returns true if the given (x,y) coordinates are contained by the prism planform bounds
func (*Prism) ContainsXYZ ¶
ContainsXYZ returns true if the given (x,y) coordinates are contained by the prism planform bounds
func (*Prism) New ¶
func (q *Prism) New(z []complex128, top, bot, bn, tn, porosity float64)
New prism constructor
func (*Prism) Saturation ¶
type RungeKutta ¶
type RungeKutta struct{ Dt float64 }
RungeKutta particle pathline integration scheme
func (*RungeKutta) TestTracktoExit ¶
func (rk *RungeKutta) TestTracktoExit(p *Particle, q *Prism, w VelocityFielder) []Particle
testTracktoExit track particle to the next point
type RungeKuttaAdaptive ¶
type RungeKuttaAdaptive struct{ Ds, Dt float64 }
RungeKuttaAdaptive particle pathline integration scheme
func (*RungeKuttaAdaptive) TestTracktoExit ¶
func (rk *RungeKuttaAdaptive) TestTracktoExit(p *Particle, q *Prism, w VelocityFielder) []Particle
testTracktoExit track particle to the next point
type VectorMethSoln ¶
type VectorMethSoln struct {
// contains filtered or unexported fields
}
VectorMethSoln uses a uniform vector within a prism
func (*VectorMethSoln) Local ¶
func (vm *VectorMethSoln) Local(p *Particle) (float64, bool)
Local returns whether the point is solvable within the solution space
func (*VectorMethSoln) New ¶
func (vm *VectorMethSoln) New(zc complex128, q []float64, por, r float64)
func (*VectorMethSoln) PointVelocity ¶
func (vm *VectorMethSoln) PointVelocity(d1 *Particle, d2 *Prism, d3 float64) (float64, float64, float64)
PointVelocity returns the velocity vector for a given (x,y,z) coordinate
func (*VectorMethSoln) ReverseVectorField ¶
func (vm *VectorMethSoln) ReverseVectorField()
type VelocityFielder ¶
type VelocityFielder interface { PointVelocity(p *Particle, q *Prism, v float64) (float64, float64, float64) Local(p *Particle) (float64, bool) ReverseVectorField() }
VelocityFielder interface for flux field scheme
type Vert ¶
type Vert struct {
X, Y, Z, T float64
VertID, PathID, PrsmID, CellID, Layer, Order, USid, DSid int
}
func LoadNetworkGob ¶
type WatMethSoln ¶
type WatMethSoln struct {
// contains filtered or unexported fields
}
WatMethSoln (The Waterloo Method Solution): is a struct that contains a grid cell's internal flow field Ramadhan, M., 2015, A Semi-Analytical Particle Tracking Algorithm for Arbitrary Unstructured Grids. Unpublished MASc. Thesis. University of Waterloo, Waterloo Ontario.
func (*WatMethSoln) ExportComplexPotentialField ¶
func (w *WatMethSoln) ExportComplexPotentialField(q *Prism, pointDensity int)
ExportComplexPotentialField creates a *.csv file containing the distribution of the resulting complex potential field for viewing
func (*WatMethSoln) Local ¶
func (w *WatMethSoln) Local(p *Particle) (float64, bool)
Local returns whether the point is solvable within the solution space
func (*WatMethSoln) New ¶
func (w *WatMethSoln) New(prismID int, p *Prism, Qj []float64, zw complex128, Qtop, Qbot, Qwell float64, m, n int, prnt bool)
New WatMethSoln constructor
func (*WatMethSoln) PointVelocity ¶
func (w *WatMethSoln) PointVelocity(p *Particle, q *Prism, dbdt float64) (float64, float64, float64)
PointVelocity returns the velocity vector for a given (x,y,z) coordinate. ** Set dbdt = 0. for steady-state cases
func (*WatMethSoln) ReverseVectorField ¶
func (w *WatMethSoln) ReverseVectorField()
Source Files ¶
- Euler.go
- PollockMethod-test.go
- PollockMethod.go
- RungeKutta.go
- TrackCentroidalParticles.go
- VectorFieldMethod.go
- WaterlooMethod.go
- WaterlooMethodSoln.go
- const.go
- domain.go
- euler-test.go
- feflow.go
- flx.go
- gob.go
- gobElemental.go
- gobNodal.go
- hgs.go
- misc.go
- modflow.go
- particle.go
- particleTracker.go
- prism.go
- prismflux.go
- rungeKutta-test.go
- track.go
- trackCentroid.go
- trackRecurse.go
- velocityFielder.go
- vtk.go