An implementation of Quad4
Inheritance: FiniteElement, IHasMaterial
Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="node0"></param>
        /// <param name="node1"></param>
        /// <param name="node2"></param>
        /// <param name="node3"></param>
        /// <param name="material"></param>
        /// <param name="thickness"></param>
        /// <returns></returns>
        public LinearConstantStressQuadrilateral CreateLinearConstantStressQuadrilateral(IFiniteElementNode node0, IFiniteElementNode node1, IFiniteElementNode node2, IFiniteElementNode node3, IMaterial material, double thickness)
        {
            Guard.AgainstInvalidState(() => { return(!LinearConstantStressQuadrilateral.IsASupportedModelType(this.ModelType)); },
                                      "LinearConstantStressQuadrilateral are not available in a model of type {0}",
                                      this.ModelType);
            //TODO error check for non-planar nodes.  i.e. one node out of plane of the other three
            //TODO error check for out of sequence nodes.  Nodes should be sequenced in a clockwise or anti-clockwise manner.
            LinearConstantStressQuadrilateral newQuad = new LinearConstantStressQuadrilateral(node0, node1, node2, node3, material, thickness);

            if (this.repository != null)
            {
                this.repository.Add(newQuad);
            }

            return(newQuad);
        }
Esempio n. 2
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="node0"></param>
        /// <param name="node1"></param>
        /// <param name="node2"></param>
        /// <param name="node3"></param>
        /// <param name="material"></param>
        /// <param name="thickness"></param>
        /// <returns></returns>
        public LinearConstantStressQuadrilateral CreateLinearConstantStressQuadrilateral(IFiniteElementNode node0, IFiniteElementNode node1, IFiniteElementNode node2, IFiniteElementNode node3, IMaterial material, double thickness)
        {
            Guard.AgainstInvalidState(() => { return !LinearConstantStressQuadrilateral.IsASupportedModelType(this.ModelType); },
                                      "LinearConstantStressQuadrilateral are not available in a model of type {0}",
                                      this.ModelType);
            //TODO error check for non-planar nodes.  i.e. one node out of plane of the other three
            //TODO error check for out of sequence nodes.  Nodes should be sequenced in a clockwise or anti-clockwise manner.
            LinearConstantStressQuadrilateral newQuad = new LinearConstantStressQuadrilateral(node0, node1, node2, node3, material, thickness);
            if (this.repository != null)
            {
                this.repository.Add(newQuad);
            }

            return newQuad;
        }