ISAAR.MSolve.XFEM/Elements/XContinuumElement2D.cs
/// <summary>
/// BUG: This does not work. MSolve assumes all dofs of the same node have consecutive indices in the stiffness matrix.
/// </summary>
This does not work. MSolve assumes all dofs of the same node have consecutive indices in the stiffness matrix.
This does not work . MSolve assumes all dofs of the same node have consecutive indices in the stiffness matrix .
internal IReadOnlyList<IReadOnlyList<IDofType>> OrderDofsStandardFirst()
        {
            if (IsStandardElement) return standardDofTypes;
            else
            {
                var dofTypes = new List<IDofType>[Nodes.Count];
                for (int i = 0; i < Nodes.Count; ++i)
                {
                    dofTypes[i] = new List<IDofType>(4); 
                    dofTypes[i].AddRange(standardDofTypes[i]);
                }
                for (int i = 0; i < Nodes.Count; ++i)
                {
                    foreach (IEnrichmentItem2D enrichment in Nodes[i].EnrichmentItems.Keys)
                    {
                        dofTypes[i].AddRange(enrichment.Dofs);
                    }
                }
                return dofTypes;
            }
        }
internal IReadOnlyList < IReadOnlyList < IDofType > > OrderDofsStandardFirst ( ) { if ( IsStandardElement ) return standardDofTypes ; else { var dofTypes = new List < IDofType > [ Nodes . Count ] ; for ( int i = 0 ; i < Nodes . Count ; ++ i ) { dofTypes [ i ] = new List < IDofType > ( 4 ) ; dofTypes [ i ] . AddRange ( standardDofTypes [ i ] ) ; } for ( int i = 0 ; i < Nodes . Count ; ++ i ) { foreach ( IEnrichmentItem2D enrichment in Nodes [ i ] . EnrichmentItems . Keys ) { dofTypes [ i ] . AddRange ( enrichment . Dofs ) ; } } return dofTypes ; } }
BUG: This does not work.
BUG : This does not work .
//TODO: should they enriched dofs also be cached per element? // The dof order in increasing frequency of change is: node, enrichment item, enrichment function, axis. // A similar convention should also hold for each enrichment item: enrichment function major, axis minor. // WARNING: The order here must match the order in JoinStiffnessesStandardFirst(). // Standard dofs first // At least 2 * num std dofs // Then enriched dofs