Field Updater¶
- class openfts.field_updater.EMPEC(lambdas=None, update_order=None, adaptive_timestep=None, adaptive_timestep_warmup=None)¶
Euler-Maruyama Predictor Corrected updater
- Parameters:
lambdas (float array) – Lambda relaxation coefficient for fields. One should be specified for each field.
update_order (string) – Specify how often to update fields. See options below
adaptive_timestep (bool) – [WIP] Option to use the adaptive timestep of Aarts et al 2010 Eq 2.9. If in doubt, set to False.
- update_order options:
“staggered” - Update one field per time step. This is typically used for semi-implicit updaters like SIS or ETD.
“simultaneous” - Update all fields each time step. This is typically used for predictor-corrector updaters like EMPEC.
Example (python):
fts.driver.field_updater = openfts.field_updater.EMPEC(update_order='simultaneous',adaptive_timestep=False,lambdas=[1.0, 1.0])
Example (json):
"driver": { ... "field_updater": { "type": "EMPEC", "__update_order": "staggered", "update_order": "simultaneous", "adaptive_timestep": false, "lambdas": [1.0,1.0] } }
- class openfts.field_updater.Euler(lambdas=None, update_order=None, adaptive_timestep=None, adaptive_timestep_warmup=None)¶
Forward Euler updater
- Parameters:
lambdas (float array) – Lambda relaxation coefficient for fields. One should be specified for each field.
update_order (string) – Specify how often to update fields. See options below
adaptive_timestep (bool) – [WIP] Option to use the adaptive timestep of Aarts et al 2010 Eq 2.9. If in doubt, set to False.
- update_order options:
“staggered” - Update one field per time step. This is typically used for semi-implicit updaters like SIS or ETD.
“simultaneous” - Update all fields each time step. This is typically used for predictor-corrector updaters like EMPEC.
Example (python):
fts.driver.field_updater = openfts.field_updater.Euler(update_order='staggered',adaptive_timestep=False,lambdas=[1.0, 1.0])
Example (json):
"driver": { ... "field_updater": { "type": "Euler", "update_order": "staggered", "adaptive_timestep": false, "lambdas": [1.0,1.0] } }
- class openfts.field_updater.SIS(lambdas=None, update_order=None, adaptive_timestep=None, adaptive_timestep_warmup=None)¶
Semi-implicit Seidel updater
- Parameters:
lambdas (float array) – Lambda relaxation coefficient for fields. One should be specified for each field.
update_order (string) – Specify how often to update fields. See options below
adaptive_timestep (bool) – [WIP] Option to use the adaptive timestep of Aarts et al 2010 Eq 2.9. If in doubt, set to False.
- update_order options:
“staggered” - Update one field per time step. This is typically used for semi-implicit updaters like SIS or ETD.
“simultaneous” - Update all fields each time step. This is typically used for predictor-corrector updaters like EMPEC.
Example (python):
fts.driver.field_updater = openfts.field_updater.SIS(update_order='staggered',adaptive_timestep=False,lambdas=[1.0, 1.0])
Example (json):
"driver": { ... "field_updater": { "type": "SIS", "update_order": "staggered", "adaptive_timestep": false, "lambdas": [1.0,1.0] } }
- class openfts.field_updater.ETD(lambdas=None, update_order=None, adaptive_timestep=None, adaptive_timestep_warmup=None)¶
Exponential time differencing updater (beta)
- Parameters:
lambdas (float array) – Lambda relaxation coefficient for fields. One should be specified for each field.
update_order (string) – Specify how often to update fields. See options below
adaptive_timestep (bool) – [WIP] Option to use the adaptive timestep of Aarts et al 2010 Eq 2.9. If in doubt, set to False.
- update_order options:
“staggered” - Update one field per time step. This is typically used for semi-implicit updaters like SIS or ETD.
“simultaneous” - Update all fields each time step. This is typically used for predictor-corrector updaters like EMPEC.
Example (python):
fts.driver.field_updater = openfts.field_updater.ETD(update_order='staggered',adaptive_timestep=False,lambdas=[1.0, 1.0])
Example (json):
"driver": { ... "field_updater": { "type": "ETD", "update_order": "staggered", "adaptive_timestep": false, "lambdas": [1.0,1.0] } }