Changeset 26648


Ignore:
Timestamp:
11/19/21 07:31:51 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: fixed problem with vertices being aliased

Location:
issm/trunk-jpl/src/jl/solve
Files:
4 edited

Legend:

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

    r26634 r26648  
    5454end#}}}
    5555function GetSolutionFromInputs(analysis::StressbalanceAnalysis,ug::Vector{Float64},element::Tria) #{{{
    56         error("STOP")
     56
     57        #Get dofs for this finite element
     58        doflist = GetDofList(element,GsetEnum)
     59        error("S")
     60
    5761end#}}}
    5862
  • issm/trunk-jpl/src/jl/solve/elements.jl

    r26629 r26648  
    3939   #Configure vertices
    4040   for i in 1:3
    41       element.vertices[i] = vertices[element.vertexids[i]]
     41                element.vertices[i] = vertices[element.vertexids[i]]
    4242   end
    4343
     
    5252       
    5353end # }}}
     54function GetDofList(element::Tria,setenum::IssmEnum) # {{{
     55
     56        #Define number of nodes
     57        numnodes = 3
     58
     59        #Determine size of doflist
     60        numdofs = 0
     61        for i in 1:numnodes
     62                numdofs += GetNumberOfDofs(element.nodes[i],GsetEnum)
     63        end
     64
     65        #Allocate doflist vector
     66        doflist = Vector{Int64}(undef,numdofs)
     67
     68        #enter dofs in doflist vector
     69        count = 0
     70        for i in 1:numnodes
     71                count = GetDofList(element.nodes[i],doflist,count,GsetEnum)
     72        end
     73
     74        println(doflist)
     75        error("S")
     76
     77end # }}}
  • issm/trunk-jpl/src/jl/solve/modules.jl

    r26634 r26648  
    4545        tempparams   = Parameters(Dict{IssmEnum,Parameter}())
    4646        tempinputs   = Inputs(-1,-1,Dict{IssmEnum,Input}())
    47         tempvertices = Vector{Vertex}(undef,3)
    48         tempnodes    = Vector{Node}(undef,3)
    4947
    5048        count = 0
     
    5654
    5755                #Call constructor and add to dataset elements
    58                 push!(elements,Tria(i,count,vertexids,tempvertices,nodeids,tempnodes,tempparams,tempinputs))
     56                push!(elements,Tria(i,count,vertexids,Vector{Vertex}(undef,3),nodeids,Vector{Node}(undef,3),tempparams,tempinputs))
    5957        end
    6058
     
    125123        gsize = NumberOfDofs(femmodel.nodes,GsetEnum)
    126124
    127         println(gsize)
    128         error("Stop ===")
    129 
    130125        #Initialize solution vector
    131126        ug = Vector{Float64}(undef,gsize)
  • issm/trunk-jpl/src/jl/solve/nodes.jl

    r26634 r26648  
    8686
    8787end# }}}
     88function GetDofList(node::Node,doflist::Vector{Int64},count::Int64,setenum::IssmEnum) #{{{
     89
     90        if setenum==GsetEnum
     91                for i in 1:node.gsize
     92                        count += 1
     93                        doflist[count] = node.gdoflist[i]
     94                end
     95        elseif setenum==FsetEnum
     96                for i=1:node.gsize
     97                        if  node.fdoflist[i]!=-1
     98                                count += 1
     99                                doflist[count] = node.fdoflist[i]
     100                        end
     101                end
     102        elseif setenum==SsetEnum
     103                for i=1:node.gsize
     104                        if  node.sdoflist[i]!=-1
     105                                count += 1
     106                                doflist[count] = node.sdoflist[i]
     107                        end
     108                end
     109        else
     110                error("not supported")
     111        end
     112
     113        return count
     114
     115end# }}}
    88116
    89117#Nodes functions
Note: See TracChangeset for help on using the changeset viewer.