proteus.SplitOperator module

A class hierarchy for split operator methods.

Inheritance diagram of proteus.SplitOperator

class proteus.SplitOperator.System[source]
class proteus.SplitOperator.SO_base(modelList, system=<proteus.SplitOperator.System instance>, stepExact=True)[source]

Base class for operating splitting methods for systems.

The base class implements sequential splitting with a fixed time step based on the input parameter default_so.dt_system. If default_so.stepExactSystem is True then the time step will be reduced when needed to match the output times in default_so.tnList, otherwise the output will be the first time step after each step in tnList.

Here each model takes the same fixed time step

converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
updateTimeHistory()[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceStepTaken(model)[source]
sequenceTaken()[source]
SysNorm(rSys=0)[source]

Compute the maximum discrete residual value from both models

setFromOptions(soOptions)[source]

allow classes to set various numerical parameters

proteus.SplitOperator.Sequential_FixedStep[source]

alias of SO_base

class proteus.SplitOperator.Sequential_FixedStep_Simple(modelList, system=<proteus.SplitOperator.System instance>, stepExact=True)[source]

Bases: proteus.SplitOperator.SO_base

Implements sequential splitting with a fixed time step based on the list of time intervals (tnList).

Here each model take the same fixed time step

converged()[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
updateTimeHistory()[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
setFromOptions(soOptions)[source]

allow classes to set various numerical parameters

class proteus.SplitOperator.Sequential_NonUniformFixedStep(modelList, system=<proteus.SplitOperator.System instance>, stepExact=True)[source]

Bases: proteus.SplitOperator.SO_base

Just step to system output time levels, allowing models to substep if necessary to system steps

stepExact_system(tExact)[source]
choose_dt_system()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceTaken()[source]
class proteus.SplitOperator.Sequential_MinModelStep(modelList, system=<proteus.SplitOperator.System instance>, stepExact=True)[source]

Bases: proteus.SplitOperator.SO_base

Look at the minimum model step and make that the system step as well as all the model steps

Force models to step exactly to each with substepping if necessary,
but this isn’t strictly necessary
converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
class proteus.SplitOperator.Sequential_MinFLCBDFModelStep(modelList, system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.SO_base

Look at the minimum model step and make that the system step as well as all the model steps

converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceStepTaken(model)[source]
sequenceTaken()[source]
class proteus.SplitOperator.Sequential_MinAdaptiveModelStep(modelList, system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.SO_base

Look at the minimum model step and make that the system step as well as all the model steps

converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceStepTaken(model)[source]
sequenceTaken()[source]
class proteus.SplitOperator.ISO_fixed_MinAdaptiveModelStep(modelList, system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.SO_base

Look at the minimum model step and make that the system step as well as all the model steps

converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceStepTaken(model)[source]
sequenceTaken()[source]
class proteus.SplitOperator.Sequential_MinAdaptiveModelStep_SS(modelList, system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.SO_base

Look at the minimum model step and make that the system step as well as all the model steps

converged()[source]
stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
retryModelStep_solverFailure(model)[source]
retryModelStep_errorFailure(model)[source]
ignoreSequenceStepFailure(model)[source]
retrySequence_modelStepFailure()[source]
modelStepTaken(model, t_stepSequence)[source]
sequenceStepTaken(model)[source]
sequenceTaken()[source]
class proteus.SplitOperator.SequentialNotInOrder_MinFLCBDFModelStep(modelList, modelSequenceList=[1], system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.Sequential_MinFLCBDFModelStep

loop through the models in some specified order

stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]
class proteus.SplitOperator.SequentialNotInOrder_MinAdaptiveModelStep(modelList, modelSequenceList=[1], system=<proteus.SplitOperator.System instance>, stepExact=False)[source]

Bases: proteus.SplitOperator.Sequential_MinAdaptiveModelStep

loop through the models in some specified order

stepExact_system(tExact)[source]
choose_dt_system()[source]
initialize_dt_system(t0, tOut)[source]