Package pulse.problem.schemes.solvers
Class ExplicitCoupledSolver
- java.lang.Object
-
- pulse.util.UpwardsNavigable
-
- pulse.util.Group
-
- pulse.util.Accessible
-
- pulse.util.PropertyHolder
-
- pulse.problem.schemes.DifferenceScheme
-
- pulse.problem.schemes.OneDimensionalScheme
-
- pulse.problem.schemes.ExplicitScheme
-
- pulse.problem.schemes.solvers.ExplicitCoupledSolver
-
- All Implemented Interfaces:
Serializable,Solver<ParticipatingMedium>,Descriptive,Reflexive
- Direct Known Subclasses:
ExplicitCoupledSolverNL
public abstract class ExplicitCoupledSolver extends ExplicitScheme implements Solver<ParticipatingMedium>
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ExplicitCoupledSolver()ExplicitCoupledSolver(NumericProperty N, NumericProperty timeFactor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Class<? extends Problem>[]domain()Retrieves all problem statements that can be solved with this implementation of the difference scheme.voidexplicitSolution()Uses the explicit finite-difference representation of the heat equation to calculate the grid-function everywhere except for the boundaries.voidfinaliseStep()Overwrites previously calculated temperature values with the calculations made at the current time stepRadiativeTransferCouplinggetCoupling()booleanisAutoUpdateFluxes()booleannormalOperation()doublephi(int i)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.voidsetAutoUpdateFluxes(boolean auto)voidsetCalculationStatus(RTECalculationStatus calculationStatus)voidsetCoupling(RadiativeTransferCoupling coupling)voidsolve(ParticipatingMedium problem)Calculates the solution of thetand stores it in the respectiveHeatingCurve.voidtimeStep(int m)StringtoString()Prints out the description of this problem type.-
Methods inherited from class pulse.problem.schemes.OneDimensionalScheme
clearArrays, getCurrentSolution, getPreviousSolution, setSolutionAt, signal
-
Methods inherited from class pulse.problem.schemes.DifferenceScheme
areDetailsHidden, copy, copyFrom, getCurrentPulseValue, getDiscretePulse, getGrid, getTimeInterval, getTimeLimit, initFrom, listedKeywords, 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
-
ExplicitCoupledSolver
public ExplicitCoupledSolver()
-
ExplicitCoupledSolver
public ExplicitCoupledSolver(NumericProperty N, NumericProperty timeFactor)
-
-
Method Detail
-
prepare
public 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 SolverException- Specified by:
timeStepin classDifferenceScheme- Throws:
SolverException
-
finaliseStep
public void finaliseStep() throws SolverExceptionDescription copied from class:OneDimensionalSchemeOverwrites previously calculated temperature values with the calculations made at the current time step- Overrides:
finaliseStepin classOneDimensionalScheme- Throws:
SolverException- if the calculation failed
-
solve
public void solve(ParticipatingMedium problem) throws SolverException
Description copied from interface:SolverCalculates the solution of thetand stores it in the respectiveHeatingCurve.- Specified by:
solvein interfaceSolver<ParticipatingMedium>- Parameters:
problem- - an accepted instance ofT- Throws:
SolverException
-
explicitSolution
public void explicitSolution()
Description copied from class:ExplicitSchemeUses the explicit finite-difference representation of the heat equation to calculate the grid-function everywhere except for the boundaries. This will update the current solution using the solution from previous time step.- Overrides:
explicitSolutionin classExplicitScheme
-
normalOperation
public boolean normalOperation()
- Overrides:
normalOperationin classDifferenceScheme
-
phi
public double phi(int i)
- Overrides:
phiin classExplicitScheme
-
getCoupling
public RadiativeTransferCoupling getCoupling()
-
setCoupling
public final void setCoupling(RadiativeTransferCoupling coupling)
-
toString
public String toString()
Prints out the description of this problem type.- Overrides:
toStringin classExplicitScheme- Returns:
- a verbose description of the problem.
-
domain
public Class<? extends Problem>[] domain()
Description copied from class:DifferenceSchemeRetrieves all problem statements that can be solved with this implementation of the difference scheme.- Specified by:
domainin classDifferenceScheme- Returns:
- an array containing subclasses of the
Problemclass which can be used as input for this difference scheme.
-
setCalculationStatus
public void setCalculationStatus(RTECalculationStatus calculationStatus) throws SolverException
- Throws:
SolverException
-
isAutoUpdateFluxes
public final boolean isAutoUpdateFluxes()
-
setAutoUpdateFluxes
public final void setAutoUpdateFluxes(boolean auto)
-
-