Euler1D

package
v0.0.0-...-88f8085 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddAnalyticDWave

func AddAnalyticDWave(chart *chart2d.Chart2D, colorMap *utils2.ColorMap, X utils.Matrix, timeT float64)

func AddAnalyticSod

func AddAnalyticSod(chart *chart2d.Chart2D, colorMap *utils2.ColorMap, timeT float64) (iRho float64)

func DWaveCalc

func DWaveCalc(X utils.Matrix, timeT float64) (x, rho []float64)

Types

type BC_TYPE

type BC_TYPE uint
const (
	RIEMANN BC_TYPE = iota
	PERIODIC
)

type CaseType

type CaseType uint
const (
	SOD_TUBE CaseType = iota
	DENSITY_WAVE
	COLLISION
	FREESTREAM
)

type Euler

type Euler struct {
	// Input parameters
	CFL, FinalTime  float64
	El, El_S        *DG1D.Elements1D
	RHSOnce         sync.Once
	State           *FieldState
	Rho, RhoU, Ener utils.Matrix
	In, Out         *State

	Case CaseType

	FluxRanger    utils.R2
	FluxSubset    utils.Index
	LeftI, RightI utils.Matrix // Interpolating polynomials for left and right edges within solution points element
	// contains filtered or unexported fields
}

func NewEuler

func NewEuler(CFL, FinalTime, XMax float64, N, K int, model ModelType, Case CaseType) (c *Euler)

func (*Euler) AveFlux

func (c *Euler) AveFlux(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, vmapM, vmapP utils.Index) (fRho, fRhoU, fEner utils.Matrix)

func (*Euler) CalculateDT

func (c *Euler) CalculateDT(xmin, Time float64) (dt float64)

func (*Euler) CopyBoundary

func (c *Euler) CopyBoundary(U utils.Matrix)

func (*Euler) InitializeDWave

func (c *Euler) InitializeDWave()

func (*Euler) InitializeFS

func (c *Euler) InitializeFS()

func (*Euler) InitializeSOD

func (c *Euler) InitializeSOD()

func (*Euler) InterpolateBoundaries

func (c *Euler) InterpolateBoundaries(U utils.Matrix) (U2 utils.Matrix)

func (*Euler) LaxFlux

func (c *Euler) LaxFlux(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, vmapM, vmapP utils.Index) (fRho, fRhoU, fEner utils.Matrix)

func (*Euler) MapSolutionSubset

func (c *Euler) MapSolutionSubset()

func (*Euler) PeriodicBC_DFR

func (c *Euler) PeriodicBC_DFR(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, vmapI, vmapO utils.Index, dRhoF, dRhoUF, dEnerF *utils.Matrix)

func (*Euler) Plot

func (c *Euler) Plot(timeT float64, showGraph bool, graphDelay []time.Duration) (iRho float64)

func (*Euler) RHS_DFR

func (c *Euler) RHS_DFR(Rhop, RhoUp, Enerp *utils.Matrix) (rhsRho, rhsRhoU, rhsEner utils.Matrix)

func (*Euler) RHS_GK

func (c *Euler) RHS_GK(Rhop, RhoUp, Enerp *utils.Matrix) (rhsRho, rhsRhoU, rhsEner utils.Matrix)

func (*Euler) RiemannBC

func (c *Euler) RiemannBC(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, dRhoF, dRhoUF, dEnerF *utils.Matrix)

func (*Euler) RiemannBC_DFR

func (c *Euler) RiemannBC_DFR(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, dRhoF, dRhoUF, dEnerF *utils.Matrix)

func (*Euler) RoeFlux

func (c *Euler) RoeFlux(Rho, RhoU, Ener, RhoF, RhoUF, EnerF utils.Matrix, vmapM, vmapP utils.Index) (fRho, fRhoU, fEner utils.Matrix)

func (*Euler) Run

func (c *Euler) Run(showGraph bool, graphDelay ...time.Duration)

type FieldState

type FieldState struct {
	Gamma                    float64
	U, Q, Pres, CVel, LM, Ht utils.Matrix
	Temp                     utils.Matrix
}

func NewFieldState

func NewFieldState() (fs *FieldState)

func (*FieldState) Print

func (fs *FieldState) Print()

func (*FieldState) Update

func (fs *FieldState) Update(Rho, RhoU, Ener utils.Matrix, c *Euler) (RhoFull, RhoUFull, EnerFull, RhoF, RhoUF, EnerF utils.Matrix)

type ModelType

type ModelType uint
const (
	Galerkin_LF ModelType = iota
	DFR_LaxFriedrichs
	DFR_Roe
	DFR_Average
)

type State

type State struct {
	Gamma, Rho, RhoU, Ener float64
	RhoF, RhoUF, EnerF     float64
}

func NewState

func NewState(gamma, rho, rhoU, ener float64) (s *State)

func NewStateP

func NewStateP(gamma, rho, rhoU, p float64) *State

func (*State) Print

func (s *State) Print() (o string)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL