text:
# How can find the 2D Voronoi cell area distribution?

I need to find the area distribution function of the 2D Voronoi cells in Mathematica version 11 and later. My old instructions for Mathematica 9 don't work anymore. How can I do it?

• If you were to provide your old instructions, we might be able to fix them. Feb 24 '19 at 18:19

Crossposted and much more extended discussion here (see comments):

https://community.wolfram.com/groups/-/m/t/1620190

I think it is a GammaDistribution and we can show it, see also this paper by Tanemura.

@C.E.'s answer is a good start, but without careful consideration, it might yield wrong stats. To gather good statistics, let's build a "large", 5000 cells VoronoiMesh within a unit Disk:

pts = RandomPoint[Disk[], 5000];
mesh = VoronoiMesh[pts, Axes -> True]

We see the stats are obviously offset by the presence of "border" cells of much larger area than regular inner cells have.

Let's exclude large cells by selecting only those within original region of random points distribution - unit Disk:

vor=MeshPrimitives[mesh,2];
vor//Length

5000

vorInner=Select[vor,RegionWithin[Disk[],#]&];
vorInner//Length

4782

We got fewer elements of course and they all are nice regular cells:

Graphics[{FaceForm[None], EdgeForm[Gray], vorInner}]

Now you can see that there is a minimum of distribution at zero area. Close to zero-area cells of course are not present much with the finite number of points per region (or finite density). So there is some prevalent finite mean area there.

areas = Area /@ vorInner;
hist = Histogram[areas, Automatic, "PDF", PlotTheme -> "Detailed"]

You can find a very close simple analytic distribution:

dis=FindDistribution[areas]

which matches very nicely the empirical histogram:

Show[hist, Plot[PDF[dis, x], {x, 0, .0015}]]

And now it is easy to find thing like:

{Mean[dis], Variance[dis], Kurtosis[dis]}

{0.0006175091492073445, 1.1396755130437449*^-7, 4.793269963533813}

Probability[x > .0005, x \[Distributed] dis]

0.5740480899719699

• i used to avoid Histogram preferring BinCounts, in this way i could obtain a table and then his fit. is there a possibility to determine the values of the bars? Apr 5 '19 at 18:25

First compute the Voronoi mesh:

pts = RandomReal[{-1, 1}, {25, 2}];
mesh = VoronoiMesh[pts]

Then compute the areas of the mesh primitives (MeshPrimitives yields a polygon for each Voronoi region):

areas = Area /@ MeshPrimitives[mesh, 2];
Histogram[areas]

## Decreasing effect of unbounded cells

As Vitaliy pointed out in his answer, there are unbounded cells in the Voronoi diagram. For example like this:

pts = RandomReal[{-1, 1}, {1000, 2}]
VoronoiMesh[pts]

In this case, it works well to adjust the bounding box:

VoronoiMesh[pts, {{-1, 1}, {-1, 1}}]

More generally, we might create a bounded Voronoi diagram with the methods described in Making a Voronoi diagram bounded by the convex hull.

## Removing unbounded cells

Chip provided a way, in a comment here below, to remove unbounded cells. Note that some of the unusually large cells are bounded and will be kept.

(* Chip's code for finding the points belonging to unbounded cells. *)
toRemove = MeshCoordinates[RegionBoundary[DelaunayMesh[pts]]];

We can now find the area distribution of the remaining cells like this:

sel = Select[
MeshPrimitives[mesh, 2],
Not@*Or @@ RegionMember[#, toRemove] &
];
Area /@ sel

We can inspect the remaining polygons like this:

colors = RandomColor[Length[sel]];
Show[
Graphics@Riffle[colors, sel],
Graphics[{Red, Point[toRemove]}]
]

• We can also query for the cell areas via PropertyValue[{mesh, 2}, MeshCellMeasure]. Feb 24 '19 at 18:42
• This could give wrong stats, C.E. and @ChipHurst. I posted a bit different version. Feb 24 '19 at 19:18
• @VitaliyKaurov Thanks, good observation. Now if only there was a simple way of selecting the unbounded elements and removing them... (Something to do with the boundary mesh?) Feb 24 '19 at 20:14
• @J.M.iscomputer-less Mathematically yes, but there are contrived examples due to machine precision. For example Tally[Table[ Length[MeshCoordinates[ ConvexHullMesh[{{0, -1}, {0, 0}, {1, Sqrt[2]}, {#, # Sqrt[2]} &@ RandomReal[{1, 3}]}]]], 1000]] Feb 25 '19 at 2:24
• @ChipHurst I thought about that, but they are considerably larger than the other ones. Consider e.g. this. It could skew statistics like the mean. Also, Vitaliy removed all such cells in his answer. But I changed the sentence to be clearer. Feb 25 '19 at 3:54


text:
Skip navigation
Please use this identifier to cite or link to this item: http://arks.princeton.edu/ark:/88435/dsp01dv13zt296
 Title: Molecular Design to Control Device Behavior of Organic Electronics Authors: LIAO, KUNG-CHING Advisors: Schwartz, Jeffrey Contributors: Chemistry Department Keywords: Dye-sensitized solar cellsMolecular electroincsOrganic thin-film transistorsSelf-assembled monolayersSurface chemistry Subjects: Chemistry Issue Date: 2012 Publisher: Princeton, NJ : Princeton University Abstract: Self-assembled monolayers of phosphonates (SAMPs) were designed, studied, and integrated into three different types of organic electronics. Excellent device characteristics were measured for a pentacene-based organic thin-film transistor (OTFT) where the SiO2 gate dielectric is terminated with a self-assembled monolayer of 9,10-dinaphthyl-2-phosphonoanthracene in which calculated molecular spacings are about 0.7 nm. This creates channels that are on the order of the "thickness" of an aromatic π system, which could allow for intercalation of pentacene units, favoring a π-stacking motif for this first pentacene layer. Devices made using a series of SAMPs of such anthracene analogs showed improved mobilities, up to 4.7 cm2/Vs, which were strongly SAMP structure-dependent. SAMPs of diphosphonoanthracenes and a novel self-assembled organophosphonate duplex ensemble were synthesized on nanometer-thick SiO2-coated, highly doped silicon electrodes. The duplex ensemble was synthesized by first treating the SAMP prepared from an aromatic diphosphonic acid with a titanium alkoxide to form a titanium complex-terminated one; this was followed by addition of a second equivalent of the aromatic diphosphonic acid. SAMP homogeneity, roughness, and thickness were evaluated by AFM; SAMP film thickness and the structural contributions of each unit in the duplex were measured by X-ray reflection (XRR). The duplex was compared with aliphatic and aromatic monolayer SAMPs to determine the effect of stacking on electrochemical properties; these were measured by impedance spectroscopy using aqueous electrolytes in the frequency range 20 Hz to 100 kHz, and data were analyzed using resistance−capacitance network based equivalent circuits. For the 11-hydroxyundecylphosphonate SAMP, CSAMP = 2.6 ± 0.2 μF/cm2, consistent with its measured layer thickness (ca. 1.1 nm). For the anthracene-based SAMPs, CSAMP = 6−10 μF/cm2, which is primarily attributed to a higher effective dielectric constant for the aromatic moieties (ε = 5−10) compared to the aliphatic one; impedance spectroscopy measured the additional capacitance of the second aromatic monolayer in the duplex (2ndSAMP) to be CTi/2ndSAMP = 6.8 ± 0.7 μF/cm2, in series with the first. The preparation of titanium or hafnium oxide thin-films is described in which the silicon substrate is first treated with vapor of titanium or hafnium tetra(tert-butoxide) and then thermolyzed to give several monolayers of titanium or hafnium oxides that are attached to the silicon surface. The thickness of this oxide layer can be controlled by the vapor exposure time. Two series of homologous SAMPs and self-assembled monolayers of carboxylates (SAMCs) that are based on oligothiophene dyes were synthesized on TiO2 thin film electrodes and were compared for their use in dye-sensitized solar cells (DSSCs). (Cyanovinyl)carboxylate- and phosphonate-terminated oligothiophene were also compared. In each case, the phosphonate dyes were compared with carboxylate analogs to determine the effect of the anchoring groups on photochemical properties in solution, which were measured by UV/Vis absorption spectroscopy. The growth of SAMPs or SAMCs on TiO2 electrodes was accomplished either by "tethering by aggregation and growth" (T-BAG) or by solution dipping. Surface roughness and homogeneity, elemental composition, and thickness of the SAMP or SAMC monolayers were evaluated by AFM, XPS, and ellipsometry. Molecular loadings and chemical absorptivity of SAMPs and SAMCs were determined by QCM analysis, and the stability of bonding between the dyes and the TiO2 was evaluated by measuring desorption processes; the carboxylates underwent significant dissociation in aqueous media but the phosphonates did not. DSSCs were prepared from each congener and were studied under irradiation from a AM 1.5G solar light source. The DSSC made using a SAMP of sexithiophene (6TP) had total power conversion efficiency (η) up to 5%. URI: http://arks.princeton.edu/ark:/88435/dsp01dv13zt296 Alternate format: The Mudd Manuscript Library retains one bound copy of each dissertation. Search for these copies in the library's main catalog Type of Material: Academic dissertations (Ph.D.) Language: en Appears in Collections: Chemistry

Files in This Item:
File Description SizeFormat
LIAO_princeton_0181D_10371.pdf10.17 MBAdobe PDF

Items in Dataspace are protected by copyright, with all rights reserved, unless otherwise indicated.

format: plain


text:
# An example of mixed elliptic problem using lowest-order Raviart Thomas element

I try to solve the following mixed second order elliptic PDE in the domain $D=[0, 1]^2$

\begin{eqnarray*} v+\nabla p=&0 \quad &\text{in} \quad D,\\ \text{div}(v)=&1/2 \quad &\text{in} \quad D,\\ v\cdot n =&0 \quad &\text{on} \quad \partial D,\\ \end{eqnarray*} where $n$ is the unit outward normal vector for $D$. Divided the domain into four sub-squares: $[0,0.5]^2$, $[0.5,1] \times [0, 0.5]$, $[0,0.5] \times [0.5,1]$ and $[0.5,1]^2$, denote the partition as $\mathcal{T}^h$. We want to solve the above problem using (rectangular) lowest-order Raviart Thomas element $RT_0$.

If we take the reference square to be $[0,1]^2$, then we can compute four $RT$ basis functions as follow $$\psi_1(x_1,x_2) = (x_1,0)^T$$ $$\psi_2(x_1,x_2) = (0, x_2-1)^T$$ $$\psi_3(x_1,x_2) = (x_1-1, 0)^T$$ $$\psi_4(x_1,x_2) = (0,x_2)^T.$$

One can transform these basis functions to our sub-squares defined above. For example, in $[0,0.5]^2$, $$\tilde{\psi_1} (x_1,x_2) = (2x_1,0)^T.$$

The weak formulation of the above PDE is: find $(v,p)\in V_h \times Q$ such that \begin{eqnarray*} \int_D v \cdot w - \int_D p \text{div}(w)= & 0 \quad & \forall w \in V_h,\\ \int_D \text{div}(v) q = &\frac{1}{2}\int_D q \quad & \forall q \in Q, \end{eqnarray*} where $V_h = \{ w\in \big(L^2(D)\big)^2: w\cdot n =0\}$ and $Q = \{ q: q|_K = const, K\in \mathcal{T}^h\}.$ After we derive the weak formulation, the finite element system will look like the following $$\left [ \begin{array}{cc} B & C \\ C^T & 0 \end{array} \right ] \left [ \begin{array}{c} \tilde{v} \\ \tilde{p} \end{array} \right ] = \left [ \begin{array}{c} f_v \\ f_p \end{array} \right ].$$ Here is my question: In our special case, it should be $B,C \in \mathbb{R}^{4\times 4}$ and $\tilde{f_v}$ zero vector. I am not clear that which $RT$ basis functions I should consider when forming the finite element matrix. I think there is one basis function per interior edge for $RK_0$. Also, I want to know how the matrices $B$ and $C$ and the vector $\tilde{f_p}$ exactly look like. (Both the numeric and analytical expression)

Another question is: What is the compact support of these $RT$ basis functions from the corresponding sub-squares? Say $\tilde{\psi_1}$ in the sub-square $[0,0.5]^2$, what is the compact support of $\tilde{\psi_1}$? How about the other $\tilde{\psi_i}$ in the same sub-squares $[0,0.5]^2$?

Remark: To approximate $v$, we use $RT_0$ basis functions. For $p$, we use the piecewise constant function.

• Don't we need another boundary condition? Can you write down the weak form? – nicoguaro Apr 5 '17 at 15:38
• @nicoguaro The weak form is now added. I think it is enough to consider $v \cdot n =0$ on the boundary $\partial D$. – Simon Pun Apr 5 '17 at 16:26
• The condition $v \cdot n=0$ is incompatible with your PDE since $\int_D div(v) = \int_D 1/2$ becomes $0 = \int_D 1/2$. – cfdlab May 6 '17 at 3:02

The size of the system depends on whether you eliminate the degrees of freedom from your system or not. If you eliminate them, then $B$ will be a 4x4 matrix (one unknown per interior edge), $C$ will be also 4x4 (but in general case it will be rectangular).

Assuming that you enumerate first dofs for $x$-components and then for $y$-components in a standard way, $B$ will be a block diagonal matrix with blocks corresponding to $x$ and $y$-directions. Each block is (before elimination of boundary dofs) a tridiagonal matrix with a row $$\left\{ h_x h_y \frac{1}{6}, h_x h_y \frac{4}{6}, h_x h_y \frac{1}{6} \right\}$$

If you again use the standard enumeration for dofs for $p$, matrix $C$ before elimination will be a block matrix which basically gives you simply the two-point approximation of the $- \nabla$ operator, with entries $\pm h_x$ and $\pm h_y$.

The support of each basis function for $\mathbf{v}$ are the two rectangles which shared the edge with the corresponding degree of freedom.

Vector $\tilde{f_p}$ has the elements $\frac{1}{2}\int_D \chi_j$ where $\chi_j$ is the characteristic function of a mesh cell, that is, it will be just the area which equals $h_x h_y$.

I suggest you first write down the local $B_{loc}$ and $C_{loc}$ matrices and then look at the assembling procedure which will produce the global matrix in a straight-forward way.

• What do you mean by "eliminate the degrees of freedom from the system"? – Simon Pun Apr 6 '17 at 2:01
• There are two approaches, and what I like is to first assemble a global matrix using natural boundary conditions (I e. Including boundary dofs) and only then eliminate them by either reducing a matrix so that the vector of unknowns consist only of the actual dofs, or to replace the corresponding rows by something like $(0,...,0,1,0,...,0)$. And one should change the righthand side appropriately. – VorKir Apr 6 '17 at 2:06
• Eliminate boundary dofs, mobile version makes me suffer, sorry – VorKir Apr 6 '17 at 2:08


text:
# Solve the IVP: {eq}\displaystyle y' = \sin^2 (x - y),\ y\bigg(\dfrac \pi 2\bigg) = \dfrac \pi 4 {/eq}

## Question:

Solve the IVP:

{eq}\displaystyle y' = \sin^2 (x - y),\ y\bigg(\dfrac \pi 2\bigg) = \dfrac \pi 4 {/eq}

## Initial Value Problem

A differential equation is an equation which tells relations between the functions along with their derivative.

Initial value problems are ordinary differential equation along with the initial condition which when applied to the solution of the differential equation , provides the value of unknown function in a domain.

To solve the initial problem, first solve the differential equation and then substitute the initial condition into the solution to find the value of unknown function {eq}C {/eq}.

Become a Study.com member to unlock this answer!

Rewrite the given problem,

{eq}\dfrac{dy}{dx}={{\sin }^{2}}\left( x-y \right),y\left( \dfrac{\pi }{2} \right)=\dfrac{\pi }{4} {/eq}

Let...


text:
Copied to
clipboard

## G = C2×D4⋊D4order 128 = 27

### Direct product of C2 and D4⋊D4

direct product, p-group, metabelian, nilpotent (class 3), monomial

Series: Derived Chief Lower central Upper central Jennings

 Derived series C1 — C2×C4 — C2×D4⋊D4
 Chief series C1 — C2 — C22 — C2×C4 — C22×C4 — C23×C4 — C22×C4○D4 — C2×D4⋊D4
 Lower central C1 — C2 — C2×C4 — C2×D4⋊D4
 Upper central C1 — C23 — C23×C4 — C2×D4⋊D4
 Jennings C1 — C2 — C2 — C2×C4 — C2×D4⋊D4

Generators and relations for C2×D4⋊D4
G = < a,b,c,d,e | a2=b4=c2=d4=e2=1, ab=ba, ac=ca, ad=da, ae=ea, cbc=dbd-1=ebe=b-1, dcd-1=b-1c, ece=bc, ede=d-1 >

Subgroups: 844 in 406 conjugacy classes, 116 normal (28 characteristic)
C1, C2, C2, C2, C4, C4, C4, C22, C22, C22, C8, C2×C4, C2×C4, C2×C4, D4, D4, Q8, Q8, C23, C23, C23, C22⋊C4, C4⋊C4, C4⋊C4, C2×C8, C2×C8, D8, SD16, C22×C4, C22×C4, C22×C4, C2×D4, C2×D4, C2×Q8, C2×Q8, C4○D4, C24, C24, C22⋊C8, D4⋊C4, Q8⋊C4, C2×C22⋊C4, C2×C4⋊C4, C4⋊D4, C4⋊D4, C22×C8, C2×D8, C2×D8, C2×SD16, C2×SD16, C23×C4, C23×C4, C22×D4, C22×D4, C22×Q8, C2×C4○D4, C2×C4○D4, C2×C22⋊C8, C2×D4⋊C4, C2×Q8⋊C4, D4⋊D4, C2×C4⋊D4, C22×D8, C22×SD16, C22×C4○D4, C2×D4⋊D4
Quotients: C1, C2, C22, D4, C23, C2×D4, C24, C22≀C2, C4○D8, C8⋊C22, C22×D4, D4⋊D4, C2×C22≀C2, C2×C4○D8, C2×C8⋊C22, C2×D4⋊D4

Smallest permutation representation of C2×D4⋊D4
On 64 points
Generators in S64
(1 17)(2 18)(3 19)(4 20)(5 56)(6 53)(7 54)(8 55)(9 16)(10 13)(11 14)(12 15)(21 33)(22 34)(23 35)(24 36)(25 32)(26 29)(27 30)(28 31)(37 51)(38 52)(39 49)(40 50)(41 47)(42 48)(43 45)(44 46)(57 63)(58 64)(59 61)(60 62)
(1 2 3 4)(5 6 7 8)(9 10 11 12)(13 14 15 16)(17 18 19 20)(21 22 23 24)(25 26 27 28)(29 30 31 32)(33 34 35 36)(37 38 39 40)(41 42 43 44)(45 46 47 48)(49 50 51 52)(53 54 55 56)(57 58 59 60)(61 62 63 64)
(1 51)(2 50)(3 49)(4 52)(5 21)(6 24)(7 23)(8 22)(9 45)(10 48)(11 47)(12 46)(13 42)(14 41)(15 44)(16 43)(17 37)(18 40)(19 39)(20 38)(25 61)(26 64)(27 63)(28 62)(29 58)(30 57)(31 60)(32 59)(33 56)(34 55)(35 54)(36 53)
(1 31 9 35)(2 30 10 34)(3 29 11 33)(4 32 12 36)(5 40 64 42)(6 39 61 41)(7 38 62 44)(8 37 63 43)(13 22 18 27)(14 21 19 26)(15 24 20 25)(16 23 17 28)(45 55 51 57)(46 54 52 60)(47 53 49 59)(48 56 50 58)
(2 4)(5 63)(6 62)(7 61)(8 64)(10 12)(13 15)(18 20)(21 26)(22 25)(23 28)(24 27)(29 33)(30 36)(31 35)(32 34)(37 40)(38 39)(41 44)(42 43)(45 48)(46 47)(49 52)(50 51)(53 60)(54 59)(55 58)(56 57)

G:=sub<Sym(64)| (1,17)(2,18)(3,19)(4,20)(5,56)(6,53)(7,54)(8,55)(9,16)(10,13)(11,14)(12,15)(21,33)(22,34)(23,35)(24,36)(25,32)(26,29)(27,30)(28,31)(37,51)(38,52)(39,49)(40,50)(41,47)(42,48)(43,45)(44,46)(57,63)(58,64)(59,61)(60,62), (1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16)(17,18,19,20)(21,22,23,24)(25,26,27,28)(29,30,31,32)(33,34,35,36)(37,38,39,40)(41,42,43,44)(45,46,47,48)(49,50,51,52)(53,54,55,56)(57,58,59,60)(61,62,63,64), (1,51)(2,50)(3,49)(4,52)(5,21)(6,24)(7,23)(8,22)(9,45)(10,48)(11,47)(12,46)(13,42)(14,41)(15,44)(16,43)(17,37)(18,40)(19,39)(20,38)(25,61)(26,64)(27,63)(28,62)(29,58)(30,57)(31,60)(32,59)(33,56)(34,55)(35,54)(36,53), (1,31,9,35)(2,30,10,34)(3,29,11,33)(4,32,12,36)(5,40,64,42)(6,39,61,41)(7,38,62,44)(8,37,63,43)(13,22,18,27)(14,21,19,26)(15,24,20,25)(16,23,17,28)(45,55,51,57)(46,54,52,60)(47,53,49,59)(48,56,50,58), (2,4)(5,63)(6,62)(7,61)(8,64)(10,12)(13,15)(18,20)(21,26)(22,25)(23,28)(24,27)(29,33)(30,36)(31,35)(32,34)(37,40)(38,39)(41,44)(42,43)(45,48)(46,47)(49,52)(50,51)(53,60)(54,59)(55,58)(56,57)>;

G:=Group( (1,17)(2,18)(3,19)(4,20)(5,56)(6,53)(7,54)(8,55)(9,16)(10,13)(11,14)(12,15)(21,33)(22,34)(23,35)(24,36)(25,32)(26,29)(27,30)(28,31)(37,51)(38,52)(39,49)(40,50)(41,47)(42,48)(43,45)(44,46)(57,63)(58,64)(59,61)(60,62), (1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16)(17,18,19,20)(21,22,23,24)(25,26,27,28)(29,30,31,32)(33,34,35,36)(37,38,39,40)(41,42,43,44)(45,46,47,48)(49,50,51,52)(53,54,55,56)(57,58,59,60)(61,62,63,64), (1,51)(2,50)(3,49)(4,52)(5,21)(6,24)(7,23)(8,22)(9,45)(10,48)(11,47)(12,46)(13,42)(14,41)(15,44)(16,43)(17,37)(18,40)(19,39)(20,38)(25,61)(26,64)(27,63)(28,62)(29,58)(30,57)(31,60)(32,59)(33,56)(34,55)(35,54)(36,53), (1,31,9,35)(2,30,10,34)(3,29,11,33)(4,32,12,36)(5,40,64,42)(6,39,61,41)(7,38,62,44)(8,37,63,43)(13,22,18,27)(14,21,19,26)(15,24,20,25)(16,23,17,28)(45,55,51,57)(46,54,52,60)(47,53,49,59)(48,56,50,58), (2,4)(5,63)(6,62)(7,61)(8,64)(10,12)(13,15)(18,20)(21,26)(22,25)(23,28)(24,27)(29,33)(30,36)(31,35)(32,34)(37,40)(38,39)(41,44)(42,43)(45,48)(46,47)(49,52)(50,51)(53,60)(54,59)(55,58)(56,57) );

G=PermutationGroup([[(1,17),(2,18),(3,19),(4,20),(5,56),(6,53),(7,54),(8,55),(9,16),(10,13),(11,14),(12,15),(21,33),(22,34),(23,35),(24,36),(25,32),(26,29),(27,30),(28,31),(37,51),(38,52),(39,49),(40,50),(41,47),(42,48),(43,45),(44,46),(57,63),(58,64),(59,61),(60,62)], [(1,2,3,4),(5,6,7,8),(9,10,11,12),(13,14,15,16),(17,18,19,20),(21,22,23,24),(25,26,27,28),(29,30,31,32),(33,34,35,36),(37,38,39,40),(41,42,43,44),(45,46,47,48),(49,50,51,52),(53,54,55,56),(57,58,59,60),(61,62,63,64)], [(1,51),(2,50),(3,49),(4,52),(5,21),(6,24),(7,23),(8,22),(9,45),(10,48),(11,47),(12,46),(13,42),(14,41),(15,44),(16,43),(17,37),(18,40),(19,39),(20,38),(25,61),(26,64),(27,63),(28,62),(29,58),(30,57),(31,60),(32,59),(33,56),(34,55),(35,54),(36,53)], [(1,31,9,35),(2,30,10,34),(3,29,11,33),(4,32,12,36),(5,40,64,42),(6,39,61,41),(7,38,62,44),(8,37,63,43),(13,22,18,27),(14,21,19,26),(15,24,20,25),(16,23,17,28),(45,55,51,57),(46,54,52,60),(47,53,49,59),(48,56,50,58)], [(2,4),(5,63),(6,62),(7,61),(8,64),(10,12),(13,15),(18,20),(21,26),(22,25),(23,28),(24,27),(29,33),(30,36),(31,35),(32,34),(37,40),(38,39),(41,44),(42,43),(45,48),(46,47),(49,52),(50,51),(53,60),(54,59),(55,58),(56,57)]])

38 conjugacy classes

 class 1 2A ··· 2G 2H ··· 2M 2N 2O 4A ··· 4H 4I 4J 4K 4L 4M 4N 8A ··· 8H order 1 2 ··· 2 2 ··· 2 2 2 4 ··· 4 4 4 4 4 4 4 8 ··· 8 size 1 1 ··· 1 4 ··· 4 8 8 2 ··· 2 4 4 4 4 8 8 4 ··· 4

38 irreducible representations

 dim 1 1 1 1 1 1 1 1 1 2 2 2 2 2 4 type + + + + + + + + + + + + + + image C1 C2 C2 C2 C2 C2 C2 C2 C2 D4 D4 D4 D4 C4○D8 C8⋊C22 kernel C2×D4⋊D4 C2×C22⋊C8 C2×D4⋊C4 C2×Q8⋊C4 D4⋊D4 C2×C4⋊D4 C22×D8 C22×SD16 C22×C4○D4 C22×C4 C2×D4 C2×Q8 C24 C22 C22 # reps 1 1 1 1 8 1 1 1 1 3 4 4 1 8 2

Matrix representation of C2×D4⋊D4 in GL6(𝔽17)

 1 0 0 0 0 0 0 1 0 0 0 0 0 0 16 0 0 0 0 0 0 16 0 0 0 0 0 0 16 0 0 0 0 0 0 16
,
 16 0 0 0 0 0 0 16 0 0 0 0 0 0 16 0 0 0 0 0 0 16 0 0 0 0 0 0 0 1 0 0 0 0 16 0
,
 0 1 0 0 0 0 1 0 0 0 0 0 0 0 16 2 0 0 0 0 0 1 0 0 0 0 0 0 3 14 0 0 0 0 14 14
,
 0 16 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 16 0 0 0 0 0 0 0 13 0 0 0 0 13 0
,
 1 0 0 0 0 0 0 16 0 0 0 0 0 0 1 0 0 0 0 0 1 16 0 0 0 0 0 0 1 0 0 0 0 0 0 16

G:=sub<GL(6,GF(17))| [1,0,0,0,0,0,0,1,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,16],[16,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,0,0,1,0],[0,1,0,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,0,0,2,1,0,0,0,0,0,0,3,14,0,0,0,0,14,14],[0,1,0,0,0,0,16,0,0,0,0,0,0,0,1,1,0,0,0,0,0,16,0,0,0,0,0,0,0,13,0,0,0,0,13,0],[1,0,0,0,0,0,0,16,0,0,0,0,0,0,1,1,0,0,0,0,0,16,0,0,0,0,0,0,1,0,0,0,0,0,0,16] >;

C2×D4⋊D4 in GAP, Magma, Sage, TeX

C_2\times D_4\rtimes D_4
% in TeX

G:=Group("C2xD4:D4");
// GroupNames label

G:=SmallGroup(128,1732);
// by ID

G=gap.SmallGroup(128,1732);
# by ID

G:=PCGroup([7,-2,2,2,2,-2,2,-2,253,758,352,2804,1411,172]);
// Polycyclic

G:=Group<a,b,c,d,e|a^2=b^4=c^2=d^4=e^2=1,a*b=b*a,a*c=c*a,a*d=d*a,a*e=e*a,c*b*c=d*b*d^-1=e*b*e=b^-1,d*c*d^-1=b^-1*c,e*c*e=b*c,e*d*e=d^-1>;
// generators/relations

׿
×
𝔽


text:
# 5.2.3 Example: Approximating a Standard Deviation

###### 5.2.3  Example: Approximating a Standard Deviation

Suppose X ~ N(0,1), and consider the function

[5.7]

which is graphed in Exhibit 5.3.

Exhibit 5.3: Graph of the function f.

We use this function to define a new random variable Y = f(X). Although X is unbounded, we see in Exhibit 5.3 that Y is bounded, so the mean μ of Y must exist. We also see that f is symmetrical through the origin. Based upon this, and the symmetry of the standard normal distribution, we infer that the mean μ of Y is 0.

Suppose we need to determine the variance σ2 of Y. Because Y is bounded, this also must exist. Analytically solving for σ2 is a difficult problem, but we can easily approximate a solution with the Monte Carlo method. We define a sample {X[1], X[2], … , X[100]} for X, and construct a realization {x[1], x[2], … , x[100]} for this. We will discuss algorithms for doing so shortly. Our realization is indicated in Exhibit 5.4, and is plotted as a histogram in Exhibit 5.5.

Exhibit 5.4: A realization of a sample {X[1], X[2], … , X[100]} for X.
Exhibit 5.5: Histogram of the realization {x[1], x[2], …, x[199]}.

Based upon each value x[k], we use [5.7] to calculate the corresponding value y[k] = f(x[k]). Results comprise a realization {y[1], y[2], … , y[100]} of a sample {Y[1], Y[2], … , Y[100]} for Y and are indicated in Exhibits 5.6 and 5.7.

Exhibit 5.6: Values {y[1], y[2], … , y[100]} calculated from the x[k] of Exhibit 5.4 using [5.7].
Exhibit 5.7: Histogram of values y[k].

Because we know the mean of Y, we apply sample estimator [4.26] to the y[k] to obtain an approximate value for the variance σ2 of Y:

[5.8]


text:
# Abstract

The problem of symmetric cross-section beams under oblique bending is well known to professional designers and academy. In fact, symmetric elements make up most of the cross-sections defined in design. The case of the asymmetric cross-sections is, however, little discussed in literature, but is a particular problem, especially in bridge girder design, joined in loco. The asymmetry generates oblique bending when the load is out of the principal inertia planes. Thus, this article presents a comparison of results between a numerical solution of the elastic curve differential equations, and a Finite Element Model (FEM), for a 10m span reinforced concrete beam, with gutter-shaped asymmetric cross-section, whose only load is its own weight. The required geometric properties were determined by the Green Theorem. From theoretical study, the elastic curve differential equations were obtained, in the vertical and horizontal directions. The angular displacement conditions at the beginning of the span were obtained by the Virtual Work Method. After integration using the Runge-Kutta Method, the maximum displacements in the vertical and horizontal directions, in the middle span, are 0.904cm and 0.611cm, respectively (1.091cm resultant displacement). The Finite Element Model was performed in ANSYS 9.0. The resultant displacement of the numerical model was 1.16cm. Concurrently, the axial stresses were studied in the middle span. The stress results for both approaches (Runge-Kutta and FEM) differed by no more than 8.72%. These results guarantee reliability to the Runge-Kutta integration, from a design view point, to the proposed problem analysis in Serviceability Limit State.

Keywords:
asymmetric cross-sections; elastic curve; Runge-Kutta Method; Finite Element Method

# 1. Introduction

Most structural elements in civil construction (beams, columns) consist of straight bars with symmetric cross-section. The bending moments are treated separately in both directions (vertical and horizontal) and the bending axial stresses are superimposed, since the element has axes of symmetry.

In the case of the symmetric cross-sections, if a bending moment is applied in the direction of an axis of symmetry, the element displacement will occur in the plane perpendicular to that bending moment, and the Elastic Neutral Axis (ENA) will coincide with the bending moment.

The asymmetric cross-sections are frequently applied, for example, in roofing purlins, where steel profiles have unconventional cross-sections. These situations do not characterize a great problem, considering the low loads and spans to which they are submitted.

An important problem for asymmetric cross-sections is the case of precast concrete girders with unconventional geometry, which are joined at the construction site to form a symmetric section. Thus, during their casting and prestressing, and even the transport to the construction site, they are asymmetric cross-section girders subject to oblique bending. Besides the prestressing, other loads that also cause oblique flexion in this type of element are the dead load and other live loads.

For these situations, the transverse displacement occurs in 2 directions for any applied load; in a direction perpendicular to the Elastic Neutral Axis. The ENA direction is also unknown in the problem.

This work presents the study of a gutter-shaped cross-section beam (asymmetric) under its dead load, applied in vertical direction, determination of the geometric properties using Green Theorem, flexure axial stresses and transversal displacements by numerical method (Runge-Kutta). A finite element model is introduced to corroborate the results.

# 2. Materials and methods

## 2.1 Green Theorem

According to Kreyszig (2009)KREYSZIG, E., Matemática superior para engenharia. (9. ed). Rio de Janeiro: LTC, 2009. v. 1. (Trad. Luís Antonio Fajardo Pontes)., the Green Theorem transforms double integrals in a region R of the xy plane into contour integrals in the C contour of this region, according to Equation 1:

(1) $∬ R ∂ F 2 ∂ x − ∂ F 1 ∂ y dxdy = ∮ C F 1 dx + F 2 dy$

This equation can be worked for discrete straight fragments in the plane and, thus, it is possible to obtain the equations that determine the geometric properties of any cross-section, from the coordinates of their vertices. The geometric properties, area, static moments in x and y axes, moments of inertia in x and y axes, and product of inertia are given by Equations (2) to (7), respectively (KREYSZIG, 2009KREYSZIG, E., Matemática superior para engenharia. (9. ed). Rio de Janeiro: LTC, 2009. v. 1. (Trad. Luís Antonio Fajardo Pontes).):

(2) $A = 1 2 ∑ i = 1 N x i + 1 + x i Δ y$
(3) $S x = 1 6 ∑ i = 1 N 6 x i y i + 3 x i Δ y + Δ x . 3 y i + 2 Δ y Δ y$
(4) $S y = 1 6 ∑ i = 1 N 3 x i 2 + Δ x . 3 x i + Δ x Δ y$
(5) $I x = ∑ i = 1 N x i y i 2 + y i Δ y + Δ y 2 3 + Δ x . y i 2 2 + 2 y i Δ y 3 + Δ y 2 4 Δ y$
(6) $I y = 1 3 ∑ i = 1 N x i 3 + Δ x 3 x i 2 2 + x i Δ x + Δ x 2 4 Δ y$
(7) $I xy = 1 2 ∑ i = 1 N x i 2 y i + Δ y 2 + Δ x x i y i + 2 x i Δ y 3 + Δ x 2 y i 3 + Δ y 4 Δ y$

With the definition of a matrix of coordinates of the cross-section N vertices, and using the previous equations, the direction of the principal axes of inertia can be found.

## 2.2 Axial stresses - Fundaments

According to Oden and Ripperger (1981)ODEN, J. T., RIPPERGER, E. A. Mechanics of elastic structures. (2. ed.). McGraw-Hill, 1981., the axial stresses in a coplanar curved beam, are obtained from the force resultants acting in the cross-section. For this, the strain of a "y" generic position in the cross-section is studied (Figure 1).

Figure 1
Axial and tangential stresses for curved beams (ODEN; RIPPERGER, 1981ODEN, J. T., RIPPERGER, E. A. Mechanics of elastic structures. (2. ed.). McGraw-Hill, 1981.)

The validity of the hypothesis of plane sections (Bernoulli Hypothesis) is assumed and that the displacements in the cross-section are contained in a plane. One has, therefore, in the s-direction (Equation 8):

(8) $u = a ¯ + b ¯ . y + c ¯ . z$

The constants a, b and c functions of s (cross-section axis). The ratio between the lengths Δs and Δsy is given by Equation 9, from the analysis of Figure 1:

(9) $ds ds y = 1 1 − y R$

The axial strain in the generic y-position in the cross-section is given by Equation 10:

(10) $ε sy = du ds y = d a ¯ ds ds ds y + d b ¯ ds ds ds y y + d c ¯ ds ds ds y z = a + b . y + c . z ds ds y$

After differentiating the function u (Equation 8), and applying the chain rule with Equation 9, the axial strain of the generic y-coordinate is obtained. By Hooke's Law for elastic materials, and neglecting the Poisson effects, the axial stress in the y-coordinate is given (Equation 11):

(11) $σ sy = E . ε sy = E 1 − y R a + b . y + c . z$

With Equation 11, the resultants of axial stresses (Ns axial force, My and Mz moments) can be reached by integration along the cross-section area. With the aid of Maclaurin series to simplify the integrals of the resultants, the constants a, b and c of Equation 11 are determined. By eliminating the subscript y of this equation, the axial stresses of flexo-compression/tension are given by Equation 12:

(12) $σ s = N s A − M z AR + M z J y − M y J yz J y J z − J yz 2 y 1 − y R + M y J z − M z J yz J y J z − J yz 2 z 1 − y R$

In this equation Jy, Jz and Jyz are constants of inertia of the cross-section, Equation 13:

(13) $J y = ∫ A z 2 dA 1 − y R J z = ∫ A y 2 dA 1 − y R J yz = ∫ A yzdA 1 − y R$

By making R→∞, they are particularized for straight bars, and the constants of inertia become moments of inertia and product of inertia (see Equation 14). With Equation 14, the direction of the Elastic Neutral Axis (ENA) and the axial stresses can be found.

(14) $σ s z , y = N s A + M z I y − M y I yz I y I z − I y z 2 y + M y I z − M z I yz I y I z − I y z 2 z$

## 2.3 Elastic curve - Fundaments

Considering isotropic elastic-linear material, the principle of superimposition can be applied. The cross-section displacement is a superimposition of the baricentric axis displacement (u0), shortening of the cross-section vertical coordinates by wedging (u1) and displacement by cross-section rotation around the y and z axes (u2), according to Equation 15:

(15) $u = u 0 + u 1 + u 2$

Figures 2 to 3 illustrate the displacements.

Figure 2
Axes and displacement u0 (ODEN; RIPPERGER, 1981ODEN, J. T., RIPPERGER, E. A. Mechanics of elastic structures. (2. ed.). McGraw-Hill, 1981.).

Figure 3
Displacements u1 e u2 (ODEN; RIPPERGER, 1981ODEN, J. T., RIPPERGER, E. A. Mechanics of elastic structures. (2. ed.). McGraw-Hill, 1981.).

For a generic vertical y-position, the Equation 15 can be particularized according to:

(16) $u = u 0 y + u 1 y + u 2 y$

Thus, the cross-section y-position strain is given by the derivative of the Equation 16 with respect to the sy fiber, according to Equation 17:

(17) $ε sy = du ds y = du 0 y ds y + du 1 y ds y + du 2 y ds y = ε s 0 + ε s 1 + ε s 2$

To the first term of Equation 17, the chain rule can be applied, since u0y (u0(s (sy))), in analogy to Equation 9, resulting:

(18) $ε s 0 = du 0 y ds y = du 0 y du 0 du 0 ds ds ds y = 1 − y R du 0 ds 1 1 − y R = du 0 ds$

For the second term of Equation 17, the strain εs1 can be obtained from the left-hand side of Figure 3. Thus, Equation 19:

(19) $ε s 1 = du 1 y ds y = R − y − v Δ Φ − R − y Δ Φ R − y Δ Φ = − v R − y = − y . v 1 − y R R 2 − v R$

For the third term of Equation 17, the right-hand side of Figure 3 is taken as the composition for displacement u2. Therefore, Equation 20:

(20) $ε s 2 = du 2 y ds y = du 2 y ds ds ds y = 1 1 − y R − y d 2 v ds 2 − z d 2 w ds 2$

Finally, the sum of the strains given by Equations 18, 19 and 20 is equal to the axial stress σs (given by Equation 12) divided by the modulus of elasticity (Hooke's Law):

(21) $du 0 ds − v R − d 2 v ds 2 + v R 2 y 1 − y R − d 2 w ds 2 z 1 − y R = σ s E$

Working the terms, along with Equation 12, the differential equations of the elasticity curve for a coplanar curved beam under oblique bending are given by the Equations of (22): Working the terms, along with Equation 12, the differential equations of the elasticity curve for a coplanar curved beam under oblique bending are given by the Equations of (22):

(22) $du 0 ds − v R = N s AE − M z RAE d 2 v ds 2 + v R 2 = − M z I y − M y I yz E I y I z − I yz 2 d 2 w ds 2 = − M y I z − M z I yz E I y I z − I y z 2$

The first Equation of (22) refers to the barycentric elasticity curve; that is, displacements along the element axis. The second equation is the elasticity curve in the y-direction; and the third one, in the z-direction. These equations were simplified in this study by making R→∞ for straight bars. The first Equation of (22) was neglected in the displacement calculations in this study. The equations of (22) suggest that the displacement will occur in two directions, even with loading in only one direction.

Note that if the cross section is symmetric (Iyz = 0), the last two equations of (22) are reduced to the classical differential equations of the elastic curve.

## 2.4 Elastic curve - case study

Herein is presented the case of a gutter-shaped cross-section reinforced concrete beam, therefore asymmetric, simply supported and with a 10m span, submitted only to its own weight (Figure 4). Due to the asymmetry of the cross-section, this is a case of oblique bending. The reinforced concrete specific weight is γ = 25kN/m3 and its modulus of elasticity is defined as E = 26070MPa. Thus, the own weight dead load to which the beam is subjected is 13.6kN/m, applied in the y-direction in the beam geometric center.

Figure 4
Cross-section, principal axes of inertia and geometric properties

Figure 4 illustrates its cross-section (dimensions in centimeters), its principal inertia axes direction (θp), and the geometric properties determined by the Green Method (programmed in MathCad), from a coordinate matrix of its vertices.

With the own weight dead load and the span (10m), the equation of the bending moment in the z-direction was defined, for a section in a generic position (x) in the element's longitudinal axis, as: Mz(x) = -6.8x2 + 68x [kN.m]; the My moment, in the other direction, is null.

Through the geometric properties and the bending moment equations, one can integrate the second and third equations of (22) with the Runge-Kutta Method, and obtain the final elasticity curves in both directions.

However, since two-order differential equations are involved, two boundary conditions are required for their resolution (BURDEN, FAIRES, 2013BURDEN, R. L., FAIRES, J. D. Análise Numérica. (2 ed.). São Paulo: Cengage Learning, 2013. (Trad. All Tasks).). Since the beam is simply supported, one condition is the null displacement at x=0m in both directions (v(0)=0m and w(0)=0m). The second condition is the elastic curve slope (angular displacement) at x=0m, which can be determined by the Virtual Work Method (Figure 5).

Figure 5
Virtual work method -Angular displacement

By neglecting the effect of shear effort, the elastic curve slope is determined from the definition of a unitary virtual moment in the position x=0m (SORIANO; LIMA, 2006SORIANO, H. L., LIMA, S. S. Análise de estruturas: método das forças e método dos deslocamentos. (2. ed.). Rio de Janeiro: Editora Ciência Moderna Ltda, 2006.). The angular displacement by bending moment of real loads is obtained from the analysis of Equations 22 of the elasticity curve for asymmetric sections.

Thus, the virtual bending moment equation and the final equations of the Virtual Work Method (VWM) for the initial elasticity curve slope of the asymmetric cross-sections are given by Equations 23 to 25, respectively (MARTHA, 2010MARTHA, L. F. Análise de estruturas: conceitos e métodos básicos. Rio de Janeiro: Elsevier, 2010.).

(23) $M ¯ = 1 − x L$
(24) $v ′ 0 = ∫ 0 L − M z I y − M y I yz E I y I z − I y z 2 M ¯ dx$
(25) $w ′ 0 = ∫ 0 L − M y I z − M z I yz E I y I z − I y z 2 M ¯ dx$

In this way, all the necessary data to perform the differential equations integration by Runge-Kutta are given. The initial slope conditions resulted: v'(0)=-0.002893rad and w'(0)=-0.001955rad.

The Runge-Kutta Method, for higher-order equations, is given by a simplification of the original equation for two first-order equations, and is summarized in Equation 26. The term h is the integration step; in this study, its value was h=0.1m (PRESS et al., 2007PRESS, W. H., TEUKOLSKY, S. A., VETTERLING, W. T., FLANNERY, B. P. Numerical recipes: the art of scientific computing. (3 ed.). New York: Cambridge University Press, 2007.).

(26) $y ″ + b y ′ + cy = 0 y ′ 1 , n + 1 = f 1 x , y 1 , n , y 2 , n = y 2 , n y ′ 2 , n + 1 = f 2 x , y 1 , n , y 2 , n = − by 2 , n − cy 1 , n k 1 = h f 1 x , y 1 , n , y 2 , n f 2 x , y 1 , n , y 2 , n k 2 = h f 1 x + 0 . 5 h , y 1 , n + 0 . 5 k 1 1 , y 2 , n + 0 . 5 k 1 2 f 2 x + 0 . 5 h , y 1 , n + 0 . 5 k 1 1 , y 2 , n + 0 . 5 k 1 2 k 3 = h f 1 x + 0 . 5 h , y 1 , n + 0 . 5 k 2 1 , y 2 , n + 0 . 5 k 2 2 f 2 x + 0 . 5 h , y 1 , n + 0 . 5 k 2 1 , y 2 , n + 0 . 5 k 2 2 k 4 = h f 1 x + 0 . 5 h , y 1 , n + k 3 1 , y 2 , n + k 3 2 f 2 x + 0 . 5 h , y 1 , n + k 3 1 , y 2 , n + k 3 2 y n + 1 = y 1 , n y 2 , n + 1 6 k 1 + 2 k 2 + 2 k 3 + k 4$

These equations were programmed in MathCad, in the y and z directions, to obtain the displacement curves. A 3D model in finite element, with isoparametric elements of 8 nodes and 3 degrees of freedom per node, was defined to corroborate these results (BATHE, 1996BATHE, K. J. Finite element procedures. (2. ed.) USA: Prentice-Hall, 1996.). The linear own weight dead load was also applied to the numerical model geometric center.

# 3. Results

## 3.1 Axial stresses of oblique bending - Finite element model

The finite element model was performed with the software ANSYS 9.0 (element SOLID45). Figure 6 illustrates the bending axial stresses for the own weight dead load in a cross-section of the middle span.

Figure 6
Axial stresses of oblique bending - span center [kn/m2]

It is observed that the numerical compression axial stress in the upper center of the beam left flap is -12155kN/m2; at the same point, the analytical axial stress (obtained with Equation 14), is σs(-16.7cm, -62.6cm)=-11610kN/m2. The numerical compression axial stress in the upper center of the beam right flap is -5102kN/m2; at the same point, the analytical axial stress is σs(19.2cm, -7.6cm)=-4657kN/m2. The numerical tension axial stress at the lower left corner is 9005kN/m2; at the same point, the analytical axial stress is σs(-18.94cm, 27.4cm)=9097kN/m2.

## 3.2 Elastic curve displacements - Finite element model

The numerical displacements in the middle span are given in Figures 7 and 8.

Figure 7
Displacements in y-direction [m] - vmax = -0.935cm

Figure 8
Displacements in z-direction [m] - wmax = -0.683cm

It is observed that the displacements in the middle span resulted: v(5m)=-0.935cm; w(5m)=-0.683cm. The resultant displacement is (in modulus) 1.16cm. It should be noted that the ANSYS 9.0 axis convention is different from the one adopted in the analytical method.

Figure 9 shows the resulting displacements from the integration of the differential equations by Runge-Kutta. The displacements were: v(5m)=0.904cm and w(5m)=-0.611cm. Thus, the resultant displacement is 1.091cm.

Figure 9
Displacements in the y and z directions - Runge-Kutta Method

# 4. Discussion

The result analysis, in terms of axial stresses, shows that the analytical equation approximated well the values of the numerical model. The maximum difference observed at the points analyzed was 8.72%. From the axial stress diagram (Figure 6), it can be seen that the Elastic Neutral Axis (ENA) is inclined, following the direction of the presented axial stress boundaries. In fact, working the Equation 14 to zero, it results, approximately, in a 34º slope for the ENA with respect to the horizontal axis (clockwise), which coincides with the stress diagram from Figure 6.

It is noted in the numerical model, as expected, that there were displacements in the horizontal and vertical directions. An inspection of the Equations of (22), had already predicted this effect.

# 5. Conclusion

This research aimed to highlight the structural effects that occur in an element with asymmetric cross-section. The cross-section's lack of symmetry produces, even for loading in only one direction, displacements in both directions, as well as a slope on the Elastic Neutral Axis (ENA). Generally, structural analysis programs neglect this effect, presenting only the displacement in the load direction, independently of the cross-section characteristics. Therefore, it is important to verify the asymmetry effects, especially in elements submitted to prestressing, considering that this type of structure is verified in the Serviceability Limit State (SLS), through axial stress and displacements control.

The asymmetry effect is evident when the angular displacement in a bar by the Virtual Work Method is studied (Equations 24 and 25). The real displacement is a function of the cross-section product of inertia and moments of inertia in both directions. Thus, the angular displacement given by Equation 24, is only the y-component of the resultant angular displacement in both directions.

The analytical displacement, in the middle span, resulted: v(5m)=0.904cm, w(5m)= -0.611cm, with resultant displacement of 1.091cm. This results in an angle of 55.94º (~56º counter-clockwise) with the horizontal axis. Since the Elastic Neutral Axis (ENA) has an angle of ~34º clockwise with respect to the horizontal axis (from Equation 14), this means that the resultant displacement is ~90º to the ENA, i.e. the final beam displacement is perpendicular to the ENA; a result consistent with the symmetric cross-section case. This last statement corroborates the fact that for symmetric cross-sections, the elastic curve represents the ENA curvature (BEER et al., 2006BEER, F. P., JOHNSTON JR., E. R., DeWOLF, J. T. Resistência dos materiais: mecânica dos materiais. (4. ed). McGraw-Hill, 2006.).

The finite element model (FEM) displacements were very close (5.95% difference) to those obtained by the differential equations integration by Runge-Kutta. Therefore, in a Serviceability Limit State, and from a design view point, the elastic curve integration by Runge-Kutta is validated with the finite element model adopted.

# Acknowledgements

The author acknowledges the Universidade Comunitária da Região de Chapecó (Unochapecó) and the Universidade Federal do Rio Grande do Sul (UFRGS) for technical and scientific support.

# References

• BATHE, K. J. Finite element procedures (2. ed.) USA: Prentice-Hall, 1996.
• BEER, F. P., JOHNSTON JR., E. R., DeWOLF, J. T. Resistência dos materiais: mecânica dos materiais (4. ed). McGraw-Hill, 2006.
• BURDEN, R. L., FAIRES, J. D. Análise Numérica (2 ed.). São Paulo: Cengage Learning, 2013. (Trad. All Tasks).
• KREYSZIG, E., Matemática superior para engenharia (9. ed). Rio de Janeiro: LTC, 2009. v. 1. (Trad. Luís Antonio Fajardo Pontes).
• MARTHA, L. F. Análise de estruturas: conceitos e métodos básicos Rio de Janeiro: Elsevier, 2010.
• ODEN, J. T., RIPPERGER, E. A. Mechanics of elastic structures. (2. ed.). McGraw-Hill, 1981.
• PRESS, W. H., TEUKOLSKY, S. A., VETTERLING, W. T., FLANNERY, B. P. Numerical recipes: the art of scientific computing (3 ed.). New York: Cambridge University Press, 2007.
• SORIANO, H. L., LIMA, S. S. Análise de estruturas: método das forças e método dos deslocamentos (2. ed.). Rio de Janeiro: Editora Ciência Moderna Ltda, 2006.

# Publication Dates

• Publication in this collection
Apr-Jun 2019


text:
# Measure analog value in MCC

#### Meidling

Joined Dec 15, 2020
4
Hello,

my name is Niklas and I just have a problem with the analog measurement of a value. I use a PIC 16F1827 and program in MCC. I would like to perform a current measurement via an ACS712.

My first problem is that I need to measure about 300 mA. Therefore I have to change Vref+ and Vref- of the ADC to get better values. I put Vref- on an external pin that I supply with 2 V.
I supply Vref+ with the Fixed Voltage Reference, so that I don't have to occupy another pin.
I am not sure if my settings are correct.

My second problem is the code of the analog measurement. I have now written this code:

C:
uint8_t Sensor_Messung(adc_channel_t addr_pin){

}

void main(void)
{
// initialize the device
SYSTEM_Initialize();

while (1)
{
if(Sensor_Messung(ACS3) >= 400)LED1 = HIGH;        // Just an example
else LED2 = HIGH;
}
}
So I can call one of my analog pins at any time. Can anyone tell me if this code is correct?

I attached 2 files.

Moderators note : please use code tags for pices of code

#### Attachments

• 10 KB Views: 2
• 6.9 KB Views: 2

#### ronsimpson

Joined Oct 7, 2019
1,121
If you leave the ADC measuring from 0 to 5V and the ACS712 outputs 1/2 supply up (or down) then you will loose 1 bit of resolution. So your 8 or 10 bit ADC will only give you 7 or 9 bits. Is that good enough? Will save a pin. Making 2V and adding a pin is a source of error and used hardware. Doing this in software is simple.
external pin that I supply with 2 V.
I think you could use 1/2 supply on that pin.

#### Meidling

Joined Dec 15, 2020
4
If you leave the ADC measuring from 0 to 5V and the ACS712 outputs 1/2 supply up (or down) then you will loose 1 bit of resolution. So your 8 or 10 bit ADC will only give you 7 or 9 bits. Is that good enough? Will save a pin. Making 2V and adding a pin is a source of error and used hardware. Doing this in software is simple.

I think you could use 1/2 supply on that pin.
I have solved the problem with the measurement. I only have to use ADC_GetConversion(ACS3). After that I receive a value. Are my settings for the ADC Vref+ and Vref- correct?

#### magicChristian

Joined Nov 20, 2016
24
Hello Meidling, first you should know that it is difficult to measure 300 mA with ACS712. There are different variants and we hope you have the version ACS712-05 with a range of +- 5A. The output valtage is Vcc/2 +- i * s, s is the sensitivity with 185 mV/A. with 300 mA and 5V supply 2,5 +- 0,055 V. Because the Zero output is not exact you have to measure the output with no current and later the output with actual current. i = (Vx - Vo)/ s. With 10 bit ADC you have a resolution in current of 30 mA/digit. In order to be mor precise you have to use an op amp to subtract the zero voltage or to use one of currenr sensor amps like
TI INA280 or similar but with no galvanic isolation.


text:
# Simplifying cosine and sine expressions

1. Dec 8, 2011

### Evo8

1. The problem statement, all variables and given/known data
So im a little rusty on my basic math and I am trying to simplify this expression. In case you were curious the expression came from a signal block diagram that I calculated the transfer function H(z) to then found the frequency response H(f) and I think i have done that correctly I just need to reduce this further. I have attached a picture of what I have left. The theta stands for exp(j2pifT) if that maters to you.

2. Relevant equations

3. The attempt at a solution

So this is where I get confused and cant remember the proper rules. These are super basic I know. Unfortunately I never learned them that well to begin with which is why im having trouble now..

the terms that are j*sin(-2*theta) can I bring the -2 out of the sin function? Same with the cosine? I want to say no but part of me feels like you can..... If so im thinking this might help me cross out a few terms?

Or if i break it up into sections i get something like this for the first few terms. -2/4 * cos(-theta)/cos(-theta). I then feel like i can cross out the cosine terms and be left with -1/2? Same with the -2jsin(theta)/4jsin(theta) etc.

I really appreciate any help here guys/girls.

Thanks

p.s. Sorry if my handwriting is messy. I tried my best to write it down as neat as possible. I figured it would be easier to see if i took a picture rather then type it out here and have you try to understand what im looking at.

Last edited: Dec 8, 2011
2. Dec 8, 2011

### Fredrik

Staff Emeritus
I don't see an attachment. There are formulas that tell you how to evaluate sin(2x) and cos(2x). If you remember the formulas for sin(x+y) and cos(x+y), you can use them with y=x. Also, keep in mind that sin is an odd function, and cos is an even function.

3. Dec 8, 2011

### Evo8

Sorry about that i had a link to the picture but it must be just me that can see it because it was local or something like that. Ive uploaded it to a flikr type account and changed the link. You should be able to see it now.

I saw some of these forumulas but im not 100% Im still looking at them as we speak.

4. Dec 8, 2011

### Fredrik

Staff Emeritus
I can see it now. You can certainly use the formulas I mentioned, but my first thought is that it doesn't look like the result will be any simpler.

5. Dec 8, 2011

### Evo8

Hmm maybe that's it then. The reason I said I want 100% was because I did try those formulas and it did not make the eq more simple so I suspected that I was doing something wrong. If it looks in simplest form to you then maybe that's the case.

Thanks for taking a look at this for me.

6. Dec 8, 2011

### Fredrik

Staff Emeritus
You should at least use the fact that sin is odd and cos even to get rid of the minus signs in front of the θ and 2θ.

I had another look at this, and I think the formulas I mentioned can simplify this a little. The expression cos θ-j sin θ shows up in a couple of places. Is j2=-1? In that case, cos θ-j sin θ=e-jθ.

The final result I got has 4(cos θ+1) as the denominator (after cancelling a factor of) e-jθ), and the numerator is at least a little bit simpler than what you started with.

7. Dec 8, 2011

### I like Serena

Hi Evo8!

It seems a bit weird to me that you have a cosine with exp(j2pifT) as argument.
And that for a transfer function H(z)?

If you expand part of what you have, you get:
$$\cos(-\theta)+j\sin(-\theta)=e^{-j\theta}=e^{-j e^{j2\pi f T}}$$

I don't know... it just doesn't look like part of a transfer function...

8. Dec 8, 2011

### Joffan

I pretty sure that Evo8 meant to say that $θ=2πfT$, given the pattern of cos+j.sin combinations.

$\frac{-2cos(-θ)-2j.sin(-θ)+cos(-2θ)+j.sin(-2θ)}{2+4cos(-θ)+4j.sin(-θ)+2cos(-2θ)+2j.sin(-2θ)}$

$\ldots = \frac{-2e^{-jθ}+e^{-j2θ}}{2+4e^{-jθ}+2e^{-j2θ}}$

$\ldots = \frac{e^{-jθ}(e^{-jθ}-2)}{2(e^{-jθ}+1)^{2}}$

Hmm, things behave badly when $θ=π$, or using my assumed identity above when $2fT=1$

9. Dec 9, 2011

### Evo8

Well for starters my transfer function was derived wrong...:( I derived it from a block diagram and now realize the mistake. So this is irrelivent but at least i get some more experience with this.

Yes in this case i had theta=(2pifT). Its a method my book used so i tried mimicking it.

I appreciate all the help guys. You have been super helpful.


text:
Hello, Welcome to the high-quality mining machines zone!

sitemap

Get A Quote

# linear discriminant classifier based on perceptron

Get in Touch

Need more additional information or queries? We are here to help. Please fill in the form below to get in touch.

I accept the Data Protection Declaration

## Customer success is the goal we strive for

### artificial neural network lect4 : single layer perceptron

May 15, 2016 · Comparison between Perceptron and Bayes’ Classifier Perceptron operates on the promise that the patterns to be classified are linear separable (otherwise the training algorithm will oscillate), while Bayes classifier can work on nonseparable patterns Bayes classifier minimizes the probability of misclassification which is independent of the underlying …

### (pdf) on optimal pairwise linear classifiers

Other approaches, such as the Fisher's discriminant, the perceptron algorithm, minimum square distance classifiers, etc., have solved this problem by generating a linear classifier in normal and

### linear discriminant - an overview | sciencedirect topics

6.1 The Perceptron The simplest type of neural network classifiers is the perceptron, consisting of a single artificial neuron (Rosenblatt, 1958). It is a linear discriminant: it cannot distinguish between linearly inseparable cases (Minsky and Papert, 1969). The single neuron in the perceptron works as a binary classifier (Figure 6.1)

### linear discriminant functions

Linear discriminant functions are relatively easy to compute and in the absence of information suggesting otherwise, linear classifiers are attractive candidates for initial, trial classifiers. The problem of finding a linear discriminant function will be formulated as a problem of minimizing a criterion function

### linear and quadratic discriminant analysis with python

Jan 13, 2020 · Linear Discriminant Analysis (LDA) is a method that is designed to separate two (or more) classes of observations based on a linear combination of features. The linear designation is the result of the discriminant functions being linear. The image above shows two Gaussian density functions

### the perceptron algorithm - cmp

The Perceptron Algorithm The task today is to implement the perceptron algorithm for learning of a linear classifier. Once implemented, the algorithm will also be used for learning of a non-linear extension of the classifier, for the case of a quadratic discriminant function

Aug 17, 2016 · Perceptron is a well-known classifier based on a linear discriminant function. It is intrinsically a binary classifier. It has been studied extensively in its early years and it provides an excellent platform to appreciate classification based on Support Vector Machines. In addition, it is gaining popularity again because of its simplicity

### classification - is there a relationship between lda

May 09, 2017 · LDA (linear discriminant analysis), SVMs with a linear kernel, and perceptrons are linear classifiers. Is there any other relationship between them, e.g.: Every decision boundary that can be found by LDA can be found by linear SVM Every decision boundary that can be found by linear SVM can be found by LDA

### linear-discriminant-analysis github topics github

Mar 21, 2019 · The pattern recognition step will be based on Gaussian Mixture Model based classifiers,K-nearest neighbor classifiers, Bayes classifiers, as well as Deep Neural Networks. ... adaboost decision-tree quadratic-discriminant-analysis linear-discriminant-analysis knn-classification multilayer-perceptron sgd-classifier linearsvc ... To associate your

### classification of fruits by a boltzmann perceptron neural

Sep 01, 1992 · Yair, E. and A. Gersho (1990). The Boltzmann perceptron network: A soft classifier. Neural Networks, 3, 203-221. of class probabilities, enabling improved performance by forming intermediate classes. (c) It is a non-parametric classifier that can create intricate non-linear discriminant functions, even when the class hyperspaces are noncontiguous

### essential linear algebra for data science and machine

May 10, 2021 · Linear Regression Basics for Absolute Beginners. Building a Perceptron Classifier Using the Least Squares Method . 4. Linear Discriminant Analysis Matrix . Another example of a real and symmetric matrix in data science is the Linear Discriminant Analysis (LDA) matrix. This matrix can be expressed in the form:

### fishers linear discriminant machine learning from scratch

2. Linear Regression Extensions Concept Construction Implementation 3. Discriminative Classifiers (Logistic Regression) Concept Construction Logistic Regression The Perceptron Algorithm Fisher’s Linear Discriminant Implementation 4. Generative Classifiers (Naive Bayes) Concept Construction Implementation 5

### the perceptron algorithm machine learning from scratch

The perceptron algorithm is a simple classification method that plays an important historical role in the development of the much more flexible neural network. The perceptron is a linear binary classifier — linear since it separates the input variable space linearly and binary since it places observations into one of two classes

### linear discriminant functions; perceptron -- learning

Feb 02, 2019 · Linear models for classification and regression : Linear Discriminant Functions; Perceptron -- Learning Algorithm and convergence proof - Linear Least Squares Regression; LMS algorithm - AdaLinE and LMS algorithm; General nonliner least-squares regression - Logistic Regression; Statistics of least squares method; Regularized Least Squares

### introduction to classification | cs-634

There are three broad classes of methods for determining the parameters $\mathbf{w}$ of a linear classifier: Discriminative Models, which form a discriminant function that maps directly test data $\mathbf{x}$ to classes $\mathcal{C}_k$. In this case, probabilities play no role. Examples include the Perceptron and Support Vector Machines (SVMs)

### support vector machine-based classification scheme for

A SVM, as the core of classification in myoelectric control, is compared with two commonly used classifiers: linear discriminant analysis (LDA) and multilayer perceptron (MLP) neural networks. It demonstrates exceptional accuracy, robust performance, and low computational load

### bayes-optimality motivated linear and multilayered

Dimensionality reduction is the process of mapping high-dimension patterns to a lower dimension subspace. When done prior to classification, estimates obtained in the lower dimension subspace are more reliable. For some classifiers, there is also an improvement in performance due to the removal of the diluting effect of redundant information. A majority of the present approaches …


text:
Size - Maple Help

FileTools

 Size
 obtain size of a file in bytes

 Calling Sequence Size(file)

Parameters

 file - filename or the file descriptor of an open file

Description

 • The Size(file) command returns the size of a file in bytes.
 • If the file does not exist or an invalid file descriptor is passed, an exception is raised.

Examples

 > $\mathrm{FileTools}\left[\mathrm{Text}\right]\left[\mathrm{WriteFile}\right]\left("file","data"\right)$
 ${4}$ (1)
 > $\mathrm{FileTools}\left[\mathrm{Size}\right]\left("file"\right)$
 ${4}$ (2)
 > $\mathrm{FileTools}\left[\mathrm{Remove}\right]\left("file"\right)$


text:
# KEK Theory Seminar/Dr.Ohnishi

Category 2017/07/18（Tue）11:00 AM 2017/07/18（Tue）12:00 PM Kenkyu-Honkan 3F, Seminar Room (322) Two topics in the sign problem --- Lefschetz thimbles in NJL model with vector interaction and the path optimization method --- Prof. Akira Ohnishi(YITP, Kyoto University) 英語/English Kiyoharu Kawana/kawana-AT-post.kek.jp 利用予定なし／0

## Abstract

ABSTRACT

We discuss the sign problem based on our recent two papers [1,2].

The sign problem is one of the grand challenges in theoretical physics,

and it is also a problem relevant to recent heavy-ion collision experiments.

In heavy-ion collisions at colliding eneriges of $\sqrt{s_{NN}}=5-20$ GeV,

recent data seem to suggest the existence of the first order QCD phase transition,

while the existence of massive neutron stars implies that the EOS of dense matter

needs to be stiff enough. It is desired to obtain the QCD phase boundary and EOS

in the first-principles method, Monte Carlo simulations of lattice QCD, but the sign

problem in finite density QCD prevents us to obtain precise results.

Recently developed two methods, the complex Langevin method (CLM)

and the Lefschetz thimble method (LTM), are promising. In these methods,

real variables are extended to complex, integration path/regions are modified

from the original path, and can solve or at least circumvent the sign problem.

Still, we have problems when singular points are located near the original integration path.

In the first part, we discuss the Lefschetz thimbles in the NJL model with vector interaction [1].

The NJL model has been utilized to discuss the QCD phase diagram, but it is not easy

to apply CLM and LTM. Even in the mean field treatment of the NJL model,

we have many singular points coming from the fermion determinant. Furthermore,

when we introduce the vector interaction, another sign problem arises from the Wick rotation

of the temporal component of the auxiliary vector field (auxiliary sign problem).

We have found that these two problems can be in principle solved in LTM.

It is possible to obtain thimbles by requiring that the momentum integration path is chosen

to be on the same Riemann sheet along the flow trajectories.

The latter problem can be handled by complexifying the vector field.

In practice, however, the flow trajectories stop after some time near the fixed points.

In the second part, we propose a new method, the path optimization method (POM),

to search for the integration path [2].

Since the flow equation in LTM blows up at some point in most of the actions,

it is favorable to obtain the new integration path without solving the flow equation.

One of the natural ideas is to apply the variational method. We first give the trial

function which parametrize the integration path, and optimize the trial function

by minimizing the weight cancellation (or by minimizing the cost function).

We apply POM to a gaussian model [3]. We have found that the optimized

path agrees with the thimbles around the fixed points, the local maxima

of the Boltzmann weights, and the analytic results are well reproduced

even in the parameter region where the sign problem is very severe and

CLM is found to fail. Thus POM seems to be another promising tool for

the sign problem. In the presentation, we also show some more recent results of POM.

[1] Lefschetz thimbles in fermionic effective models with repulsive vector-field,

Yuto Mori, Kouji Kashiwa, Akira Ohnishi, arXiv:1705.03646 [hep-lat].

[2] Toward solving the sign problem with path optimization method,

Yuto Mori, Kouji Kashiwa, Akira Ohnishi, arXiv:1705.05605 [hep-lat].

[3] New Insights into the Problem with a Singular Drift Term in the Complex Langevin Method,

J. Nishimura and S. Shimasaki, Phys. Rev. D92, 011501 (2015), arXiv:1504.08359.

*--------------------------------------------------------------------------

• Conference
• Colloquium
• Seminar
• 談話会・交流会


text:
com.datastax.driver.core

Interface GettableByNameData

• Method Summary

All Methods
Modifier and Type Method and Description
boolean getBool(String name)
Returns the value for name as a boolean.
ByteBuffer getBytes(String name)
Returns the value for name as a byte array.
ByteBuffer getBytesUnsafe(String name)
Returns the value for name as a ByteBuffer.
Date getDate(String name)
Returns the value for name as a date.
BigDecimal getDecimal(String name)
Returns the value for name as a variable length decimal.
double getDouble(String name)
Returns the value for name as a double.
float getFloat(String name)
Returns the value for name as a float.
InetAddress getInet(String name)
Returns the value for name as an InetAddress.
int getInt(String name)
Returns the value for name as an integer.
<T> List<T> getList(String name, Class<T> elementsClass)
Returns the value for name as a list.
<T> List<T> getList(String name, TypeToken<T> elementsType)
Returns the value for name as a list.
long getLong(String name)
Returns the value for name as a long.
<K,V> Map<K,V> getMap(String name, Class<K> keysClass, Class<V> valuesClass)
Returns the value for name as a map.
<K,V> Map<K,V> getMap(String name, TypeToken<K> keysType, TypeToken<V> valuesType)
Returns the value for name as a map.
Object getObject(String name)
Returns the value for name as the Java type matching its CQL type.
<T> Set<T> getSet(String name, Class<T> elementsClass)
Returns the value for name as a set.
<T> Set<T> getSet(String name, TypeToken<T> elementsType)
Returns the value for name as a set.
String getString(String name)
Returns the value for name as a string.
TupleValue getTupleValue(String name)
Return the value for name as a tuple value.
UDTValue getUDTValue(String name)
Return the value for name as a UDT value.
UUID getUUID(String name)
Returns the value for name as a UUID.
BigInteger getVarint(String name)
Returns the value for name as a variable length integer.
boolean isNull(String name)
Returns whether the value for name is NULL.
• Method Detail

• isNull

boolean isNull(String name)
Returns whether the value for name is NULL.
Parameters:
name - the name to check.
Returns:
whether the value for name is NULL.
Throws:
IllegalArgumentException - if name is not valid name for this object.
• getBool

boolean getBool(String name)
Returns the value for name as a boolean.
Parameters:
name - the name to retrieve.
Returns:
the boolean value for name. If the value is NULL, false is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type BOOLEAN.
• getInt

int getInt(String name)
Returns the value for name as an integer.
Parameters:
name - the name to retrieve.
Returns:
the value for name as an integer. If the value is NULL, 0 is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type INT.
• getLong

long getLong(String name)
Returns the value for name as a long.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a long. If the value is NULL, 0L is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value i is not of type BIGINT or COUNTER.
• getDate

Date getDate(String name)
Returns the value for name as a date.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a date. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type TIMESTAMP.
• getFloat

float getFloat(String name)
Returns the value for name as a float.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a float. If the value is NULL, 0.0f is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type FLOAT.
• getDouble

double getDouble(String name)
Returns the value for name as a double.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a double. If the value is NULL, 0.0 is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type DOUBLE.
• getBytesUnsafe

ByteBuffer getBytesUnsafe(String name)
Returns the value for name as a ByteBuffer.

Note: this method always return the bytes composing the value, even if the column is not of type BLOB. That is, this method never throw an InvalidTypeException. However, if the type is not BLOB, it is up to the caller to handle the returned value correctly.

Parameters:
name - the name to retrieve.
Returns:
the value for name as a ByteBuffer. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
• getBytes

ByteBuffer getBytes(String name)
Returns the value for name as a byte array.

Note that this method validate that the column is of type BLOB. If you want to retrieve the bytes for any type, use getBytesUnsafe(String) instead.

Parameters:
name - the name to retrieve.
Returns:
the value for name as a byte array. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value i type is not of type BLOB.
• getString

String getString(String name)
Returns the value for name as a string.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a string. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name type is none of: VARCHAR, TEXT or ASCII.
• getVarint

BigInteger getVarint(String name)
Returns the value for name as a variable length integer.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a variable length integer. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type VARINT.
• getDecimal

BigDecimal getDecimal(String name)
Returns the value for name as a variable length decimal.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a variable length decimal. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type DECIMAL.
• getUUID

UUID getUUID(String name)
Returns the value for name as a UUID.
Parameters:
name - the name to retrieve.
Returns:
the value for name as a UUID. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type UUID or TIMEUUID.
• getInet

InetAddress getInet(String name)
Returns the value for name as an InetAddress.
Parameters:
name - the name to retrieve.
Returns:
the value for name as an InetAddress. If the value is NULL, null is returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not of type INET.
• getList

<T> List<T> getList(String name,
Class<T> elementsClass)
Returns the value for name as a list.

If the type of the elements is generic, use getList(String, TypeToken).

Parameters:
name - the name to retrieve.
elementsClass - the class for the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects. If the value is NULL, an empty list is returned (note that Cassandra makes no difference between an empty list and column of type list that is not set). The returned list is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a list or if its elements are not of class T.
• getList

<T> List<T> getList(String name,
TypeToken<T> elementsType)
Returns the value for name as a list.

Use this variant with nested collections, which produce a generic element type:

  List<List<String>> l = row.getList("theColumn", new TypeToken<List<String>>() {});

Parameters:
name - the name to retrieve.
elementsType - the type for the elements of the list to retrieve.
Returns:
the value of the ith element as a list of T objects. If the value is NULL, an empty list is returned (note that Cassandra makes no difference between an empty list and column of type list that is not set). The returned list is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a list or if its elements are not of class T.
• getSet

<T> Set<T> getSet(String name,
Class<T> elementsClass)
Returns the value for name as a set.

If the type of the elements is generic, use getSet(String, TypeToken).

Parameters:
name - the name to retrieve.
elementsClass - the class for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects. If the value is NULL, an empty set is returned (note that Cassandra makes no difference between an empty set and column of type set that is not set). The returned set is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a set or if its elements are not of class T.
• getSet

<T> Set<T> getSet(String name,
TypeToken<T> elementsType)
Returns the value for name as a set.

Use this variant with nested collections, which produce a generic element type:

  Set<List<String>> l = row.getSet("theColumn", new TypeToken<List<String>>() {});

Parameters:
name - the name to retrieve.
elementsType - the type for the elements of the set to retrieve.
Returns:
the value of the ith element as a set of T objects. If the value is NULL, an empty set is returned (note that Cassandra makes no difference between an empty set and column of type set that is not set). The returned set is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a set or if its elements are not of class T.
• getMap

<K,V> Map<K,V> getMap(String name,
Class<K> keysClass,
Class<V> valuesClass)
Returns the value for name as a map.

If the type of the keys and/or values is generic, use getMap(String, TypeToken, TypeToken).

Parameters:
name - the name to retrieve.
keysClass - the class for the keys of the map to retrieve.
valuesClass - the class for the values of the map to retrieve.
Returns:
the value of name as a map of K to V objects. If the value is NULL, an empty map is returned (note that Cassandra makes no difference between an empty map and column of type map that is not set). The returned map is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a map, if its keys are not of class K or if its values are not of class V.
• getMap

<K,V> Map<K,V> getMap(String name,
TypeToken<K> keysType,
TypeToken<V> valuesType)
Returns the value for name as a map.

Use this variant with nested collections, which produce a generic element type:

  Map<Int, List<String>> l = row.getMap("theColumn", TypeToken.of(Integer.class), new TypeToken<List<String>>() {});

Parameters:
name - the name to retrieve.
keysType - the class for the keys of the map to retrieve.
valuesType - the class for the values of the map to retrieve.
Returns:
the value of name as a map of K to V objects. If the value is NULL, an empty map is returned (note that Cassandra makes no difference between an empty map and column of type map that is not set). The returned map is immutable.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value name is not a map, if its keys are not of class K or if its values are not of class V.
• getUDTValue

UDTValue getUDTValue(String name)
Return the value for name as a UDT value.
Parameters:
name - the name to retrieve.
Returns:
the value of name as a UDT value. If the value is NULL, then null will be returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value i is not a UDT value.
• getTupleValue

TupleValue getTupleValue(String name)
Return the value for name as a tuple value.
Parameters:
name - the name to retrieve.
Returns:
the value of name as a tuple value. If the value is NULL, then null will be returned.
Throws:
IllegalArgumentException - if name is not valid name for this object.
InvalidTypeException - if value i is not a tuple value.
• getObject

Object getObject(String name)
Returns the value for name as the Java type matching its CQL type.
Parameters:
name - the name to retrieve.
Returns:
the value of the ith value as the Java type matching its CQL type. If the value is NULL and is a simple type, UDT or tuple, null is returned. If it is NULL and is a collection type, an empty (immutable) collection is returned.
Throws:
IllegalArgumentException - if name is not a valid name for this object.


text:
3 years ago

# Ab initio calculation of neutral-current $\nu$-$^{12}$C inclusive quasielastic scattering.

Ewing Lusk, A. Lovato, J. Carlson, S. Gandolfi, R. Schiavilla, Steven C. Pieper

Quasielastic neutrino scattering is an important aspect of the experimental program to study fundamental neutrino properties including neutrino masses, mixing angles, the mass hierarchy and CP-violating phase. Proper interpretation of the experiments requires reliable theoretical calculations of neutrino-nucleus scattering. In this paper we present calculations of response functions and cross sections by neutral-current scattering of neutrinos off $^{12}$C. These calculations are based on realistic treatments of nuclear interactions and currents, the latter including the axial-, vector-, and vector-axial interference terms crucial for determining the difference between neutrino and anti-neutrino scattering and the CP-violating phase. We find that the strength and energy-dependence of two-nucleon processes induced by correlation effects and interaction currents are crucial in providing the most accurate description of neutrino-nucleus scattering in the quasielastic regime.

Publisher URL: http://arxiv.org/abs/1711.02047

DOI: arXiv:1711.02047v1

You might also like
Discover & Discuss Important Research

Keeping up-to-date with research can feel impossible, with papers being published faster than you'll ever be able to read them. That's where Researcher comes in: we're simplifying discovery and making important discussions happen. With over 19,000 sources, including peer-reviewed journals, preprints, blogs, universities, podcasts and Live events across 10 research areas, you'll never miss what's important to you. It's like social media, but better. Oh, and we should mention - it's free.

Researcher displays publicly available abstracts and doesn’t host any full article content. If the content is open access, we will direct clicks from the abstracts to the publisher website and display the PDF copy on our platform. Clicks to view the full text will be directed to the publisher website, where only users with subscriptions or access through their institution are able to view the full article.


text:
# Condition number calculation in R

If I understood correctly, the condition number should be a product of Frobenious norms of a matrix and its inverse.

In R if I do the following:

m = matrix(0, nrow=3, ncol=3)
m[col(m) == row(m)] = c(5,3,1)
minv = solve(m)

norm(m, type='F') * norm(minv, type='F')

kappa(m, exact=TRUE, norm='2' )

I get different numbers, can somebody please explain to me why this is so?

• Although asked in the context of R, the nature of the condition number is a statistical question. This should be on topic here. – gung - Reinstate Monica Oct 19 '16 at 14:05
• Dear gung, Would you be so kind to transfer to the appropriate stack, or answer the question. Best regards. – user680111 Oct 19 '16 at 14:09
• Someone voted to close. I'm saying it needn't be closed. – gung - Reinstate Monica Oct 19 '16 at 14:10

Compare:

norm(m, type='F')

With:

norm(m, type='2')

At first I thought (as you probably did) that with the 2-norm they meant the 2-norm when considering the matrix as a vector. However I found it odd that they used 2 notations in different places ('F' for Frobenius and '2' for 2-norm). Then I saw that the norm function has both as options (see: ?norm). That led me through some googling to the following wikipedia page:
https://en.wikipedia.org/wiki/Matrix_norm#Induced_norm
Here they explain the 2-norm they use on matrices in R.

TL;DR: Frobenius norm isn't the 2-norm on matrices.


text:
# Re: sources errors in advection/diffusion problems, and one solution

Interesting. One addition to Zhekai's comment. When I read it, I thought
diffusion (as upwind usually does, at least in finite difference codes).
However this is not the case. If you keep the advection u and diffusion D
the 1D equation is

D*psi_xx + u*psi_x =0

and the exponential term of the solution (the one that appears in the
error) has the form exp((u/D)*x).  An increase in diffusion D would make
the error decay more slowly away from the boundary (you can test that this
is so by increasing "DiffCoef" in the code). This increase in decay scale
is not what appears when UpwindConvectionTerm is used for the convection
term. Instead, the solution becomes perfect (Note -- in this context
advection and convection are the same thing.)

But it does give a hint as to the source of the error. The upwind schemes only
use the gradient calculated in the direction the advection the current is
coming from -- in this case u is from the positive x direction. This means
an advection scheme in a finite-difference code (which is all that I know,
I am new to finite element codes) would not usually use the gradient
calculate on the x=0 boundary since the current is coming from +x).

But the upwindConvection scheme is sensitive to the boundary condition on
the x=0 boundary. (change the line
"psi.faceGrad.constrain(0.0*faceNorm,where=xeq0bound)" to see this.) And it
appears to be doing the right thing when the gradient is set to some other
value than 0.

So how does the upwind scheme implement the normal gradient boundary
condition differently from the other schemes? At this point I should get
off my lazy behind and dig through the code, but I have a number of
deadlines for the rest of the week as I switch from being an incompetent
applied mathematician to an incompetent writer and administrator.

But if no one else has an idea, I might look next week.

Jamie

On Tue, Sep 20, 2016 at 6:52 PM, Zhekai Deng <
zhekaideng2...@u.northwestern.edu> wrote:

> Hi James,
>
> Thanks for providing this demo to illustrate the problem. I don't have any
> particular ideas exactly why the initial value of psi helps to reduce the
> error and why transient problem  "advect" out. However, I have some
> findings that may help on this.
>
> Finding # 1: I noticed you have tried ExponentialConvectionTerm,
> PowerLawConvectionTerm, CentralDifferenceConvectionTerm, all of these
> give exponential error. However, if you tried UpwindConvectionTerm, this
> will give the right result on the steady state solution. Thus, maybe using
> upwind method, the convection does not require the value from downstream,
> consequently, the error from the downstream will not excite the error
> toward the upstream. However, I am still very surprise with the magnitude
> of the error from other methods, and how similar
>
> Finding # 2: In the transient state problem, if I increase the mesh size
> from 50*50 to 100*100. The error actually grows larger for the
> ExponentialConvectionTerm, PowerLawConvectionTerm,
> CentralDifferenceConvectionTerm. To show this, if I change the mesh size
> to 100*100, the max psi value I have is around 1.1 . However, if I change
> the mesh size to 50*50, the max psi is 1.005366, which is several orders of
> magnitude lower in terms of difference to the exact solution. This is also
> the case for the UpwindConvectionTerm, however, the error for both mesh
> size are very small (max(psi) = 1e-13 or 1e-14  + 1). So even in the
> transient state, the mesh size appears to somehow amplify the error if we
> use finer mesh. I am confused by this.
>
> To now, it seems UpWindConvectionTerm appears to the the work around
> other people think on this.
>
> Best,
>
> Zhekai
>
>
>
>
> On Fri, Sep 16, 2016 at 8:53 AM, James Pringle <jprin...@unh.edu> wrote:
>
>> No worries -- I had to do it to figure out the problem in my more complex
>> domain and equation... The issue which surprised me was that the value the
>> variable was initialized to had an effect on the steady solution.
>>
>> Jamie
>>
>> On Fri, Sep 16, 2016 at 8:14 AM, Guyer, Jonathan E. Dr. (Fed) <
>> jonathan.gu...@nist.gov> wrote:
>>
>>> James -
>>>
>>> I think Daniel will have more insight into why this is happening and if
>>> there is anything to be done about it besides artificial relaxation, but I
>>> just want to say how much I appreciate your putting this together. This is
>>> a very lucid illustration.
>>>
>>> - Jon
>>>
>>> > On Sep 15, 2016, at 5:13 PM, James Pringle <jprin...@unh.edu> wrote:
>>> >
>>> > Dear FiPy users --
>>> >
>>> >    This is a simple example of how and why fipy may fail to solve a
>>> >    problem can reduce the error. I also found something that was a
>>> >    surprise -- the "initial" condition of a steady problem can affect
>>> >    the solution for some solvers.
>>> >
>>> >    At the end are two interesting questions for those who want to
>>> >    understand what FiPy is actually doing.... I admit to being a bit
>>> >    lost
>>> >
>>> >    The equation I am solving is
>>> >
>>> >         \Del\dot (D\del psi + u*psi) =0
>>> >
>>> >    Where the diffusion D is 1, and u is a vector (1,0) -- so there is
>>> >    only a flow of speed -1 in the x direction.  I solve this equation
>>> >    on a 10 by 10 grid. The boundary conditions are no normal gradient
>>> >    on the y=0 and y=10 boundary:
>>> >
>>> >         psi_y =0 at y=0 and y=10
>>> >
>>> >    For the x boundary, I impose a value of x=1 on the inflow boundary
>>> at x=10
>>> >    (this is a little tricky -- the way the equation is written, u is
>>> >    the negative of velocity).
>>> >
>>> >         psi=1 at x=10
>>> >
>>> >    and a no-normal-gradient condition at x=0.
>>> >
>>> >         psi_x=0 at x=0
>>> >
>>> >    since all of the domain and boundary is symmetrical with respect to
>>> >    y, we can assume psi_y=0 is zero everywhere. This reduces the
>>> equation to
>>> >
>>> >         psi_xx + psi_x =0
>>> >
>>> >    The general solution to this equation is
>>> >
>>> >         psi=C1+C2*exp(-x)
>>> >
>>> >    Where C1 and C2 are constants. For these boundary conditions, C1=1
>>> >    and C2=0, so psi=1 everywhere.
>>> >
>>> >    Now run the code SquareGrid_HomemadeDelaunay and look at figure(3)
>>> >    -- this is the plot of psi versus x, and you can see that it does
>>> >    not match the true solution of psi=1 everywhere! Instead, it
>>> >    appears to be decaying exponential. The blue line is actually just
>>> >    (1+exp(-x)). What is going on? It appears that small errors in the
>>> >    boundary condition at x=0 are allowing C2 to not be exactly 0, and
>>> >    this error is this exponential mode. The error is the artificial
>>> >    exiting of a correct mode of the interior equation, albeit one that
>>> >    should not be excited by these BC's.
>>> >
>>> >    Interestingly, the size of this error depends on the value the psi
>>> >    is initially set to. If the line
>>> >
>>> >        psi=fipy.CellVariable(name='psi',mesh=mesh,value=0.0)
>>> >
>>> >    is changed so psi is initially 1, the error goes away entirely; if
>>> >    it is set to some other value, you get different errors. I do not
>>> >    know if this is a bug, or just numerical error in a well programmed
>>> >    solver.
>>> >
>>> >    Now if you run SquareGrid_HomemadeDelaunay_transient  which
>>> implements
>>> >
>>> >          psi_t = \Del\dot (D\del psi + u*psi)
>>> >
>>> >    you can see that the error in the numerical solution is advected
>>> >    out of the x=0 boundary, and the solution approaches the true
>>> >    solution of psi=1 rapidly.
>>> >
>>> >    The interesting question is if the formulation of the boundary
>>> >    condition at x=0 could be altered to less excite the spurious mode?
>>> >
>>> >    Also, why does the "initial" condition have any effect on the
>>> >
>>> >    Cheers,
>>> >    Jamie
>>> >
>>> ____________________
>>> > fipy mailing list
>>> > fipy@nist.gov
>>> > https://urldefense.proofpoint.com/v2/url?u=http-3A__www.ctcm
>>> s.nist.gov_fipy&d=DQICAg&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6
>>> RqKWf16fbYIYKw&m=IaTL4nEetwjm4G4qfj8cwLzvztKzuiFsw_Nhksv_oWQ
>>> &s=vG-nxTf76KxE_CqEHTjt2jIkoy0l9M6X8bm01ypXaBQ&e=
>>> >  [ NIST internal ONLY: https://urldefense.proofpoint.
>>> com/v2/url?u=https-3A__email.nist.gov_mailman_listinfo_fipy&
>>> d=DQICAg&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6RqKWf16fbYIYKw&m
>>> =IaTL4nEetwjm4G4qfj8cwLzvztKzuiFsw_Nhksv_oWQ&s=7JGh0Zz82O69c
>>> JiLFKmkV3NfW2TLz6KB_ngkAGCrYGI&e=  ]
>>>
>>>
>>> _______________________________________________
>>> fipy mailing list
>>> fipy@nist.gov
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.ctcm
>>> s.nist.gov_fipy&d=DQICAg&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6
>>> RqKWf16fbYIYKw&m=IaTL4nEetwjm4G4qfj8cwLzvztKzuiFsw_Nhksv_oWQ
>>> &s=vG-nxTf76KxE_CqEHTjt2jIkoy0l9M6X8bm01ypXaBQ&e=
>>>   [ NIST internal ONLY: https://urldefense.proofpoint.
>>> com/v2/url?u=https-3A__email.nist.gov_mailman_listinfo_fipy&
>>> d=DQICAg&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6RqKWf16fbYIYKw&m
>>> =IaTL4nEetwjm4G4qfj8cwLzvztKzuiFsw_Nhksv_oWQ&s=7JGh0Zz82O69c
>>> JiLFKmkV3NfW2TLz6KB_ngkAGCrYGI&e=  ]
>>>
>>
>>
>> _______________________________________________
>> fipy mailing list
>> fipy@nist.gov
>> http://www.ctcms.nist.gov/fipy
>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.ctcms.nist.gov_fipy&d=DQMFaQ&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6RqKWf16fbYIYKw&m=wuk3Y2LnhuJ3FKIVZDoGdmC1ovFdPfp6lqdOgHdGRec&s=I5wSFuQN45zZ5980JdThYQ0jP6di-SHCdEIFvV4AHnQ&e=>
>>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__email.nist.gov_mailman_listinfo_fipy&d=DQMFaQ&c=c6MrceVCY5m5A_KAUkrdoA&r=7HJI3EH6RqKWf16fbYIYKw&m=wuk3Y2LnhuJ3FKIVZDoGdmC1ovFdPfp6lqdOgHdGRec&s=AcaNYv0Fm1HLbOqXnEZR-WwegGriQDechAUvW1dhRlU&e=>
>> ]
>>
>>
>

_______________________________________________
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
[ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]