phlower.settings.GroupModuleSetting

class phlower.settings.GroupModuleSetting(*, name, inputs=<factory>, outputs=<factory>, modules=<factory>, destinations=<factory>, nn_type='Group', no_grad=False, solver_type='none', is_steady_problem=False, solver_parameters=<factory>, time_series_length=None)[source]

Bases: BaseModel, IModuleSetting, IReadOnlyReferenceGroupSetting

Methods

find_module(name)

get_destinations()

get_input_keys()

get_name()

get_output_info()

get_output_keys()

resolve(*resolved_outputs[, is_first])

search_module_setting(name)

Attributes

model_computed_fields

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_extra

Get extra fields set during validation.

model_fields

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

name

name of group

inputs

definition of input variables

outputs

definition of output variables

modules

modules which belongs to this group

destinations

name of destination modules.

nn_type

name of neural network type.

no_grad

A Flag not to calculate gradient.

solver_type

Solver name calculating in iteration loop

is_steady_problem

When true, updating function in the group iteraion is defined as steady problems

solver_parameters

Parameters to pass iteration solver.

time_series_length

If feed integer value, do iteration to output time series tensor.

Parameters:
  • name (str)

  • inputs (list[GroupIOSetting])

  • outputs (list[GroupIOSetting])

  • modules (list[Annotated[Annotated[GroupModuleSetting, Tag(tag=GROUP)] | Annotated[ModuleSetting, Tag(tag=MODULE)], Discriminator(discriminator=~phlower.settings._group_setting._custom_discriminator, custom_error_type=invalid_union_member, custom_error_message=Invalid union member, custom_error_context={'discriminator': 'group_or_module'})]])

  • destinations (list[str])

  • nn_type (Literal['Group', 'GROUP'])

  • no_grad (bool)

  • solver_type (str)

  • is_steady_problem (bool)

  • solver_parameters (Annotated[IPhlowerIterationSolverSetting, PlainValidator(func=~phlower.settings._nonlinear_solver_setting._validate, json_schema_input_type=~typing.Any), PlainSerializer(func=~phlower.settings._nonlinear_solver_setting._serialize, return_type=PydanticUndefined, when_used=always)])

  • time_series_length (int | None)

destinations: list[str]

name of destination modules.

inputs: list[GroupIOSetting]

definition of input variables

is_steady_problem: bool

When true, updating function in the group iteraion is defined as steady problems

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

modules: list[Annotated[Annotated[GroupModuleSetting, Tag(_DiscriminatorTag.GROUP.name)] | Annotated[ModuleSetting, Tag(_DiscriminatorTag.MODULE.name)], Discriminator(_custom_discriminator, custom_error_type='invalid_union_member', custom_error_message='Invalid union member', custom_error_context={'discriminator': 'group_or_module'})]]

modules which belongs to this group

name: str

name of group

nn_type: Literal['Group', 'GROUP']

name of neural network type. Fixed to “Group” or “GROUP”

no_grad: bool

A Flag not to calculate gradient. Defauls to False.

outputs: list[GroupIOSetting]

definition of output variables

solver_parameters: SolverParameters

Parameters to pass iteration solver. Contents depends on solver_type

solver_type: str

Solver name calculating in iteration loop

none: No iteration. simple: run iteration until calculated value is converged. bb: Barzilan-Borwein method is used to converge iteration results.

time_series_length: int | None

If feed integer value, do iteration to output time series tensor.