Skip to content
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

Cyclic dependency is too strict (execute_on flags not respected) #7626

Closed
WilkAndy opened this issue Aug 25, 2016 · 4 comments

Comments

Projects
None yet
2 participants
@WilkAndy
Copy link
Contributor

commented Aug 25, 2016

Description of the enhancement or error report

I think the Cyclic Dependency check is too harsh. If I'm wrong, could someone tell me another way of doing what i need to do.

Rationale for the enhancement or information for reproducing the error

These are the blocks in my input file that cause problems:

  [./encoder_auxk]
    type = PorousFlowVariableSwitchEncoder
    porepressure = porepressure
    saturation = saturation
    variable = encoder
    execute_on = 'timestep_begin'
  [../]
  [./updater_pp]
    type = PorousFlowVariableSwitchUpdater
    p_or_s_variable = thevar
    encoder_auxvar = encoder
    m = 0.8
    al = 1E-5
    updating_porepressure = true
    variable = porepressure
    execute_on = 'nonlinear timestep_end'
  [../]

Notice the different "execute_on" times.

This is MOOSE's error:

*** ERROR ***
Cyclic dependency detected in object ordering:
encoder_auxk -> updater_pp
updater_pp -> encoder_auxk

Identified impact

(i.e. Internal object changes, limited interface changes, public API change, or a list of specific applications impacted)

@permcody

This comment has been minimized.

Copy link
Member

commented Aug 25, 2016

That looks like a bug to me.
On Thu, Aug 25, 2016 at 3:22 AM Andy Wilkins notifications@github.com
wrote:

Description of the enhancement or error report

I think the Cyclic Dependency check is too harsh. If I'm wrong, could
someone tell me another way of doing what i need to do.
Rationale for the enhancement or information for reproducing the error

These are the blocks in my input file that cause problems:

[./encoder_auxk]
type = PorousFlowVariableSwitchEncoder
porepressure = porepressure
saturation = saturation
variable = encoder
execute_on = 'timestep_begin'
[../]
[./updater_pp]
type = PorousFlowVariableSwitchUpdater
p_or_s_variable = thevar
encoder_auxvar = encoder
m = 0.8
al = 1E-5
updating_porepressure = true
variable = porepressure
execute_on = 'nonlinear timestep_end'
[../]

Notice the different "execute_on" times.

This is MOOSE's error:

*** ERROR ***
Cyclic dependency detected in object ordering:
encoder_auxk -> updater_pp
updater_pp -> encoder_auxk

Identified impact

(i.e. Internal object changes, limited interface changes, public API
change, or a list of specific applications impacted)


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
#7626, or mute the thread
https://github.com/notifications/unsubscribe-auth/AC5XIJ-ncwml0KDMlU8SQCe2Vl5O1dq4ks5qjV7hgaJpZM4Js3Ql
.

@permcody

This comment has been minimized.

Copy link
Member

commented Sep 6, 2016

Hmm, I was going to take a look at this but I don't think I have all the information I need since these objects aren't checked in. Is the top object an AuxKernel and the bottom object a PostProcessor? Is there any linkage that I can't see here?

@WilkAndy

This comment has been minimized.

Copy link
Contributor Author

commented Sep 6, 2016

Sorry those things aren't checked in - they were temporary tries at something i was working on. I've since moved away from that scheme, so don't really need this fixed right now, but of course the bug still exists. They were both AuxKernels (despite the crazy naming scheme!).

@permcody

This comment has been minimized.

Copy link
Member

commented Sep 7, 2016

Confirmed. It appears that we do not respect the execute_on flags at all. When sorting on dependencies. This is more or less baked into the warehouse design and should be fixed. Ping @aeslaughter.

@permcody permcody changed the title Cyclic dependency is too strict Cyclic dependency is too strict (execute_on flags not respected) Sep 7, 2016

aeslaughter added a commit to aeslaughter/moose that referenced this issue Sep 7, 2016

Removes call to sort on global list of execute objects in warehouse.
This elimnates false cyclic dependency errors when objects depend on each other but have differing execution flags.
(closes idaholab#7626)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.