pde_ModelFuncs_2var

Functions for creating PINN's in PDE solvers of tx and xy.

While available to user, not meant to be used. Instead interface through net_layers, net_units, and constraint parameters of solving functions detailed in "Main User Functions".

We have described commonly used layer classes used throughout many models, models for specific solvePDE_tx equations, and models for specifc solvePDE_xy equations.

Commonly used layer classes

Periodic

Bases: Layer

Class which describes a Periodic layer for PINN. Used in periodic models

Normalize

Bases: Layer

Class which describes a normalize layer for PINN. Returns input data normalized to interval [-1, 1].

Models for solving solvePDE_tx equations

select_model_tx(t_bdry, x_bdry, t_order, inital_t, net_layers, net_units, constraint, setup_boundaries)

Main function called by solve class to select which model is needed in training, and calls that build_model function.

Parameters:
  • t_bdry (list) –

    List of two elements, the interval of t to be solved on.

  • x_bdry (list) –

    List of two elements, the interval of x to be solved on.

  • t_order (int) –

    Order of t in equation (highest derivative of t used).

  • inital_t (lambda) –

    Inital function for t=t0, as a python lambda funciton, with t0 being inital t in t_bdry.

  • net_layers (int) –

    Number of internal layers of PINN.

  • net_units (int) –

    Number of units in each internal layer.

  • constraint (string) –

    Determines hard or soft constraints.

  • setup_boundaries (boundary) –

    boundary conditions set up from return of pde_Boundaries_2var call.

Returns:
  • model( PINN ) –

    Model generated by build_model function called in this function.

build_model_standard(x_bdry, y_bdry, n_layers, n_units)

Model used by both tx and xy equations, standard PINN with 2 variables, no periodic layers and no hard constrainting.

Used in solving:

  • solvePDE_tx with dirichlet boundaries and soft constraints
  • solvePDE_tx with neumann boundaries and soft constraints
  • solvePDE_xy with dirichlet boundaries and soft constraints
  • solvePDE_xy with neumann boundaries and soft constraints
Parameters:
  • x_bdry (list) –

    Used as t or x boundary

  • y_bdry (list) –

    Used as x or y boundary

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

build_model_periodic_tx(t, x_bdry, n_layers, n_units)

Used in solving:

  • solvePDE_tx with periodic boundaries and soft constraints
Parameters:
  • t (list) –

    t_bdry, boundary to train t on

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

build_model_periodic_hardconstraint1_tx(t, x, u0, n_layers, n_units)

Used in solving:

  • solvePDE_tx with periodic boundaries, hard constraints of a single order equation (i.e, a single initial condtion)
Parameters:
  • t (list) –

    t_bdry, boundary to train t on

  • u0 (lambda) –

    Function for initial condition u(t0, x)

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

build_model_periodic_hardconstraint2_tx(t, x, u0, ut0, n_layers, n_units)

Used in solving:

  • solvePDE_tx with periodic boundaries, hard constraints of a second order equation (i.e, two initial condtions)
Parameters:
  • t (list) –

    t_bdry, boundary to train t on

  • u0 (lambda) –

    Function for initial condition, u(t0, x)

  • ut0 (lambda) –

    Function for initial condition of derivative, ut(t0, x)

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

build_model_periodic_hardconstraint3_tx(t, x, u0, ut0, utt0, n_layers, n_units)

Used in solving:

  • solvePDE_tx with periodic boundaries, hard constraints of a third order equation (i.e, three initial condtions)
Parameters:
  • t (list) –

    t_bdry, boundary to train t on

  • u0 (lambda) –

    Function for initial condition, u(t0, x)

  • ut0 (lambda) –

    Function for initial condition of derivative, ut(t0, x)

  • utt0 (lambda) –

    Function for initial condition of second derivative, utt(t0, x)

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

Models for solving solvePDE_xy equations

select_model_xy(x_bdry, y_bdry, net_layers, net_units, constraint, setup_boundaries)

Main function called by solve class to select which model is needed in training, and calls that build_model function.

Parameters:
  • x_bdry (list) –

    List of two elements, the interval of x to be solved on.

  • y_bdry (list) –

    List of two elements, the interval of y to be solved on.

  • net_layers (int) –

    Number of internal layers of PINN.

  • net_units (int) –

    Number of units in each internal layer.

  • constraint (string) –

    Determines hard or soft constraints.

  • setup_boundaries (boundary) –

    boundary conditions set up from return of pde_Boundaries_2var call.

Returns:
  • model( PINN ) –

    Model generated by build_model function called in this function.

build_model_standard(x_bdry, y_bdry, n_layers, n_units)

Model used by both tx and xy equations, standard PINN with 2 variables, no periodic layers and no hard constrainting.

Used in solving:

  • solvePDE_tx with dirichlet boundaries and soft constraints
  • solvePDE_tx with neumann boundaries and soft constraints
  • solvePDE_xy with dirichlet boundaries and soft constraints
  • solvePDE_xy with neumann boundaries and soft constraints
Parameters:
  • x_bdry (list) –

    Used as t or x boundary

  • y_bdry (list) –

    Used as x or y boundary

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

build_model_periodic_xy(n_layers, n_units, x, y)

Used in solving:

  • solvePDE_xy with periodic boundaries and soft constraints
  • solvePDE_xy with periodic boundaries and hard constraints
Parameters:
  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

Returns:
  • model( PINN ) –

    Constructed model

If using periodic boundaries in a time independent equation, all boundaries are periodic and therefore there is nothing to be soft/hard constrainted, as periodic implemented on a network layer level.

build_model_hardconstraint_xy(x_bdry, y_bdry, n_layers, n_units, xleft_bound, xright_bound, ylower_bound, yupper_bound)

Used in solving:

  • solvePDE_xy with dirichlet boundaries and hard constraints
Parameters:
  • x_bdry (list) –

    boundary to train x on

  • y_bdry (list) –

    boundary to train y on

  • n_layers (int) –

    Number of network internal layers

  • n_units (int) –

    Number of units per internal network layer

  • xleft_bound (lambda) –

    Function which describes x left boundary condition, lambda of 2 variables

  • xright_bound (lambda) –

    Function which describes x right boundary condition, lambda of 2 variables

  • ylower_bound (lambda) –

    Function which describes y lower boundary condition, lambda of 2 variables

  • yupper_bound (lambda) –

    Function which describes y upper boundary condition, lambda of 2 variables

Returns:
  • model( PINN ) –

    Constructed model