Skip to content

fix connection problem.zoo #577

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: dev
Choose a base branch
from
Open

fix connection problem.zoo #577

wants to merge 2 commits into from

Conversation

dario-coscia
Copy link
Collaborator

@dario-coscia dario-coscia commented May 16, 2025

Description

This PR fixes #572.

Checklist

  • Code follows the project’s Code Style Guidelines
  • Tests have been added or updated
  • Documentation has been updated if necessary
  • Pull request is linked to an open issue

@dario-coscia dario-coscia self-assigned this May 16, 2025
@dario-coscia dario-coscia added the pr-to-review Label for PR that are ready to been reviewed label May 16, 2025
@dario-coscia dario-coscia added pr-to-fix Label for PR that needs modification and removed pr-to-review Label for PR that are ready to been reviewed labels May 16, 2025
@GiovanniCanali GiovanniCanali force-pushed the fix_zoo branch 2 times, most recently from 58704fe to b49d3dd Compare July 29, 2025 11:44
Copy link
Contributor

github-actions bot commented Jul 29, 2025

badge

Code Coverage Summary

Filename                                                       Stmts    Miss  Cover    Missing
-----------------------------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------
__init__.py                                                        7       0  100.00%
graph.py                                                         114      11  90.35%   99-100, 112, 124, 126, 142, 144, 166, 169, 182, 271
label_tensor.py                                                  251      32  87.25%   81, 121, 144-148, 165, 177, 182, 188-193, 273, 280, 332, 334, 348, 444-447, 490, 537, 629, 649-651, 664-673, 688, 710
operator.py                                                       72       5  93.06%   250-268, 459
operators.py                                                       6       6  0.00%    3-12
plotter.py                                                         1       1  0.00%    3
trainer.py                                                        75       6  92.00%   195-204, 293, 314, 318, 322
type_checker.py                                                   22       0  100.00%
utils.py                                                          65      10  84.62%   59, 75, 141, 178, 181, 184, 220-223
adaptive_function/__init__.py                                      3       0  100.00%
adaptive_function/adaptive_function.py                            55       0  100.00%
adaptive_function/adaptive_function_interface.py                  51       6  88.24%   98, 141, 148-151
adaptive_functions/__init__.py                                     6       6  0.00%    3-12
callback/__init__.py                                               5       0  100.00%
callback/linear_weight_update_callback.py                         28       1  96.43%   63
callback/optimizer_callback.py                                    23       0  100.00%
callback/processing_callback.py                                   49       5  89.80%   42-43, 73, 168, 171
callback/refinement/__init__.py                                    3       0  100.00%
callback/refinement/r3_refinement.py                              28       1  96.43%   88
callback/refinement/refinement_interface.py                       50       5  90.00%   32, 59, 67, 72, 78
callbacks/__init__.py                                              6       6  0.00%    3-12
condition/__init__.py                                              7       0  100.00%
condition/condition.py                                            35       8  77.14%   23, 127-128, 131-132, 135-136, 151
condition/condition_interface.py                                  37       4  89.19%   31, 76, 100, 122
condition/data_condition.py                                       26       1  96.15%   56
condition/domain_equation_condition.py                            19       0  100.00%
condition/input_equation_condition.py                             44       1  97.73%   129
condition/input_target_condition.py                               44       1  97.73%   125
data/__init__.py                                                   3       0  100.00%
data/data_module.py                                              201      22  89.05%   41-52, 132, 172, 193, 232, 313-317, 323-327, 399, 466, 546, 637, 639
data/dataset.py                                                   85       7  91.76%   42, 123-126, 256, 307
domain/__init__.py                                                10       0  100.00%
domain/cartesian.py                                              112      10  91.07%   37, 47, 75-76, 92, 97, 103, 246, 256, 264
domain/difference_domain.py                                       25       2  92.00%   54, 87
domain/domain_interface.py                                        20       5  75.00%   37-41
domain/ellipsoid.py                                              104      24  76.92%   52, 56, 127, 250-257, 269-282, 286-287, 290, 295
domain/exclusion_domain.py                                        28       1  96.43%   86
domain/intersection_domain.py                                     28       1  96.43%   85
domain/operation_interface.py                                     26       1  96.15%   88
domain/simplex.py                                                 72      14  80.56%   62, 207-225, 246-247, 251, 256
domain/union_domain.py                                            25       1  96.00%   43
equation/__init__.py                                               4       0  100.00%
equation/equation.py                                              11       0  100.00%
equation/equation_factory.py                                      24       8  66.67%   37, 73, 97-110, 132-145
equation/equation_interface.py                                     4       0  100.00%
equation/system_equation.py                                       20       0  100.00%
geometry/__init__.py                                               7       7  0.00%    3-15
loss/__init__.py                                                   7       0  100.00%
loss/loss_interface.py                                            17       2  88.24%   45, 51
loss/lp_loss.py                                                   15       0  100.00%
loss/ntk_weighting.py                                             26       0  100.00%
loss/power_loss.py                                                15       0  100.00%
loss/scalar_weighting.py                                          16       0  100.00%
loss/weighting_interface.py                                        6       0  100.00%
model/__init__.py                                                 11       0  100.00%
model/average_neural_operator.py                                  31       2  93.55%   73, 82
model/deeponet.py                                                 93      13  86.02%   187-190, 209, 240, 283, 293, 303, 313, 323, 333, 488, 498
model/feed_forward.py                                             89      11  87.64%   58, 195, 200, 278-292
model/fourier_neural_operator.py                                  78      10  87.18%   96-100, 110, 155-159, 218, 220, 242, 342
model/graph_neural_operator.py                                    40       2  95.00%   58, 60
model/kernel_neural_operator.py                                   34       6  82.35%   83-84, 103-104, 123-124
model/low_rank_neural_operator.py                                 27       2  92.59%   89, 98
model/multi_feed_forward.py                                       12       5  58.33%   25-31
model/pirate_network.py                                           27       1  96.30%   118
model/spline.py                                                   89      37  58.43%   30, 41-66, 69, 128-132, 135, 159-177, 180
model/block/__init__.py                                           13       0  100.00%
model/block/average_neural_operator_block.py                      12       0  100.00%
model/block/convolution.py                                        64      13  79.69%   77, 81, 85, 91, 97, 111, 114, 151, 161, 171, 181, 191, 201
model/block/convolution_2d.py                                    146      27  81.51%   155, 162, 282, 314, 379-433, 456
model/block/embedding.py                                          48       7  85.42%   93, 143-146, 155, 168
model/block/fourier_block.py                                      31       0  100.00%
model/block/gno_block.py                                          22       4  81.82%   73-77, 87
model/block/integral.py                                           18       4  77.78%   22-25, 71
model/block/low_rank_block.py                                     24       0  100.00%
model/block/orthogonal.py                                         37       0  100.00%
model/block/pirate_network_block.py                               25       1  96.00%   89
model/block/pod_block.py                                          73      10  86.30%   55-58, 70, 83, 113, 148-153, 187, 212
model/block/rbf_block.py                                         179      25  86.03%   18, 42, 53, 64, 75, 86, 97, 223, 280, 282, 298, 301, 329, 335, 363, 367, 511-524
model/block/residual.py                                           46       0  100.00%
model/block/spectral.py                                           83       4  95.18%   132, 140, 262, 270
model/block/stride.py                                             28       7  75.00%   55, 58, 61, 67, 72-74
model/block/utils_convolution.py                                  22       3  86.36%   58-60
model/block/message_passing/__init__.py                            5       0  100.00%
model/block/message_passing/deep_tensor_network_block.py          21       0  100.00%
model/block/message_passing/en_equivariant_network_block.py       39       0  100.00%
model/block/message_passing/interaction_network_block.py          23       0  100.00%
model/block/message_passing/radial_field_network_block.py         20       0  100.00%
model/layers/__init__.py                                           6       6  0.00%    3-12
optim/__init__.py                                                  5       0  100.00%
optim/optimizer_interface.py                                       7       0  100.00%
optim/scheduler_interface.py                                       7       0  100.00%
optim/torch_optimizer.py                                          14       0  100.00%
optim/torch_scheduler.py                                          19       2  89.47%   5-6
problem/__init__.py                                                6       0  100.00%
problem/abstract_problem.py                                      117      18  84.62%   39-40, 59-70, 115-120, 149, 161, 179, 253, 257, 286
problem/inverse_problem.py                                        22       0  100.00%
problem/parametric_problem.py                                      8       1  87.50%   29
problem/spatial_problem.py                                         8       0  100.00%
problem/time_dependent_problem.py                                  8       0  100.00%
problem/zoo/__init__.py                                            8       0  100.00%
problem/zoo/advection.py                                          33       7  78.79%   36-38, 52, 108-110
problem/zoo/allen_cahn.py                                         20       6  70.00%   20-22, 34-36
problem/zoo/diffusion_reaction.py                                 29       5  82.76%   94-104
problem/zoo/helmholtz.py                                          30       6  80.00%   36-42, 103-107
problem/zoo/inverse_poisson_2d_square.py                          48       3  93.75%   44-50
problem/zoo/poisson_2d_square.py                                  19       3  84.21%   65-70
problem/zoo/supervised_problem.py                                 11       0  100.00%
solver/__init__.py                                                 6       0  100.00%
solver/garom.py                                                  107       2  98.13%   129-130
solver/solver.py                                                 188      10  94.68%   192, 215, 287, 290-291, 350, 432, 515, 556, 562
solver/ensemble_solver/__init__.py                                 4       0  100.00%
solver/ensemble_solver/ensemble_pinn.py                           23       1  95.65%   104
solver/ensemble_solver/ensemble_solver_interface.py               27       0  100.00%
solver/ensemble_solver/ensemble_supervised.py                      9       0  100.00%
solver/physics_informed_solver/__init__.py                         8       0  100.00%
solver/physics_informed_solver/causal_pinn.py                     47       3  93.62%   157, 166-167
solver/physics_informed_solver/competitive_pinn.py                58       0  100.00%
solver/physics_informed_solver/gradient_pinn.py                   17       0  100.00%
solver/physics_informed_solver/pinn.py                            18       0  100.00%
solver/physics_informed_solver/pinn_interface.py                  47       2  95.74%   130, 190
solver/physics_informed_solver/rba_pinn.py                        69       1  98.55%   309
solver/physics_informed_solver/self_adaptive_pinn.py             104       1  99.04%   392
solver/supervised_solver/__init__.py                               4       0  100.00%
solver/supervised_solver/reduced_order_model.py                   24       1  95.83%   137
solver/supervised_solver/supervised.py                             7       0  100.00%
solver/supervised_solver/supervised_solver_interface.py           25       1  96.00%   90
solvers/__init__.py                                                6       6  0.00%    3-12
solvers/pinns/__init__.py                                          6       6  0.00%    3-12
TOTAL                                                           4782     506  89.42%

Results for commit: 7c6567c

Minimum allowed coverage is 80.123%

♻️ This comment has been updated with latest results

@GiovanniCanali GiovanniCanali force-pushed the fix_zoo branch 7 times, most recently from bdf61ad to a81b090 Compare July 29, 2025 14:45
@GiovanniCanali GiovanniCanali self-assigned this Jul 29, 2025
@GiovanniCanali GiovanniCanali linked an issue Jul 29, 2025 that may be closed by this pull request
@GiovanniCanali GiovanniCanali added pr-to-review Label for PR that are ready to been reviewed and removed pr-to-fix Label for PR that needs modification labels Jul 29, 2025
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes a connection problem (issue #572) in the PINA library by refactoring how the InversePoisson2DSquareProblem handles data loading. The solution moves from mandatory data downloading at module import time to optional data loading during class instantiation, making tests more resilient to network connectivity issues.

  • Refactored InversePoisson2DSquareProblem to support optional data loading with configurable data size
  • Updated all solver tests to use the new constructor parameters for faster test execution
  • Added comprehensive test coverage for the new functionality with proper error handling

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pina/problem/zoo/inverse_poisson_2d_square.py Refactored class to support optional data loading with new constructor parameters and error handling
tests/test_problem_zoo/test_inverse_poisson_2d_square.py Added parametrized tests for new constructor options and error conditions
tests/test_solver/test_pinn.py Updated to use new constructor with small data size for faster testing
tests/test_solver/test_rba_pinn.py Updated to use new constructor with small data size for faster testing
tests/test_solver/test_gradient_pinn.py Updated to use new constructor with small data size for faster testing
tests/test_solver/test_competitive_pinn.py Updated to use new constructor with small data size for faster testing
tests/test_solver/test_self_adaptive_pinn.py Updated to use new constructor with small data size for faster testing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr-to-review Label for PR that are ready to been reviewed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Can't import problem.zoo without internet connection
2 participants