Ignore:
Timestamp:
11/19/21 11:13:48 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: done with GetSolutionFromInputs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/jl/solve/inputs.jl

    r26629 r26649  
    1313        interp::IssmEnum
    1414        values::Vector{Float64}
     15        element_values::Vector{Float64}
    1516end# }}}
    1617
     
    2324
    2425#Inputs functions
     26function GetInput(inputs::Inputs,enum::IssmEnum) #{{{
     27
     28        #Does this input exist
     29        if !haskey(inputs.lookup,enum)
     30                error("Input ",enum," not found")
     31        end
     32
     33        #return input
     34        return inputs.lookup[enum]
     35
     36end#}}}
    2537function SetInput(inputs::Inputs,enum::IssmEnum,index::Int64,value::Bool) #{{{
    2638
     
    4860                @assert inputs.numberofelements > 0
    4961                if interp==P0Enum
    50                         inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofelements))
     62                        inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofelements),Vector{Float64}(undef,1))
    5163                elseif interp==P1Enum
    52                         inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofvertices))
     64                        inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofvertices),Vector{Float64}(undef,3))
    5365                else
    5466                        error("not supported yet")
     
    7183                @assert inputs.numberofvertices>0
    7284                if interp==P1Enum
    73                         inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofvertices))
     85                        inputs.lookup[enum] = ElementInput(enum,interp,zeros(inputs.numberofvertices),Vector{Float64}(undef,3))
    7486                else
    7587                        error("not supported yet")
     
    8597        input.values[indices] = values
    8698end#}}}
     99function GetInputValue(input::ElementInput,gauss::GaussTria,i::Int64)
     100
     101        if input.interp==P0Enum
     102                return input.element_value
     103        elseif input.interp==P1Enum
     104                value = input.element_values[1]*gauss.coords1[i] +  input.element_values[2]*gauss.coords2[i] +  input.element_values[3]*gauss.coords3[i]
     105        else
     106                error("not implemented yet")
     107        end
     108
     109        return value
     110
     111end#}}}
Note: See TracChangeset for help on using the changeset viewer.