|
23 | 23 | # set random seed for reproducibility
|
24 | 24 | ppsci.utils.misc.set_random_seed(42)
|
25 | 25 | # set output directory
|
26 |
| - output_dir = "./output_darcy2d_coslr" if not args.output_dir else args.output_dir |
| 26 | + output_dir = "./output_darcy2d" if not args.output_dir else args.output_dir |
27 | 27 | # initialize logger
|
28 | 28 | logger.init_logger("ppsci", f"{output_dir}/train.log", "info")
|
29 | 29 |
|
|
50 | 50 | NPOINT_RIGHT = 99
|
51 | 51 |
|
52 | 52 | # set constraint
|
53 |
| - pde_constraint = ppsci.constraint.InteriorConstraint( |
54 |
| - equation["Poisson"].equations, |
55 |
| - { |
56 |
| - "poisson": lambda _in: 8.0 |
57 |
| - * np.pi**2 |
| 53 | + def poisson_ref_compute_func(_in): |
| 54 | + return ( |
| 55 | + -8.0 |
| 56 | + * (np.pi**2) |
58 | 57 | * np.sin(2.0 * np.pi * _in["x"])
|
59 | 58 | * np.cos(2.0 * np.pi * _in["y"])
|
60 |
| - }, |
| 59 | + ) |
| 60 | + |
| 61 | + pde_constraint = ppsci.constraint.InteriorConstraint( |
| 62 | + equation["Poisson"].equations, |
| 63 | + {"poisson": poisson_ref_compute_func}, |
61 | 64 | geom["rect"],
|
62 | 65 | {**train_dataloader_cfg, "batch_size": NPOINT_PDE},
|
63 | 66 | ppsci.loss.MSELoss("sum"),
|
|
123 | 126 |
|
124 | 127 | # set training hyper-parameters
|
125 | 128 | epochs = 10000 if not args.epochs else args.epochs
|
126 |
| - lr_scheduler = ppsci.optimizer.lr_scheduler.Cosine( |
| 129 | + lr_scheduler = ppsci.optimizer.lr_scheduler.MultiStepDecay( |
127 | 130 | epochs,
|
128 | 131 | ITERS_PER_EPOCH,
|
129 | 132 | 0.001,
|
130 |
| - warmup_epoch=int(0.05 * epochs), |
| 133 | + (4000, 6000, 8000), |
| 134 | + 0.1, |
131 | 135 | )()
|
132 | 136 |
|
133 | 137 | # set optimizer
|
|
137 | 141 | NPOINTS_EVAL = NPOINT_PDE
|
138 | 142 | residual_validator = ppsci.validate.GeometryValidator(
|
139 | 143 | equation["Poisson"].equations,
|
140 |
| - { |
141 |
| - "poisson": lambda _in: 8.0 |
142 |
| - * np.pi**2 |
143 |
| - * np.sin(2.0 * np.pi * _in["x"]) |
144 |
| - * np.cos(2.0 * np.pi * _in["y"]) |
145 |
| - }, |
| 144 | + {"poisson": poisson_ref_compute_func}, |
146 | 145 | geom["rect"],
|
147 | 146 | {
|
148 | 147 | "dataset": "NamedArrayDataset",
|
|
0 commit comments