Package pulse.problem.laser
Class DiscretePulse
- java.lang.Object
-
- pulse.problem.laser.DiscretePulse
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
DiscretePulse2D
public class DiscretePulse extends Object implements Serializable
ADiscretePulseis an object that acts as a medium between the physicalPulseand the respectiveDifferenceSchemeused to process the solution of aProblem.- See Also:
Pulse, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DiscretePulse(Problem problem, Grid grid)This creates a one-dimensional discrete pulse on agrid.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description doublegetCharacteristicTime()Gets the dimensional factor required to convert real time variable into a dimensional variable, defined in theProblemclassdoublegetDiscreteWidth()Gets the discrete dimensionless pulse width, which is a multiplier of the current grid timestep.GridgetGrid()Gets theGridobject used to construct thisDiscretePulsePulsegetPhysicalPulse()Gets the physicalPulseintgetWidthToleranceFactor()Assuming a characteristic time is divided by the return value of this method and is set to the minimal resolved pulse width, shows how small a pulse width can be to enable finite pulse correction.voidinit()Recalculates thediscretePulseWidthby callinggridTimeon the physical pulse width andtimeFactor.doublelaserPowerAt(double time)Uses thePulseTemporalShapeof thePulseobject to calculate the laser power at the specified moment oftime.doublepulseWidthGrid()Optimises theGridparameters so that the timestep is sufficiently small to enable accurate pulse correction.doubleresolvedPulseWidthSeconds()Gets the minimal resolved pulse width defined by theWIDTH_TOLERANCE_FACTORand the characteristic time given by thegetConversionFactor.doubletotalEnergy()Calculates the total pulse energy using a numerical integrator.The normalisation factor is then equal to the inverse total energy.
-
-
-
Constructor Detail
-
DiscretePulse
public DiscretePulse(Problem problem, Grid grid)
This creates a one-dimensional discrete pulse on agrid.The dimensional factor is taken from the
problem, while the discrete pulse width (a multiplier of thegridparametertauis calculated using thegridTimemethod.- Parameters:
problem- the problem, used to extract the dimensional time factorgrid- a grid used to discretise thepulse
-
-
Method Detail
-
laserPowerAt
public double laserPowerAt(double time)
Uses thePulseTemporalShapeof thePulseobject to calculate the laser power at the specified moment oftime.- Parameters:
time- the time argument- Returns:
- the laser power at the specified moment of
time
-
init
public final void init()
Recalculates thediscretePulseWidthby callinggridTimeon the physical pulse width andtimeFactor.
-
pulseWidthGrid
public double pulseWidthGrid()
Optimises theGridparameters so that the timestep is sufficiently small to enable accurate pulse correction.This can change the
tauFactorandtauvariables in theGridobject ifdiscretePulseWidth/(M - 1) < grid.tau, where M is the required number of pulse calculations.
-
totalEnergy
public final double totalEnergy()
Calculates the total pulse energy using a numerical integrator.The normalisation factor is then equal to the inverse total energy.- Returns:
- the total pulse energy, assuming sample area fully covered by the beam
-
getDiscreteWidth
public double getDiscreteWidth()
Gets the discrete dimensionless pulse width, which is a multiplier of the current grid timestep. The pulse width is converted to the dimensionless pulse width by dividing the real value by l2/a.- Returns:
- the dimensionless pulse width mapped to the grid.
-
getPhysicalPulse
public Pulse getPhysicalPulse()
Gets the physicalPulse- Returns:
- the
Pulseobject
-
getGrid
public Grid getGrid()
Gets theGridobject used to construct thisDiscretePulse- Returns:
- the
Gridobject.
-
getCharacteristicTime
public double getCharacteristicTime()
Gets the dimensional factor required to convert real time variable into a dimensional variable, defined in theProblemclass- Returns:
- the conversion factor
-
resolvedPulseWidthSeconds
public double resolvedPulseWidthSeconds()
Gets the minimal resolved pulse width defined by theWIDTH_TOLERANCE_FACTORand the characteristic time given by thegetConversionFactor.- Returns:
-
getWidthToleranceFactor
public int getWidthToleranceFactor()
Assuming a characteristic time is divided by the return value of this method and is set to the minimal resolved pulse width, shows how small a pulse width can be to enable finite pulse correction.- Returns:
- the smallest fraction of a characteristic time resolved as a finite pulse.
-
-