@@ -456,77 +456,83 @@ function generate_gids(
456456 generate_gids (cell_gids,cell_to_ldofs,nldofs)
457457end
458458
459- function FESpaces. interpolate (u,f:: DistributedSingleFieldFESpace )
459+ function FESpaces. interpolate (u,f:: DistributedSingleFieldFESpace , isconsistent = false )
460460 free_values = zero_free_values (f)
461- interpolate! (u,free_values,f)
461+ interpolate! (u,free_values,f,isconsistent )
462462end
463463
464464function FESpaces. interpolate! (
465- u,free_values:: AbstractVector ,f:: DistributedSingleFieldFESpace )
465+ u,
466+ free_values:: AbstractVector ,
467+ f:: DistributedSingleFieldFESpace ,
468+ isconsistent= false )
466469 map (f. spaces,local_views (free_values)) do V,vec
467470 interpolate! (u,vec,V)
468471 end
469- FEFunction (f,free_values)
472+ FEFunction (f,free_values,isconsistent )
470473end
471474
472475function FESpaces. interpolate! (
473- u:: DistributedCellField ,free_values:: AbstractVector ,f:: DistributedSingleFieldFESpace )
474- map (local_views (u),f. spaces,local_views (free_values)) do ui,V,vec
475- interpolate! (ui,vec,V)
476+ u:: DistributedCellField ,
477+ free_values:: AbstractVector ,
478+ f:: DistributedSingleFieldFESpace ,
479+ isconsistent= false )
480+ map (local_views (u),f. spaces,local_views (free_values)) do u, V,vec
481+ interpolate! (u,vec,V)
476482 end
477- FEFunction (f,free_values)
483+ FEFunction (f,free_values,isconsistent )
478484end
479485
480- function FESpaces. interpolate_dirichlet (u, f:: DistributedSingleFieldFESpace )
486+ function FESpaces. interpolate_dirichlet (u, f:: DistributedSingleFieldFESpace , isconsistent = false )
481487 free_values = zero_free_values (f)
482488 dirichlet_values = get_dirichlet_dof_values (f)
483- interpolate_dirichlet! (u,free_values,dirichlet_values,f)
489+ interpolate_dirichlet! (u,free_values,dirichlet_values,f,isconsistent )
484490end
485491
486492function FESpaces. interpolate_dirichlet! (
487493 u, free_values:: AbstractVector ,
488494 dirichlet_values:: AbstractArray{<:AbstractVector} ,
489- f:: DistributedSingleFieldFESpace )
495+ f:: DistributedSingleFieldFESpace , isconsistent = false )
490496 map (f. spaces,local_views (free_values),dirichlet_values) do V,fvec,dvec
491497 interpolate_dirichlet! (u,fvec,dvec,V)
492498 end
493- FEFunction (f,free_values,dirichlet_values)
499+ FEFunction (f,free_values,dirichlet_values,isconsistent )
494500end
495501
496502function FESpaces. interpolate_dirichlet! (
497503 u:: DistributedCellField , free_values:: AbstractVector ,
498504 dirichlet_values:: AbstractArray{<:AbstractVector} ,
499- f:: DistributedSingleFieldFESpace )
505+ f:: DistributedSingleFieldFESpace , isconsistent = false )
500506 map (local_views (u), f. spaces,local_views (free_values),dirichlet_values) do u,V,fvec,dvec
501507 interpolate_dirichlet! (u,fvec,dvec,V)
502508 end
503- FEFunction (f,free_values,dirichlet_values)
509+ FEFunction (f,free_values,dirichlet_values,isconsistent )
504510end
505511
506- function FESpaces. interpolate_everywhere (u, f:: DistributedSingleFieldFESpace )
512+ function FESpaces. interpolate_everywhere (u, f:: DistributedSingleFieldFESpace , isconsistent = false )
507513 free_values = zero_free_values (f)
508514 dirichlet_values = get_dirichlet_dof_values (f)
509- interpolate_everywhere! (u,free_values,dirichlet_values,f)
515+ interpolate_everywhere! (u,free_values,dirichlet_values,f,isconsistent )
510516end
511517
512518function FESpaces. interpolate_everywhere! (
513519 u, free_values:: AbstractVector ,
514520 dirichlet_values:: AbstractArray{<:AbstractVector} ,
515- f:: DistributedSingleFieldFESpace )
521+ f:: DistributedSingleFieldFESpace , isconsistent = false )
516522 map (f. spaces,local_views (free_values),dirichlet_values) do V,fvec,dvec
517523 interpolate_everywhere! (u,fvec,dvec,V)
518524 end
519- FEFunction (f,free_values,dirichlet_values)
525+ FEFunction (f,free_values,dirichlet_values,isconsistent )
520526end
521527
522528function FESpaces. interpolate_everywhere! (
523529 u:: DistributedCellField , free_values:: AbstractVector ,
524530 dirichlet_values:: AbstractArray{<:AbstractVector} ,
525- f:: DistributedSingleFieldFESpace )
531+ f:: DistributedSingleFieldFESpace , isconsistent = false )
526532 map (local_views (u),f. spaces,local_views (free_values),dirichlet_values) do ui,V,fvec,dvec
527533 interpolate_everywhere! (ui,fvec,dvec,V)
528534 end
529- FEFunction (f,free_values,dirichlet_values)
535+ FEFunction (f,free_values,dirichlet_values,isconsistent )
530536end
531537
532538# Factories
@@ -877,13 +883,15 @@ end
877883# which does not properly interpolate the function provided.
878884# With this change, we are interpolating in the unconstrained space and then
879885# substracting the mean.
880- function FESpaces. interpolate! (u,free_values:: AbstractVector ,f:: DistributedZeroMeanFESpace )
886+ function FESpaces. interpolate! (u,free_values:: AbstractVector ,
887+ f:: DistributedZeroMeanFESpace , isconsistent= false )
881888 dirichlet_values = get_dirichlet_dof_values (f)
882- interpolate_everywhere! (u,free_values,dirichlet_values,f)
889+ interpolate_everywhere! (u,free_values,dirichlet_values,f,isconsistent )
883890end
884- function FESpaces. interpolate! (u:: DistributedCellField ,free_values:: AbstractVector ,f:: DistributedZeroMeanFESpace )
891+ function FESpaces. interpolate! (u:: DistributedCellField ,free_values:: AbstractVector ,
892+ f:: DistributedZeroMeanFESpace , isconsistent= false )
885893 dirichlet_values = get_dirichlet_dof_values (f)
886- interpolate_everywhere! (u,free_values,dirichlet_values,f)
894+ interpolate_everywhere! (u,free_values,dirichlet_values,f,isconsistent )
887895end
888896
889897function _compute_new_distributed_fixedval (
0 commit comments