proteus.SplitOperator module

A class hierarchy for split operator methods.

Inheritance diagram of proteus.SplitOperator

class proteus.SplitOperator.System[source]

Bases: object

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

Bases: object

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.systemStepExact 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 proteus.SplitOperator.SO_base

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

Bases: proteus.SplitOperator.SO_base

stepExact_system(tExact)[source]
initialize_dt_system(t0, tOut)[source]
choose_dt_system()[source]
proteus.SplitOperator.Sequential_FixedStep_Simple[source]

alias of proteus.SplitOperator.Sequential_tnList

class proteus.SplitOperator.Sequential_NonUniformFixedStep(modelList, system=<proteus.SplitOperator.System object>, 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 object>, 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 object>, 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 object>, 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 object>, 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 object>, 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 object>, 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 object>, 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]