History log of /petsc/src/ts/event/tests/ex3.c (Results 1 – 14 of 14)
Revision Date Author Comments
# 4e8208cb 31-Jan-2026 Satish Balay <balay@mcs.anl.gov>

Merge branch 'barry/2026-01-13/ftn-generation-for-context-functions' into 'main'

Fortran generation of interface definitions for functions that take and return context variables (void *ctx and PetC

Merge branch 'barry/2026-01-13/ftn-generation-for-context-functions' into 'main'

Fortran generation of interface definitions for functions that take and return context variables (void *ctx and PetCtx ctx)

See merge request petsc/petsc!8956

show more ...


# 2a8381b2 13-Jan-2026 Barry Smith <bsmith@mcs.anl.gov>

Add automatic generated fortran support for setting and returning contexts

Major cleanup of the code for setting and returning application (previously called user) contexts
- PetscCtx ctx is now t

Add automatic generated fortran support for setting and returning contexts

Major cleanup of the code for setting and returning application (previously called user) contexts
- PetscCtx ctx is now the standard for passing in contexts
- PetscCtxRt ctx is the standard for passing out contexts, including context destroy routines based on PetscCtxDestroyFn

Both of these are typedef to void*

Also removed most use of user and userctx for context arguments now consistently named ctx

Improved documentation on PetscCtx and PetscCtxRt and on how to use contexts (including getting them) from Fortran

show more ...


# 834855d6 27-Aug-2025 Satish Balay <balay@mcs.anl.gov>

Merge branch 'jolivet/clang-format-21' into 'main'

clang-format-21

See merge request petsc/petsc!8202


# ac530a7e 03-Jun-2025 Pierre Jolivet <pierre@joliv.et>

Remove unnecessary braces around one-liners

git grep -lE "[ ]*(if|for|while) \(.*\) {[^;]*;[^;]*}$" -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | xargs sed -i '' -E 's#([ ]*)(if|for|while) \((.*)\

Remove unnecessary braces around one-liners

git grep -lE "[ ]*(if|for|while) \(.*\) {[^;]*;[^;]*}$" -- '*.c' '*.cxx' '*.cu' '*.h' '*.hpp' '*.cpp' | xargs sed -i '' -E 's#([ ]*)(if|for|while) \((.*)\) {([^;]*);([^;]*)}$#\1\2 \(\3\)\4;\5#'

show more ...


# 00f5d003 06-Nov-2024 Satish Balay <balay@mcs.anl.gov>

Merge remote-tracking branch 'origin/release'


# e125b91e 05-Nov-2024 Satish Balay <balay@mcs.anl.gov>

Merge branch 'balay/fix-alltests' into 'release'

tests: switch '-V' option (to '-v') in src/ts/events/tests/ex3.c - this conflicts with '-V' option in config/petsc_harness.sh

See merge request pets

Merge branch 'balay/fix-alltests' into 'release'

tests: switch '-V' option (to '-v') in src/ts/events/tests/ex3.c - this conflicts with '-V' option in config/petsc_harness.sh

See merge request petsc/petsc!7980

show more ...


# f61a2500 01-Nov-2024 Satish Balay <balay@mcs.anl.gov>

tests: switch '-V' option (to '-v') in src/ts/events/tests/ex3.c - this conflicts with '-V' option in config/petsc_harness.sh

This conflict is triggered by 'make test V=0' as used by 'make alltests'

tests: switch '-V' option (to '-v') in src/ts/events/tests/ex3.c - this conflicts with '-V' option in config/petsc_harness.sh

This conflict is triggered by 'make test V=0' as used by 'make alltests'

Ref:
balay@al:~/petsc$ make test search=ts_event_tests-ex3_V
Using MAKEFLAGS: -- search=ts_event_tests-ex3_V
TEST arch-ci-linux-cmplx-single-arm/tests/counts/ts_event_tests-ex3_V.counts
ok ts_event_tests-ex3_V+V-1e2_change5-0
ok diff-ts_event_tests-ex3_V+V-1e2_change5-0
ok ts_event_tests-ex3_V+V-1e2_change5-1
ok diff-ts_event_tests-ex3_V+V-1e2_change5-1
ok ts_event_tests-ex3_V+V-1e5_change5-0
ok diff-ts_event_tests-ex3_V+V-1e5_change5-0
ok ts_event_tests-ex3_V+V-1e5_change5-1
ok diff-ts_event_tests-ex3_V+V-1e5_change5-1
ok ts_event_tests-ex3_V+V-1e8_change5-0
ok diff-ts_event_tests-ex3_V+V-1e8_change5-0
ok ts_event_tests-ex3_V+V-1e8_change5-1
ok diff-ts_event_tests-ex3_V+V-1e8_change5-1
balay@al:~/petsc$ make test search=ts_event_tests-ex3_V V=0
Using MAKEFLAGS: -- V=0 search=ts_event_tests-ex3_V
not ok diff-ts_event_tests-ex3_V+V-0_change5-0 * Error code: 1
* 2,12c2,3
* < 0 1. 1.78245e-07 pass
* < 0 1.05 4.52791e-08 pass
* < 0 2. 1.44922e-07 pass
* < 0 3. 1.08548e-07 pass
* < 0 4. 4.04742e-07 pass
* < 0 5. 2.7984e-06 pass
* < 0 6. 2.24499e-07 pass
* < 0 7. 1.88794e-07 pass
* < 0 8. 2.82053e-07 pass
* < 0 9. 5.73366e-07 pass
* < 0 9.05 1.11373e-07 pass
* ---
* > 0 1.05 0.0500001 fail
* > 0 9.05 8. fail
...

show more ...


# 732aec7a 22-Sep-2024 Satish Balay <balay@mcs.anl.gov>

Merge branch 'jolivet/remove-cast' into 'main'

Use NULL or nullptr instead of casted 0

See merge request petsc/petsc!7857


# c8025a54 21-Sep-2024 Pierre Jolivet <pierre@joliv.et>

Use NULL or nullptr instead of casted 0


# d8e47b63 17-Sep-2024 Satish Balay <balay@mcs.anl.gov>

Merge branch 'barry/2024-09-02/rebased-fix-conversion-warnings' into 'main'

Compiler finds (and forbid) casts from higher precision integers to lower

See merge request petsc/petsc!7806


# 6497c311 25-Aug-2024 Barry Smith <bsmith@mcs.anl.gov>

Add to CI compilers flags '-Wconversion', '-Wno-sign-conversion', '-Wno-float-conversion', '-Wno-implicit-float-conversion']

Also fix the code to repository to compile cleanly with these flags in th

Add to CI compilers flags '-Wconversion', '-Wno-sign-conversion', '-Wno-float-conversion', '-Wno-implicit-float-conversion']

Also fix the code to repository to compile cleanly with these flags in the CI

show more ...


# bff66efa 15-Dec-2023 Satish Balay <balay@mcs.anl.gov>

Merge branch 'ilya-fursov/ts-fixevent2' into 'main'

TSEvent: refactor and fix bugs, add TSSetPostEventStep()

See merge request petsc/petsc!6752


# fe4ad979 03-Dec-2023 Ilya Fursov <ilya.foursov.7bd@gmail.com>

Implement setting two distinct post-event steps

The two post-event steps are managed by:
TSSetPostEventStep(), -ts_event_post_event_step,
TSSetPostEventSecondStep(), -ts_event_post_event_second_step

Implement setting two distinct post-event steps

The two post-event steps are managed by:
TSSetPostEventStep(), -ts_event_post_event_step,
TSSetPostEventSecondStep(), -ts_event_post_event_second_step.

(The latter function and option are replacement for the original PETSc
TSSetPostEventIntervalStep(), -ts_event_post_eventinterval_step,
with some change of overall behaviour of 1st + 2nd steps).

Also, reduce the number of tests ~ 4 times.

show more ...


# ca4445c7 20-Jul-2023 Ilya Fursov <ilya.foursov.7bd@gmail.com>

TSEvent: refactor and fix bugs, add TSSetPostEventStep()

Refactor the core algorithm for resolution of events: TSEventHandler()
and the helper functions, fixing the existing bugs.

Chang

TSEvent: refactor and fix bugs, add TSSetPostEventStep()

Refactor the core algorithm for resolution of events: TSEventHandler()
and the helper functions, fixing the existing bugs.

Change event indicator functions from PetscScalar to PetscReal.
Change the API of TSSetEventHandler(): in the user `indicator()` callback,
the 'fvalue' argument type changed from PetscScalar[] to PetscReal[].

Add TSSetPostEventStep(), deprecate TSSetPostEventIntervalStep().
Deprecate option -ts_event_post_eventinterval_step.

Fix bugs in interaction of TSEvent with tspan.
Add six new test examples.

Below are the examples of bugs fixed by this patch.
The source codes (ex3.c, ex3span.c, ex4.c, ex5.c) can be found
in src/ts/event/tests. To run them with the older Petsc versions,
one would need to comment out "#define NEW_VERSION".
Behaviour for three library versions is reported below:
* ORIG: current Petsc version, before the proposed patch.
* 6688: independently of the proposed patch, Merge Request 6688 was
developed, which fixed some bugs with zero-crossing directions.
* NEW : the proposed patch.

./ex3 -ts_monitor -ts_event_monitor -ts_view -ts_type beuler \
-ts_adapt_type basic -flg -V 1e9 -ts_adapt_dt_min 1e-6 -change5 1 -dir 1
* ORIG: fails to resolve 5 out of 6 events, and resolves 23 incorrect events.
* 6688: fails to exit the TSEvent iteration via the step size (bracket size)
criterion.
* NEW : ok, resolves all 6 events.

./ex4 -ts_adapt_type basic -ts_type rk -ts_dt 0.25 -ts_event_tol 1e-8 \
-dir 0 -ts_adapt_dt_min 1e-10 -ts_view -ts_monitor -ts_event_monitor
* ORIG: only reaches t = 0.0300236 after 10000 TS steps.
* 6688: only reaches t = 0.0300236 after 10000 TS steps.
* NEW : ok, reaches the final time t = 4.0 after 96 TS steps, resolving
all 16 events.

./ex5 -ts_monitor -ts_event_monitor -ts_type rk -ts_adapt_type basic \
-ts_view -ts_dt 0.25 -flg -dir 0
* ORIG: only reaches t = 4.0 after 10000 TS steps, erroneously reports
event at t = 4.0 around 5000 times.
* 6688: only reaches t = 4.0 after 10000 TS steps.
* NEW : ok, reaches the final time t = 10.0 after 99 TS steps, resolving
all 34 events.

./ex5 -ts_monitor -ts_event_monitor -ts_type rk -ts_adapt_type basic \
-ts_view -ts_dt 0.25 -flg -dir 1
* ORIG: fails, starts taking negative time steps, no events are correctly
resolved.
* 6688: ok, but slower: 90 TS steps to resolve all 17 events.
* NEW : ok, and faster: 48 TS steps to resolve all 17 events.

./ex5 -ts_monitor -ts_event_monitor -ts_type rk -ts_adapt_type basic \
-ts_view -ts_dt 0.25 -flg -dir -1
* ORIG: fails, starts taking 'nan' time steps.
* 6688: mostly fails, only reaches t = 4.99993 after 10000 TS steps.
* NEW : ok, reaches the final time t = 10.0 after 74 TS steps, resolving
all 17 events.

The same run in parallel:
mpirun -n 2 ./ex5 -ts_monitor -ts_event_monitor -ts_type rk \
-ts_adapt_type basic -ts_view -ts_dt 0.25 -flg -dir -1
* ORIG: fails, starts taking negative time steps, exits with runtime error.
* 6688: mostly fails, only reaches t = 3, besides, the parallel run is not
consistent with the serial run (see above).
* NEW : ok, reaches the final time t = 10.0 after 74 TS steps, resolving
all 17 events.

./ex3span -ts_monitor -ts_event_monitor
* ORIG: (confused by events) misses tspan points: 4.02, 4.21, 4.98, 5.01,
5.21, 5.98, 6, 6.01, 6.02, 6.21, 6.99, 7.21, 8.01, 8.21, 9.01.
* 6688: (confused by events) misses tspan points: 4.02, 4.21, 4.98, 5.01,
5.21, 5.98, 6, 6.01, 6.02, 6.21, 6.99, 7.21, 8.01, 8.21, 9.01.
* NEW : ok.

./ex3span -ts_monitor -ts_event_monitor -ts_event_post_event_step 0.5
* ORIG: misses the majority of tspan points (except 0.01 and 0.21),
and also resolves the last event location at wrong time t = 9.21.
* 6688: misses the majority of tspan points (except 0.01 and 0.21),
and also resolves the last event location at wrong time t = 9.21.
* NEW : ok.

show more ...