Package pulse.problem.schemes
Class ImplicitScheme
-
- All Implemented Interfaces:
Serializable,Descriptive,Reflexive
- Direct Known Subclasses:
CoupledImplicitScheme,ImplicitDiathermicSolver,ImplicitLinearisedSolver,ImplicitNonlinearSolver,ImplicitTranslucentSolver,ImplicitTwoTemperatureSolver,MixedScheme
public abstract class ImplicitScheme extends OneDimensionalScheme
An abstract implicit finite-difference scheme for solving one-dimensional heat conduction problems.- See Also:
ClassicalProblem,NonlinearProblem, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ImplicitScheme()Constructs a default fully-implicit scheme using the default values ofGRID_DENSITYandTAU_FACTOR.ImplicitScheme(NumericProperty N, NumericProperty timeFactor)Constructs a fully-implicit scheme on a one-dimensional grid that is specified by the valuesNandtimeFactor.ImplicitScheme(NumericProperty N, NumericProperty timeFactor, NumericProperty timeLimit)Constructs a fully-implicit scheme on a one-dimensional grid that is specified by the valuesNandtimeFactor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract doubleevalRightBoundary(double alphaN, double betaN)abstract doublefirstBeta()TridiagonalMatrixAlgorithmgetTridiagonalMatrixAlgorithm()voidleftBoundary(int m)protected voidprepare(Problem problem)Contains preparatory steps to ensure smooth running of the solver.This includes creating aDiscretePulseobject and adjusting the grid of this scheme to match theDiscretePulsecreated for thisproblemFinally, a heating curve is cleared from the previously calculated values.voidsetTridiagonalMatrixAlgorithm(TridiagonalMatrixAlgorithm tridiagonal)voidtimeStep(int m)Calculates the solution at the boundaries using the boundary conditions specific to the problem statement and runs the tridiagonal matrix algorithm to evaluate solution at the intermediate grid points.StringtoString()Prints out the description of this problem type.-
Methods inherited from class pulse.problem.schemes.OneDimensionalScheme
clearArrays, finaliseStep, getCurrentSolution, getPreviousSolution, setSolutionAt, signal
-
Methods inherited from class pulse.problem.schemes.DifferenceScheme
areDetailsHidden, copy, copyFrom, domain, getCurrentPulseValue, getDiscretePulse, getGrid, getTimeInterval, getTimeLimit, initFrom, listedKeywords, normalOperation, prepareStep, pulse, runTimeSequence, runTimeSequence, scaleSolution, set, setDetailsHidden, setGrid, setTimeInterval, setTimeLimit
-
Methods inherited from class pulse.util.PropertyHolder
addListener, data, describe, firePropertyChanged, getDescriptor, getListeners, getPrefix, ignoreSiblings, initListeners, isListedNumericType, isListedParameter, listedTypes, numericData, parameterListChanged, removeListeners, setPrefix, updateProperties, updateProperty
-
Methods inherited from class pulse.util.Accessible
accessibleChildren, genericProperties, genericProperty, numericProperties, numericProperty, property, update, update
-
Methods inherited from class pulse.util.UpwardsNavigable
addHierarchyListener, getHierarchyListeners, getParent, identify, removeHierarchyListener, removeHierarchyListeners, setParent, specificAncestor, tellParent
-
-
-
-
Constructor Detail
-
ImplicitScheme
public ImplicitScheme()
Constructs a default fully-implicit scheme using the default values ofGRID_DENSITYandTAU_FACTOR.
-
ImplicitScheme
public ImplicitScheme(NumericProperty N, NumericProperty timeFactor)
Constructs a fully-implicit scheme on a one-dimensional grid that is specified by the valuesNandtimeFactor.- Parameters:
N- theNumericPropertywith the typeGRID_DENSITYtimeFactor- theNumericPropertywith the typeTAU_FACTOR- See Also:
DifferenceScheme
-
ImplicitScheme
public ImplicitScheme(NumericProperty N, NumericProperty timeFactor, NumericProperty timeLimit)
Constructs a fully-implicit scheme on a one-dimensional grid that is specified by the values
NandtimeFactor. Sets the time limit of this scheme totimeLimit- Parameters:
N- theNumericPropertywith the typeGRID_DENSITYtimeFactor- theNumericPropertywith the typeTAU_FACTORtimeLimit- theNumericPropertywith the typeTIME_LIMIT- See Also:
DifferenceScheme
-
-
Method Detail
-
prepare
protected void prepare(Problem problem) throws SolverException
Description copied from class:DifferenceSchemeContains preparatory steps to ensure smooth running of the solver.This includes creating a
DiscretePulseobject and adjusting the grid of this scheme to match theDiscretePulsecreated for thisproblemFinally, a heating curve is cleared from the previously calculated values.All subclasses of
DifferenceSchemeshould override and explicitly call this superclass method where appropriate.- Overrides:
preparein classDifferenceScheme- Parameters:
problem- the heat problem to be solved- Throws:
SolverException
-
timeStep
public void timeStep(int m) throws SolverExceptionCalculates the solution at the boundaries using the boundary conditions specific to the problem statement and runs the tridiagonal matrix algorithm to evaluate solution at the intermediate grid points.- Specified by:
timeStepin classDifferenceScheme- Parameters:
m- the time step- Throws:
SolverException- if the calculation failed
-
leftBoundary
public void leftBoundary(int m)
-
evalRightBoundary
public abstract double evalRightBoundary(double alphaN, double betaN)
-
firstBeta
public abstract double firstBeta()
-
toString
public String toString()
Prints out the description of this problem type.- Overrides:
toStringin classDifferenceScheme- Returns:
- a verbose description of the problem.
-
getTridiagonalMatrixAlgorithm
public TridiagonalMatrixAlgorithm getTridiagonalMatrixAlgorithm()
-
setTridiagonalMatrixAlgorithm
public void setTridiagonalMatrixAlgorithm(TridiagonalMatrixAlgorithm tridiagonal)
-
-